#include #include #include #include #include #include "platform.h" static const struct of_device_id lork_ids[] = { { .compatible = "gpio-extern" }, {}, }; struct platform_driver lork_driver = { .probe = lork_probe, .remove = lork_remove, .driver = { .name = "gpio-extern", .owner = THIS_MODULE, .of_match_table = of_match_ptr(lork_ids), } }; static int mod_init(void) { printk("%s()\n", __PRETTY_FUNCTION__); // // configure gpio mux // uint32_t* conf_gpmc_a3 = ioremap(TI_AM335X_CM_GPMC_A3_ADDR, sizeof(ti_am335x_word_t)); // if (conf_gpmc_a3 == NULL) // return -EINVAL; // barrier(); // uint32_t val = ioread32(conf_gpmc_a3); rmb(); // val &= ~0x7; // val |= 0x7; // iowrite32(val, conf_gpmc_a3); wmb(); // iounmap(conf_gpmc_a3); // // configure output pin // ti_am335x_word_t* gpio1 = ioremap(TI_AM335X_GPIO1_ADDR, GPIO_REG_SIZE); // barrier(); // ti_am335x_word_t oe_reg = ioread32(gpio1 + GPIO_OE); rmb(); // oe_reg &= ~(1<