]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/commitdiff
minor twl4030-core cleanups
authorDavid Brownell <dbrownell@users.sourceforge.net>
Tue, 30 Sep 2008 18:42:54 +0000 (21:42 +0300)
committerTony Lindgren <tony@atomide.com>
Wed, 1 Oct 2008 10:37:36 +0000 (13:37 +0300)
Minor twl4030-core cleanups:  alphabetize the creation of the
new sub-function nodes; wrap an #if around the OMAP-only part
(to get more general build testing when this goes upstream);
remove reference to undocumented "twl3040" variant.

Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Moved gpio before keypad driver due to alphabetic order.

Signed-off-by: Felipe Balbi <felipe.balbi@nokia.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
drivers/i2c/chips/twl4030-core.c

index 79d4d828f85e8b8f95c4767c100c69350519a53d..22850a82cd53b48b84a30c690afa6181fcd030c6 100644 (file)
 
 #define DRIVER_NAME                    "twl4030"
 
-#if defined(CONFIG_RTC_DRV_TWL4030) || defined(CONFIG_RTC_DRV_TWL4030_MODULE)
-#define twl_has_rtc()  true
-#else
-#define twl_has_rtc()  false
-#endif
-
 #if defined(CONFIG_KEYBOARD_TWL4030) || defined(CONFIG_KEYBOARD_TWL4030_MODULE)
 #define twl_has_keypad()       true
 #else
 #define twl_has_keypad()       false
 #endif
 
-#if defined(CONFIG_TWL4030_USB) || defined(CONFIG_TWL4030_USB_MODULE)
-#define twl_has_usb()  true
-#else
-#define twl_has_usb()  false
-#endif
-
 #ifdef CONFIG_TWL4030_GPIO
 #define twl_has_gpio() true
 #else
 #define twl_has_madc() false
 #endif
 
+#if defined(CONFIG_RTC_DRV_TWL4030) || defined(CONFIG_RTC_DRV_TWL4030_MODULE)
+#define twl_has_rtc()  true
+#else
+#define twl_has_rtc()  false
+#endif
+
+#if defined(CONFIG_TWL4030_USB) || defined(CONFIG_TWL4030_USB_MODULE)
+#define twl_has_usb()  true
+#else
+#define twl_has_usb()  false
+#endif
+
 /* Primary Interrupt Handler on TWL4030 Registers */
 
 /* Register Definitions */
@@ -706,27 +706,18 @@ static int add_children(struct twl4030_platform_data *pdata)
                }
        }
 
-       if (twl_has_rtc()) {
-               pdev = platform_device_alloc("twl4030_rtc", -1);
+       if (twl_has_keypad() && pdata->keypad) {
+               pdev = platform_device_alloc("twl4030_keypad", -1);
                if (pdev) {
-                       twl = &twl4030_modules[TWL4030_SLAVENUM_NUM3];
+                       twl = &twl4030_modules[TWL4030_SLAVENUM_NUM2];
                        pdev->dev.parent = &twl->client->dev;
                        device_init_wakeup(&pdev->dev, 1);
-
-                       /*
-                        * FIXME add the relevant IRQ resource, and make the
-                        * rtc driver use it instead of hard-wiring ...
-                        *
-                        * REVISIT platform_data here currently only supports
-                        * setting up the "msecure" line ... which actually
-                        * violates the "princple of least privilege", since
-                        * it's effectively always in "high trust" mode.
-                        *
-                        * For now, expect equivalent treatment at board init:
-                        * setting msecure high.  Eventually, Linux might
-                        * become more aware of those HW security concerns.
-                        */
-
+                       status = platform_device_add_data(pdev, pdata->keypad,
+                                       sizeof(*pdata->keypad));
+                       if (status < 0) {
+                               platform_device_put(pdev);
+                               goto err;
+                       }
                        status = platform_device_add(pdev);
                        if (status < 0)
                                platform_device_put(pdev);
@@ -736,14 +727,14 @@ static int add_children(struct twl4030_platform_data *pdata)
                }
        }
 
-       if (twl_has_keypad() && pdata->keypad) {
-               pdev = platform_device_alloc("twl4030_keypad", -1);
+       if (twl_has_madc() && pdata->madc) {
+               pdev = platform_device_alloc("twl4030_madc", -1);
                if (pdev) {
                        twl = &twl4030_modules[TWL4030_SLAVENUM_NUM2];
                        pdev->dev.parent = &twl->client->dev;
                        device_init_wakeup(&pdev->dev, 1);
-                       status = platform_device_add_data(pdev, pdata->keypad,
-                                       sizeof(*pdata->keypad));
+                       status = platform_device_add_data(pdev, pdata->madc,
+                                       sizeof(*pdata->madc));
                        if (status < 0) {
                                platform_device_put(pdev);
                                goto err;
@@ -757,18 +748,27 @@ static int add_children(struct twl4030_platform_data *pdata)
                }
        }
 
-       if (twl_has_usb() && pdata->usb) {
-               pdev = platform_device_alloc("twl4030_usb", -1);
+       if (twl_has_rtc()) {
+               pdev = platform_device_alloc("twl4030_rtc", -1);
                if (pdev) {
-                       twl = &twl4030_modules[TWL4030_SLAVENUM_NUM0];
+                       twl = &twl4030_modules[TWL4030_SLAVENUM_NUM3];
                        pdev->dev.parent = &twl->client->dev;
                        device_init_wakeup(&pdev->dev, 1);
-                       status = platform_device_add_data(pdev, pdata->usb,
-                                       sizeof(*pdata->usb));
-                       if (status < 0) {
-                               platform_device_put(pdev);
-                               goto err;
-                       }
+
+                       /*
+                        * FIXME add the relevant IRQ resource, and make the
+                        * rtc driver use it instead of hard-wiring ...
+                        *
+                        * REVISIT platform_data here currently only supports
+                        * setting up the "msecure" line ... which actually
+                        * violates the "princple of least privilege", since
+                        * it's effectively always in "high trust" mode.
+                        *
+                        * For now, expect equivalent treatment at board init:
+                        * setting msecure high.  Eventually, Linux might
+                        * become more aware of those HW security concerns.
+                        */
+
                        status = platform_device_add(pdev);
                        if (status < 0)
                                platform_device_put(pdev);
@@ -778,14 +778,14 @@ static int add_children(struct twl4030_platform_data *pdata)
                }
        }
 
-       if (twl_has_madc() && pdata->madc) {
-               pdev = platform_device_alloc("twl4030_madc", -1);
+       if (twl_has_usb() && pdata->usb) {
+               pdev = platform_device_alloc("twl4030_usb", -1);
                if (pdev) {
-                       twl = &twl4030_modules[TWL4030_SLAVENUM_NUM2];
+                       twl = &twl4030_modules[TWL4030_SLAVENUM_NUM0];
                        pdev->dev.parent = &twl->client->dev;
                        device_init_wakeup(&pdev->dev, 1);
-                       status = platform_device_add_data(pdev, pdata->madc,
-                                       sizeof(*pdata->madc));
+                       status = platform_device_add_data(pdev, pdata->usb,
+                                       sizeof(*pdata->usb));
                        if (status < 0) {
                                platform_device_put(pdev);
                                goto err;
@@ -844,17 +844,19 @@ static int __init unprotect_pm_master(void)
 
 static int __init power_companion_init(void)
 {
+       int e = 0;
+
+#if defined(CONFIG_ARCH_OMAP2) || defined(CONFIG_ARCH_OMAP3)
        struct clk *osc;
        u32 rate;
        u8 ctrl = HFCLK_FREQ_26_MHZ;
-       int e = 0;
 
        if (cpu_is_omap2430())
                osc = clk_get(NULL, "osc_ck");
        else
                osc = clk_get(NULL, "osc_sys_ck");
        if (IS_ERR(osc)) {
-               printk(KERN_WARNING "Skipping twl3040 internal clock init and "
+               printk(KERN_WARNING "Skipping twl4030 internal clock init and "
                                "using bootloader value (unknown osc rate)\n");
                return 0;
        }
@@ -879,6 +881,7 @@ static int __init power_companion_init(void)
        /* effect->MADC+USB ck en */
        e |= twl4030_i2c_write_u8(TWL4030_MODULE_PM_MASTER, ctrl, R_CFG_BOOT);
        e |= protect_pm_master();
+#endif /* OMAP */
 
        return e;
 }