chip is omap3530.work in linux.
I want to config pin work in gpio10.
I compile the driver file,as follows:
static void omap3530_gpio_int_cfg(void)
{
int result;
int reg;
int ret;
/*config gpio for mux in omap3530*/
ret = gpio_get_value(OMAP3530_INT_GPIO);
printk("gpio%d = %d\n", OMAP3530_INT_GPIO, ret);
omap_cfg_reg(OMAP3530_INT_GPIO);
//omap_mux_init_gpio(10, OMAP_PIN_INPUT_PULLUP);
//omap_mux_init_gpio(OMAP3530_INT_GPIO, OMAP_MUX_MODE4 | OMAP_PIN_INPUT);
/*request gpio as irq*/
//if(gpio_request(OMAP3530_INT_GPIO, "GPIO IRQ") < 0)
//printk(KERN_ERR "Failed to request GPIO10 for gpio10 irq\n");
printk("req=%d\n", gpio_request(OMAP3530_INT_GPIO, "GPIO IRQ"));
/*gpio direction config for input*/
gpio_direction_input(OMAP3530_INT_GPIO);
/*config irq to falling trigger*/
set_irq_type(OMAP_GPIO_IRQ(OMAP3530_INT_GPIO), IRQ_TYPE_EDGE_FALLING);
/*enable gpio irq*/
enable_irq(gpio_to_irq(OMAP3530_INT_GPIO));
printk("line = %d\n", __LINE__);
/*when init module, reuqest irq. Do not in open dev, becase /proc*/
result = request_irq(OMAP_GPIO_IRQ(OMAP3530_INT_GPIO),
card_detect_interrupt,
IRQF_DISABLED,
"card_detect",
NULL);
if(result)
{
printk(KERN_INFO "short: can't get assigned irq %i\n", OMAP_GPIO_IRQ(OMAP3530_INT_GPIO));
}
}
but it does not work:
How to do?