]> Gitweb @ Texas Instruments - Open Source Git Repositories - git.TI.com/gitweb - glsdk/meta-ti-glsdk.git/blob - recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0039-ARM-OMAP-Mux-Fixed-debugfs-mux-output-always-reporti.patch
linux-ti33x-psp 3.2: update to 3.2.23
[glsdk/meta-ti-glsdk.git] / recipes-kernel / linux / linux-ti33x-psp-3.2 / beaglebone / 0039-ARM-OMAP-Mux-Fixed-debugfs-mux-output-always-reporti.patch
1 From e8f558360cca470b15e95e0620aa0eb6e4cc7980 Mon Sep 17 00:00:00 2001
2 From: Bas Laarhoven <sjml@xs4all.nl>
3 Date: Sun, 13 May 2012 18:09:57 +0200
4 Subject: [PATCH 39/79] ARM: OMAP: Mux: Fixed debugfs mux output (always
5  reporting pins as output)
7 Signed-off-by: Bas Laarhoven <sjml@xs4all.nl>
8 Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
9 ---
10  arch/arm/mach-omap2/mux.c |   62 +++++++++++++++++++++++++++------------------
11  1 file changed, 38 insertions(+), 24 deletions(-)
13 diff --git a/arch/arm/mach-omap2/mux.c b/arch/arm/mach-omap2/mux.c
14 index e1cc75d..5899266 100644
15 --- a/arch/arm/mach-omap2/mux.c
16 +++ b/arch/arm/mach-omap2/mux.c
17 @@ -522,41 +522,55 @@ static inline void omap_mux_decode(struct seq_file *s, u16 val)
18         i++;
19         flags[i] = mode;
20  
21 -       OMAP_MUX_TEST_FLAG(val, OMAP_PIN_OFF_WAKEUPENABLE);
22 -       if (val & OMAP_OFF_EN) {
23 -               if (!(val & OMAP_OFFOUT_EN)) {
24 -                       if (!(val & OMAP_OFF_PULL_UP)) {
25 -                               OMAP_MUX_TEST_FLAG(val,
26 -                                       OMAP_PIN_OFF_INPUT_PULLDOWN);
27 +       if (cpu_is_am33xx()) {
28 +               if (val & AM33XX_INPUT_EN) {
29 +                       if (val & AM33XX_PULL_DISA) {
30 +                               flags[ ++i] = "OMAP_PIN_INPUT";
31 +                       } else if (val & AM33XX_PULL_UP) {
32 +                               flags[ ++i] = "OMAP_PIN_INPUT_PULLUP";
33                         } else {
34 -                               OMAP_MUX_TEST_FLAG(val,
35 -                                       OMAP_PIN_OFF_INPUT_PULLUP);
36 +                               flags[ ++i] = "OMAP_PIN_INPUT_PULLDOWN";
37                         }
38                 } else {
39 -                       if (!(val & OMAP_OFFOUT_VAL)) {
40 -                               OMAP_MUX_TEST_FLAG(val,
41 -                                       OMAP_PIN_OFF_OUTPUT_LOW);
42 +                       flags[ ++i] = "OMAP_PIN_OUTPUT";
43 +               }
44 +       } else {
45 +               OMAP_MUX_TEST_FLAG(val, OMAP_PIN_OFF_WAKEUPENABLE);
46 +               if (val & OMAP_OFF_EN) {
47 +                       if (!(val & OMAP_OFFOUT_EN)) {
48 +                               if (!(val & OMAP_OFF_PULL_UP)) {
49 +                                       OMAP_MUX_TEST_FLAG(val,
50 +                                                       OMAP_PIN_OFF_INPUT_PULLDOWN);
51 +                               } else {
52 +                                       OMAP_MUX_TEST_FLAG(val,
53 +                                                       OMAP_PIN_OFF_INPUT_PULLUP);
54 +                               }
55                         } else {
56 -                               OMAP_MUX_TEST_FLAG(val,
57 -                                       OMAP_PIN_OFF_OUTPUT_HIGH);
58 +                               if (!(val & OMAP_OFFOUT_VAL)) {
59 +                                       OMAP_MUX_TEST_FLAG(val,
60 +                                                       OMAP_PIN_OFF_OUTPUT_LOW);
61 +                               } else {
62 +                                       OMAP_MUX_TEST_FLAG(val,
63 +                                                       OMAP_PIN_OFF_OUTPUT_HIGH);
64 +                               }
65                         }
66                 }
67 -       }
68  
69 -       if (val & OMAP_INPUT_EN) {
70 -               if (val & OMAP_PULL_ENA) {
71 -                       if (!(val & OMAP_PULL_UP)) {
72 -                               OMAP_MUX_TEST_FLAG(val,
73 -                                       OMAP_PIN_INPUT_PULLDOWN);
74 +               if (val & OMAP_INPUT_EN) {
75 +                       if (val & OMAP_PULL_ENA) {
76 +                               if (!(val & OMAP_PULL_UP)) {
77 +                                       OMAP_MUX_TEST_FLAG(val,
78 +                                                       OMAP_PIN_INPUT_PULLDOWN);
79 +                               } else {
80 +                                       OMAP_MUX_TEST_FLAG(val, OMAP_PIN_INPUT_PULLUP);
81 +                               }
82                         } else {
83 -                               OMAP_MUX_TEST_FLAG(val, OMAP_PIN_INPUT_PULLUP);
84 +                               OMAP_MUX_TEST_FLAG(val, OMAP_PIN_INPUT);
85                         }
86                 } else {
87 -                       OMAP_MUX_TEST_FLAG(val, OMAP_PIN_INPUT);
88 +                       i++;
89 +                       flags[i] = "OMAP_PIN_OUTPUT";
90                 }
91 -       } else {
92 -               i++;
93 -               flags[i] = "OMAP_PIN_OUTPUT";
94         }
95  
96         do {
97 -- 
98 1.7.10