| From 23d9cec07c589276561c13b180577c0b87930140 Mon Sep 17 00:00:00 2001 |
| From: Nishanth Menon <nm@ti.com> |
| Date: Tue, 22 Jul 2014 10:39:54 -0500 |
| Subject: pinctrl: dra: dt-bindings: Fix pull enable/disable |
| |
| From: Nishanth Menon <nm@ti.com> |
| |
| commit 23d9cec07c589276561c13b180577c0b87930140 upstream. |
| |
| The DRA74/72 control module pins have a weak pull up and pull down. |
| This is configured by bit offset 17. if BIT(17) is 1, a pull up is |
| selected, else a pull down is selected. |
| |
| However, this pull resisstor is applied based on BIT(16) - |
| PULLUDENABLE - if BIT(18) is *0*, then pull as defined in BIT(17) is |
| applied, else no weak pulls are applied. We defined this in reverse. |
| |
| Reference: Table 18-5 (Description of the pad configuration register |
| bits) in Technical Reference Manual Revision (DRA74x revision Q: |
| SPRUHI2Q Revised June 2014 and DRA72x revision F: SPRUHP2F - Revised |
| June 2014) |
| |
| Fixes: 6e58b8f1daaf1a ("ARM: dts: DRA7: Add the dts files for dra7 SoC and dra7-evm board") |
| Signed-off-by: Nishanth Menon <nm@ti.com> |
| Tested-by: Felipe Balbi <balbi@ti.com> |
| Acked-by: Felipe Balbi <balbi@ti.com> |
| Signed-off-by: Tony Lindgren <tony@atomide.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| include/dt-bindings/pinctrl/dra.h | 7 ++++--- |
| 1 file changed, 4 insertions(+), 3 deletions(-) |
| |
| --- a/include/dt-bindings/pinctrl/dra.h |
| +++ b/include/dt-bindings/pinctrl/dra.h |
| @@ -30,7 +30,8 @@ |
| #define MUX_MODE14 0xe |
| #define MUX_MODE15 0xf |
| |
| -#define PULL_ENA (1 << 16) |
| +#define PULL_ENA (0 << 16) |
| +#define PULL_DIS (1 << 16) |
| #define PULL_UP (1 << 17) |
| #define INPUT_EN (1 << 18) |
| #define SLEWCONTROL (1 << 19) |
| @@ -38,10 +39,10 @@ |
| #define WAKEUP_EVENT (1 << 25) |
| |
| /* Active pin states */ |
| -#define PIN_OUTPUT 0 |
| +#define PIN_OUTPUT (0 | PULL_DIS) |
| #define PIN_OUTPUT_PULLUP (PIN_OUTPUT | PULL_ENA | PULL_UP) |
| #define PIN_OUTPUT_PULLDOWN (PIN_OUTPUT | PULL_ENA) |
| -#define PIN_INPUT INPUT_EN |
| +#define PIN_INPUT (INPUT_EN | PULL_DIS) |
| #define PIN_INPUT_SLEW (INPUT_EN | SLEWCONTROL) |
| #define PIN_INPUT_PULLUP (PULL_ENA | INPUT_EN | PULL_UP) |
| #define PIN_INPUT_PULLDOWN (PULL_ENA | INPUT_EN) |