s5pc110: aries: GPIO powerdown mode setting updated: 1.38->1.24mA
authorMyungJoo Ham <MyungJoo.Ham@samsung.com>
Mon, 1 Feb 2010 07:57:06 +0000 (16:57 +0900)
committerMyungJoo Ham <MyungJoo.Ham@samsung.com>
Mon, 1 Feb 2010 07:57:06 +0000 (16:57 +0900)
- Mainly, PHONE_ON (O-L -> O-H) reduces the sleep current.
- For "Not Connected (NC)", O-L -> I(PD) reduces the sleep
  current extremely slightly... (need tens of them to see
  any difference)

board/samsung/universal/gpio_setting.h

index 6bed07a..a549281 100644 (file)
 
 #define PREVIOUS(x)            (0x3 << ((x) << 1))
 
+#define HWSUGGEST
+#ifdef HWSUGGEST
+#define PDNCON_NC(x)           INPUT(x)
+#define PDNPUD_NC(x)           PULL_DOWN(x)
+#else
+#define PDNCON_NC(x)           OUTPUT0(x)
+#define PDNPUD_NC(x)           PULL_DIS(x)
+#endif
+
 struct gpio_powermode {
        unsigned int    conpdn;
        unsigned int    pudpdn;
@@ -242,22 +251,22 @@ static struct gpio_powermode aries_powerdown_modes[] = {
                PULL_DIS(0) | PULL_DIS(1) | PULL_DIS(2) | PULL_DIS(3),
        }, {    /* S5PC110(ARIES)_GPIO_B_OFFSET */
                OUTPUT0(0) | OUTPUT0(1) | OUTPUT0(2) | OUTPUT0(3) |
-               INPUT(4) | OUTPUT0(5) | OUTPUT0(6) | OUTPUT0(7),
+               INPUT(4) | OUTPUT0(5) | PDNCON_NC(6) | OUTPUT0(7),
                PULL_DIS(0) | PULL_DIS(1) | PULL_DIS(2) | PULL_DIS(3) |
-               PULL_DIS(4) | PULL_DIS(5) | PULL_DIS(6) | PULL_DIS(7),
+               PULL_DIS(4) | PULL_DIS(5) | PDNPUD_NC(6) | PULL_DIS(7),
        }, {    /* S5PC110(ARIES)_GPIO_C0_OFFSET */
-               OUTPUT0(0) | OUTPUT0(1) | OUTPUT0(2) | INPUT(3) |
+               OUTPUT0(0) | PDNCON_NC(1) | OUTPUT0(2) | INPUT(3) |
                OUTPUT0(4),
-               PULL_DIS(0) | PULL_DIS(1) | PULL_DIS(2) | PULL_DIS(3) |
+               PULL_DIS(0) | PDNPUD_NC(1) | PULL_DIS(2) | PULL_DIS(3) |
                PULL_DIS(4),
        }, {    /* S5PC110(ARIES)_GPIO_C1_OFFSET */
-               OUTPUT0(0) | OUTPUT0(1) | OUTPUT0(2) | INPUT(3) |
+               OUTPUT0(0) | PDNCON_NC(1) | OUTPUT0(2) | INPUT(3) |
                OUTPUT0(4),
-               PULL_DIS(0) | PULL_DIS(1) | PULL_DIS(2) | PULL_DIS(3) |
+               PULL_DIS(0) | PDNPUD_NC(1) | PULL_DIS(2) | PULL_DIS(3) |
                PULL_DIS(4),
        }, {    /* S5PC110(ARIES)_GPIO_D0_OFFSET */
-               OUTPUT0(0) | OUTPUT0(1) | OUTPUT0(2) | OUTPUT0(3),
-               PULL_DIS(0) | PULL_DIS(1) | PULL_DIS(2) | PULL_DIS(3),
+               PDNCON_NC(0) | OUTPUT0(1) | PDNCON_NC(2) | PDNCON_NC(3),
+               PDNPUD_NC(0) | PULL_DIS(1) | PDNPUD_NC(2) | PDNPUD_NC(3),
        }, {    /* S5PC110(ARIES)_GPIO_D1_OFFSET */
                INPUT(0) | INPUT(1) | INPUT(2) | INPUT(3) |
                INPUT(4) | INPUT(5),
@@ -270,9 +279,9 @@ static struct gpio_powermode aries_powerdown_modes[] = {
                PULL_DOWN(4) | PULL_DOWN(5) | PULL_DOWN(6) | PULL_DOWN(7),
        }, {    /* S5PC110(ARIES)_GPIO_E1_OFFSET */
                INPUT(0) | INPUT(1) | INPUT(2) | OUTPUT0(3) |
-               OUTPUT0(4),
+               PDNCON_NC(4),
                PULL_DOWN(0) | PULL_DOWN(1) | PULL_DOWN(2) | PULL_DIS(3) |
-               PULL_DIS(4),
+               PDNPUD_NC(4),
        }, {    /* S5PC110(ARIES)_GPIO_F0_OFFSET */
                OUTPUT0(0) | OUTPUT0(1) | OUTPUT0(2) | OUTPUT0(3) |
                OUTPUT0(4) | OUTPUT0(5) | OUTPUT0(6) | OUTPUT0(7),
@@ -290,42 +299,42 @@ static struct gpio_powermode aries_powerdown_modes[] = {
                PULL_DIS(4) | PULL_DIS(5) | PULL_DIS(6) | PULL_DIS(7),
        }, {    /* S5PC110(ARIES)_GPIO_F3_OFFSET */
                OUTPUT0(0) | OUTPUT0(1) | OUTPUT0(2) | OUTPUT0(3) |
-               OUTPUT0(4) | OUTPUT0(5),
+               INPUT(4) | PDNCON_NC(5),
                PULL_DIS(0) | PULL_DIS(1) | PULL_DIS(2) | PULL_DIS(3) |
-               PULL_DIS(4) | PULL_DIS(5),
+               PULL_DOWN(4) | PDNPUD_NC(5),
        }, {    /* S5PC110(ARIES)_GPIO_G0_OFFSET */
                OUTPUT0(0) | OUTPUT0(1) | INPUT(2) | OUTPUT0(3) |
                OUTPUT0(4) | OUTPUT0(5) | OUTPUT0(6),
                PULL_DIS(0) | PULL_DIS(1) | PULL_DIS(2) | PULL_DIS(3) |
                PULL_DIS(4) | PULL_DIS(5) | PULL_DIS(6),
        }, {    /* S5PC110(ARIES)_GPIO_G1_OFFSET */
-               OUTPUT0(0) | INPUT(1) | OUTPUT0(2) | INPUT(3) |
-               INPUT(4) | INPUT(5) | INPUT(6),
-               PULL_DIS(0) | PULL_UP(1) | PULL_DIS(2) | PULL_UP(3) |
-               PULL_UP(4) | PULL_UP(5) | PULL_UP(6),
+               OUTPUT0(0) | OUTPUT1(1) | OUTPUT0(2) | OUTPUT1(3) |
+               OUTPUT1(4) | OUTPUT1(5) | OUTPUT1(6),
+               PULL_DIS(0) | PULL_DIS(1) | PULL_DIS(2) | PULL_DIS(3) |
+               PULL_DIS(4) | PULL_DIS(5) | PULL_DIS(6),
        }, {    /* S5PC110(ARIES)_GPIO_G2_OFFSET */
                OUTPUT0(0) | OUTPUT0(1) | INPUT(2) | OUTPUT0(3) |
                OUTPUT0(4) | OUTPUT0(5) | OUTPUT0(6),
                PULL_DIS(0) | PULL_DIS(1) | PULL_DIS(2) | PULL_DIS(3) |
                PULL_DIS(4) | PULL_DIS(5) | PULL_DIS(6),
        }, {    /* S5PC110(ARIES)_GPIO_G3_OFFSET */
-               OUTPUT0(0) | OUTPUT0(1) | OUTPUT1(2) | INPUT(3) |
+               OUTPUT1(0) | OUTPUT0(1) | PDNCON_NC(2) | INPUT(3) |
                OUTPUT0(4) | OUTPUT0(5) | OUTPUT0(6),
-               PULL_DIS(0) | PULL_DIS(1) | PULL_DIS(2) | PULL_DIS(3) |
+               PULL_DIS(0) | PULL_DIS(1) | PDNPUD_NC(2) | PULL_DIS(3) |
                PULL_DIS(4) | PULL_DIS(5) | PULL_DIS(6),
        }, {    /* S5PC110(ARIES)_GPIO_I_OFFSET */
-               OUTPUT0(0) | OUTPUT0(1) | OUTPUT0(2) | INPUT(3) |
+               OUTPUT0(0) | OUTPUT0(1) | OUTPUT0(2) | OUTPUT0(3) |
                OUTPUT0(4) | OUTPUT0(5) | OUTPUT0(6),
                PULL_DIS(0) | PULL_DIS(1) | PULL_DIS(2) | PULL_DIS(3) |
                PULL_DIS(4) | PULL_DIS(5) | PULL_DIS(6),
        }, {    /* S5PC110(ARIES)_GPIO_J0_OFFSET */
                INPUT(0) | INPUT(1) | INPUT(2) | INPUT(3) |
                INPUT(4) | INPUT(5) | OUTPUT0(6) | INPUT(7),
-               PULL_DIS(0) | PULL_DIS(1) | PULL_UP(2) | PULL_UP(3) |
-               PULL_DOWN(4) | PULL_DIS(5) | PULL_DIS(6) | PULL_DOWN(7),
+               PULL_DIS(0) | PULL_DIS(1) | PULL_DIS(2) | PULL_DIS(3) |
+               PULL_DIS(4) | PULL_DIS(5) | PULL_DIS(6) | PULL_DIS(7),
        }, {    /* S5PC110(ARIES)_GPIO_J1_OFFSET */
-               OUTPUT0(0) | OUTPUT0(1) | OUTPUT0(2) | OUTPUT0(3) |
-               OUTPUT0(4) | OUTPUT0(5) | OUTPUT0(6) | OUTPUT0(7),
+               OUTPUT1(0) | OUTPUT0(1) | OUTPUT0(2) | OUTPUT0(3) |
+               INPUT(4) | OUTPUT0(5) | OUTPUT0(6) | OUTPUT0(7),
                PULL_DIS(0) | PULL_DIS(1) | PULL_DIS(2) | PULL_DIS(3) |
                PULL_DIS(4) | PULL_DIS(5) | PULL_DIS(6) | PULL_DIS(7),
        }, {    /* S5PC110(ARIES)_GPIO_J2_OFFSET */
@@ -336,7 +345,7 @@ static struct gpio_powermode aries_powerdown_modes[] = {
        }, {    /* S5PC110(ARIES)_GPIO_J3_OFFSET */
                INPUT(0) | INPUT(1) | OUTPUT0(2) | OUTPUT0(3) |
                INPUT(4) | INPUT(5) | INPUT(6) | INPUT(7),
-               PULL_DOWN(0) | PULL_DOWN(1) | PULL_DIS(2) | PULL_DIS(3) |
+               PULL_DIS(0) | PULL_DIS(1) | PULL_DIS(2) | PULL_DIS(3) |
                PULL_DIS(4) | PULL_DIS(5) | PULL_DIS(6) | PULL_DIS(7),
        }, {    /* S5PC110(ARIES)_GPIO_J4_OFFSET */
                INPUT(0) | INPUT(1) | OUTPUT0(2) | INPUT(3) |
@@ -369,15 +378,15 @@ static struct gpio_powermode aries_powerdown_modes[] = {
                PULL_DIS(0) | PULL_DIS(1) | PULL_DIS(2) | PULL_DIS(3) |
                PULL_DIS(4) | PULL_DIS(5) | PULL_DIS(6) | PULL_DIS(7),
        }, {    /* S5PC110(ARIES)_MP0_6_OFFSET */
-               OUTPUT0(0) | OUTPUT0(1) | OUTPUT0(2) | OUTPUT0(3) |
-               OUTPUT0(4) | OUTPUT0(5) | OUTPUT0(6) | OUTPUT0(7),
-               PULL_DIS(0) | PULL_DIS(1) | PULL_DIS(2) | PULL_DIS(3) |
-               PULL_DIS(4) | PULL_DIS(5) | PULL_DIS(6) | PULL_DIS(7),
+               INPUT(0) | INPUT(1) | INPUT(2) | INPUT(3) |
+               INPUT(4) | INPUT(5) | INPUT(6) | INPUT(7),
+               PULL_DOWN(0) | PULL_DOWN(1) | PULL_DOWN(2) | PULL_DOWN(3) |
+               PULL_DOWN(4) | PULL_DOWN(5) | PULL_DOWN(6) | PULL_DOWN(7),
        }, {    /* S5PC110(ARIES)_MP0_7_OFFSET */
-               OUTPUT0(0) | OUTPUT0(1) | OUTPUT0(2) | OUTPUT0(3) |
-               OUTPUT0(4) | OUTPUT0(5) | OUTPUT0(6) | OUTPUT0(7),
-               PULL_DIS(0) | PULL_DIS(1) | PULL_DIS(2) | PULL_DIS(3) |
-               PULL_DIS(4) | PULL_DIS(5) | PULL_DIS(6) | PULL_DIS(7),
+               INPUT(0) | INPUT(1) | INPUT(2) | INPUT(3) |
+               INPUT(4) | INPUT(5) | INPUT(6) | INPUT(7),
+               PULL_DOWN(0) | PULL_DOWN(1) | PULL_DOWN(2) | PULL_DOWN(3) |
+               PULL_DOWN(4) | PULL_DOWN(5) | PULL_DOWN(6) | PULL_DOWN(7),
        },
 };