]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
AM3517: Enable RTC driver support for AM3517EVM
authorVaibhav Hiremath <hvaibhav@ti.com>
Sat, 13 Feb 2010 11:47:56 +0000 (11:47 +0000)
committerTony Lindgren <tony@atomide.com>
Fri, 19 Feb 2010 23:22:17 +0000 (15:22 -0800)
Add platform hook-up interface to support RTC driver (S35390A).

Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
arch/arm/mach-omap2/board-am3517evm.c

index af99faf2cced4743a31dcef30cdf37c01dc6834c..fe2446ded5ad61806433470f9ff98f057b900991 100644 (file)
 #define LCD_PANEL_BKLIGHT_PWR  182
 #define LCD_PANEL_PWM          181
 
+static struct i2c_board_info __initdata am3517evm_i2c_boardinfo[] = {
+       {
+               I2C_BOARD_INFO("s35390a", 0x30),
+               .type           = "s35390a",
+       },
+};
+
+/*
+ * RTC - S35390A
+ */
+#define GPIO_RTCS35390A_IRQ    55
+
+static void __init am3517_evm_rtc_init(void)
+{
+       int r;
+
+       omap_mux_init_gpio(GPIO_RTCS35390A_IRQ, OMAP_PIN_INPUT_PULLUP);
+       r = gpio_request(GPIO_RTCS35390A_IRQ, "rtcs35390a-irq");
+       if (r < 0) {
+               printk(KERN_WARNING "failed to request GPIO#%d\n",
+                               GPIO_RTCS35390A_IRQ);
+               return;
+       }
+       r = gpio_direction_input(GPIO_RTCS35390A_IRQ);
+       if (r < 0) {
+               printk(KERN_WARNING "GPIO#%d cannot be configured as input\n",
+                               GPIO_RTCS35390A_IRQ);
+               gpio_free(GPIO_RTCS35390A_IRQ);
+               return;
+       }
+       am3517evm_i2c_boardinfo[0].irq = gpio_to_irq(GPIO_RTCS35390A_IRQ);
+}
+
 static int __init am3517_evm_i2c_init(void)
 {
        omap_register_i2c_bus(1, 400, NULL, 0);
@@ -235,6 +268,12 @@ static void __init am3517_evm_init(void)
        usb_ehci_init(&ehci_pdata);
        /* DSS */
        am3517_evm_display_init();
+
+       /* RTC - S35390A */
+       am3517_evm_rtc_init();
+
+       i2c_register_board_info(1, am3517evm_i2c_boardinfo,
+                               ARRAY_SIZE(am3517evm_i2c_boardinfo));
 }
 
 static void __init am3517_evm_map_io(void)