summaryrefslogtreecommitdiffstats
path: root/drivers/pinctrl/berlin
diff options
context:
space:
mode:
authorThomas Hebb <tommyhebb@gmail.com>2015-10-06 16:56:37 -0400
committerLinus Walleij <linus.walleij@linaro.org>2015-10-16 10:42:48 -0400
commit3c6531c7461b80c18284d43b59791c60cd67582f (patch)
treec7d16115df832142d718318fd2691540bd42b6b2 /drivers/pinctrl/berlin
parent1d48fb6e4aeec5946574712c512c12a053ce82c0 (diff)
pinctrl: berlin: fix BG2CD field widths
The previous register layout was incorrect, many of the fields having fewer bits than were needed to represent all their modes. The new layout is taken from the bootloader source of a BG2CD device. Signed-off-by: Thomas Hebb <tommyhebb@gmail.com> Acked-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Diffstat (limited to 'drivers/pinctrl/berlin')
-rw-r--r--drivers/pinctrl/berlin/berlin-bg2cd.c62
1 files changed, 32 insertions, 30 deletions
diff --git a/drivers/pinctrl/berlin/berlin-bg2cd.c b/drivers/pinctrl/berlin/berlin-bg2cd.c
index aff7f6a1fbab..ad8c75861373 100644
--- a/drivers/pinctrl/berlin/berlin-bg2cd.c
+++ b/drivers/pinctrl/berlin/berlin-bg2cd.c
@@ -19,24 +19,24 @@
19 19
20static const struct berlin_desc_group berlin2cd_soc_pinctrl_groups[] = { 20static const struct berlin_desc_group berlin2cd_soc_pinctrl_groups[] = {
21 /* G */ 21 /* G */
22 BERLIN_PINCTRL_GROUP("G0", 0x00, 0x1, 0x00, 22 BERLIN_PINCTRL_GROUP("G0", 0x00, 0x3, 0x00,
23 BERLIN_PINCTRL_FUNCTION(0x0, "jtag"), 23 BERLIN_PINCTRL_FUNCTION(0x0, "jtag"),
24 BERLIN_PINCTRL_FUNCTION(0x1, "gpio"), 24 BERLIN_PINCTRL_FUNCTION(0x1, "gpio"),
25 BERLIN_PINCTRL_FUNCTION(0x2, "led"), 25 BERLIN_PINCTRL_FUNCTION(0x2, "led"),
26 BERLIN_PINCTRL_FUNCTION(0x3, "pwm")), 26 BERLIN_PINCTRL_FUNCTION(0x3, "pwm")),
27 BERLIN_PINCTRL_GROUP("G1", 0x00, 0x2, 0x01, 27 BERLIN_PINCTRL_GROUP("G1", 0x00, 0x3, 0x03,
28 BERLIN_PINCTRL_FUNCTION(0x0, "gpio"), 28 BERLIN_PINCTRL_FUNCTION(0x0, "gpio"),
29 BERLIN_PINCTRL_FUNCTION(0x1, "sd0"), 29 BERLIN_PINCTRL_FUNCTION(0x1, "sd0"),
30 BERLIN_PINCTRL_FUNCTION(0x6, "usb0_dbg"), 30 BERLIN_PINCTRL_FUNCTION(0x6, "usb0_dbg"),
31 BERLIN_PINCTRL_FUNCTION(0x7, "usb1_dbg")), 31 BERLIN_PINCTRL_FUNCTION(0x7, "usb1_dbg")),
32 BERLIN_PINCTRL_GROUP("G2", 0x00, 0x2, 0x02, 32 BERLIN_PINCTRL_GROUP("G2", 0x00, 0x3, 0x06,
33 BERLIN_PINCTRL_FUNCTION(0x0, "gpio"), 33 BERLIN_PINCTRL_FUNCTION(0x0, "gpio"),
34 BERLIN_PINCTRL_FUNCTION(0x1, "sd0"), 34 BERLIN_PINCTRL_FUNCTION(0x1, "sd0"),
35 BERLIN_PINCTRL_FUNCTION(0x2, "fe"), 35 BERLIN_PINCTRL_FUNCTION(0x2, "fe"),
36 BERLIN_PINCTRL_FUNCTION(0x3, "pll"), 36 BERLIN_PINCTRL_FUNCTION(0x3, "pll"),
37 BERLIN_PINCTRL_FUNCTION(0x6, "usb0_dbg"), 37 BERLIN_PINCTRL_FUNCTION(0x6, "usb0_dbg"),
38 BERLIN_PINCTRL_FUNCTION(0x7, "usb1_dbg")), 38 BERLIN_PINCTRL_FUNCTION(0x7, "usb1_dbg")),
39 BERLIN_PINCTRL_GROUP("G3", 0x00, 0x2, 0x04, 39 BERLIN_PINCTRL_GROUP("G3", 0x00, 0x3, 0x09,
40 BERLIN_PINCTRL_FUNCTION(0x0, "gpio"), 40 BERLIN_PINCTRL_FUNCTION(0x0, "gpio"),
41 BERLIN_PINCTRL_FUNCTION(0x1, "sd0"), 41 BERLIN_PINCTRL_FUNCTION(0x1, "sd0"),
42 BERLIN_PINCTRL_FUNCTION(0x2, "twsi2"), 42 BERLIN_PINCTRL_FUNCTION(0x2, "twsi2"),
@@ -44,7 +44,7 @@ static const struct berlin_desc_group berlin2cd_soc_pinctrl_groups[] = {
44 BERLIN_PINCTRL_FUNCTION(0x4, "fe"), 44 BERLIN_PINCTRL_FUNCTION(0x4, "fe"),
45 BERLIN_PINCTRL_FUNCTION(0x6, "usb0_dbg"), 45 BERLIN_PINCTRL_FUNCTION(0x6, "usb0_dbg"),
46 BERLIN_PINCTRL_FUNCTION(0x7, "usb1_dbg")), 46 BERLIN_PINCTRL_FUNCTION(0x7, "usb1_dbg")),
47 BERLIN_PINCTRL_GROUP("G4", 0x00, 0x2, 0x06, 47 BERLIN_PINCTRL_GROUP("G4", 0x00, 0x3, 0x0c,
48 BERLIN_PINCTRL_FUNCTION(0x0, "gpio"), 48 BERLIN_PINCTRL_FUNCTION(0x0, "gpio"),
49 BERLIN_PINCTRL_FUNCTION(0x1, "sd0"), 49 BERLIN_PINCTRL_FUNCTION(0x1, "sd0"),
50 BERLIN_PINCTRL_FUNCTION(0x2, "twsi3"), 50 BERLIN_PINCTRL_FUNCTION(0x2, "twsi3"),
@@ -52,7 +52,7 @@ static const struct berlin_desc_group berlin2cd_soc_pinctrl_groups[] = {
52 BERLIN_PINCTRL_FUNCTION(0x4, "pwm"), 52 BERLIN_PINCTRL_FUNCTION(0x4, "pwm"),
53 BERLIN_PINCTRL_FUNCTION(0x6, "usb0_dbg"), 53 BERLIN_PINCTRL_FUNCTION(0x6, "usb0_dbg"),
54 BERLIN_PINCTRL_FUNCTION(0x7, "usb1_dbg")), 54 BERLIN_PINCTRL_FUNCTION(0x7, "usb1_dbg")),
55 BERLIN_PINCTRL_GROUP("G5", 0x00, 0x3, 0x08, 55 BERLIN_PINCTRL_GROUP("G5", 0x00, 0x3, 0x0f,
56 BERLIN_PINCTRL_FUNCTION(0x0, "gpio"), 56 BERLIN_PINCTRL_FUNCTION(0x0, "gpio"),
57 BERLIN_PINCTRL_FUNCTION(0x1, "sd0"), 57 BERLIN_PINCTRL_FUNCTION(0x1, "sd0"),
58 BERLIN_PINCTRL_FUNCTION(0x2, "twsi3"), 58 BERLIN_PINCTRL_FUNCTION(0x2, "twsi3"),
@@ -60,64 +60,66 @@ static const struct berlin_desc_group berlin2cd_soc_pinctrl_groups[] = {
60 BERLIN_PINCTRL_FUNCTION(0x4, "pwm"), 60 BERLIN_PINCTRL_FUNCTION(0x4, "pwm"),
61 BERLIN_PINCTRL_FUNCTION(0x6, "usb0_dbg"), 61 BERLIN_PINCTRL_FUNCTION(0x6, "usb0_dbg"),
62 BERLIN_PINCTRL_FUNCTION(0x7, "usb1_dbg")), 62 BERLIN_PINCTRL_FUNCTION(0x7, "usb1_dbg")),
63 BERLIN_PINCTRL_GROUP("G6", 0x00, 0x2, 0x0b, 63 BERLIN_PINCTRL_GROUP("G6", 0x00, 0x3, 0x12,
64 BERLIN_PINCTRL_FUNCTION(0x0, "uart0"), /* RX/TX */ 64 BERLIN_PINCTRL_FUNCTION(0x0, "uart0"), /* RX/TX */
65 BERLIN_PINCTRL_FUNCTION(0x1, "gpio")), 65 BERLIN_PINCTRL_FUNCTION(0x1, "gpio")),
66 BERLIN_PINCTRL_GROUP("G7", 0x00, 0x3, 0x0d, 66 BERLIN_PINCTRL_GROUP("G7", 0x00, 0x3, 0x15,
67 BERLIN_PINCTRL_FUNCTION(0x0, "eddc"), 67 BERLIN_PINCTRL_FUNCTION(0x0, "eddc"),
68 BERLIN_PINCTRL_FUNCTION(0x1, "twsi1"), 68 BERLIN_PINCTRL_FUNCTION(0x1, "twsi1"),
69 BERLIN_PINCTRL_FUNCTION(0x2, "gpio")), 69 BERLIN_PINCTRL_FUNCTION(0x2, "gpio")),
70 BERLIN_PINCTRL_GROUP("G8", 0x00, 0x3, 0x10, 70 BERLIN_PINCTRL_GROUP("G8", 0x00, 0x3, 0x18,
71 BERLIN_PINCTRL_FUNCTION(0x0, "spi1"), /* SS0n */ 71 BERLIN_PINCTRL_FUNCTION(0x0, "spi1"), /* SS0n */
72 BERLIN_PINCTRL_FUNCTION(0x1, "gpio")), 72 BERLIN_PINCTRL_FUNCTION(0x1, "gpio")),
73 BERLIN_PINCTRL_GROUP("G9", 0x00, 0x3, 0x13, 73 BERLIN_PINCTRL_GROUP("G9", 0x00, 0x3, 0x1b,
74 BERLIN_PINCTRL_FUNCTION(0x0, "gpio"), 74 BERLIN_PINCTRL_FUNCTION(0x0, "gpio"),
75 BERLIN_PINCTRL_FUNCTION(0x1, "spi1"), /* SS1n/SS2n */ 75 BERLIN_PINCTRL_FUNCTION(0x1, "spi1"), /* SS1n/SS2n */
76 BERLIN_PINCTRL_FUNCTION(0x2, "twsi0")), 76 BERLIN_PINCTRL_FUNCTION(0x3, "twsi0")),
77 BERLIN_PINCTRL_GROUP("G10", 0x00, 0x2, 0x16, 77 BERLIN_PINCTRL_GROUP("G10", 0x00, 0x2, 0x1e,
78 BERLIN_PINCTRL_FUNCTION(0x0, "spi1"), /* CLK */ 78 BERLIN_PINCTRL_FUNCTION(0x0, "spi1"), /* CLK */
79 BERLIN_PINCTRL_FUNCTION(0x1, "gpio")), 79 BERLIN_PINCTRL_FUNCTION(0x1, "gpio")),
80 BERLIN_PINCTRL_GROUP("G11", 0x00, 0x2, 0x18, 80 BERLIN_PINCTRL_GROUP("G11", 0x04, 0x2, 0x00,
81 BERLIN_PINCTRL_FUNCTION(0x0, "spi1"), /* SDI/SDO */ 81 BERLIN_PINCTRL_FUNCTION(0x0, "spi1"), /* SDI/SDO */
82 BERLIN_PINCTRL_FUNCTION(0x1, "gpio")), 82 BERLIN_PINCTRL_FUNCTION(0x1, "gpio")),
83 BERLIN_PINCTRL_GROUP("G12", 0x00, 0x3, 0x1a, 83 BERLIN_PINCTRL_GROUP("G12", 0x04, 0x3, 0x02,
84 BERLIN_PINCTRL_FUNCTION(0x0, "usb1"), 84 BERLIN_PINCTRL_FUNCTION(0x0, "usb1"),
85 BERLIN_PINCTRL_FUNCTION(0x1, "gpio")), 85 BERLIN_PINCTRL_FUNCTION(0x1, "gpio")),
86 BERLIN_PINCTRL_GROUP("G13", 0x04, 0x3, 0x00, 86 BERLIN_PINCTRL_GROUP("G13", 0x04, 0x3, 0x05,
87 BERLIN_PINCTRL_FUNCTION(0x0, "nand"), 87 BERLIN_PINCTRL_FUNCTION(0x0, "nand"),
88 BERLIN_PINCTRL_FUNCTION(0x1, "usb0_dbg"), 88 BERLIN_PINCTRL_FUNCTION(0x1, "usb0_dbg"),
89 BERLIN_PINCTRL_FUNCTION(0x2, "usb1_dbg")), 89 BERLIN_PINCTRL_FUNCTION(0x2, "usb1_dbg")),
90 BERLIN_PINCTRL_GROUP("G14", 0x04, 0x1, 0x03, 90 BERLIN_PINCTRL_GROUP("G14", 0x04, 0x1, 0x08,
91 BERLIN_PINCTRL_FUNCTION(0x0, "nand"), 91 BERLIN_PINCTRL_FUNCTION(0x0, "nand"),
92 BERLIN_PINCTRL_FUNCTION(0x1, "gpio")), 92 BERLIN_PINCTRL_FUNCTION(0x1, "gpio")),
93 BERLIN_PINCTRL_GROUP("G15", 0x04, 0x2, 0x04, 93 BERLIN_PINCTRL_GROUP("G15", 0x04, 0x3, 0x09,
94 BERLIN_PINCTRL_FUNCTION(0x0, "jtag"), 94 BERLIN_PINCTRL_FUNCTION(0x0, "jtag"),
95 BERLIN_PINCTRL_FUNCTION(0x1, "gpio")), 95 BERLIN_PINCTRL_FUNCTION(0x1, "gpio")),
96 BERLIN_PINCTRL_GROUP("G16", 0x04, 0x3, 0x06, 96 BERLIN_PINCTRL_GROUP("G16", 0x04, 0x3, 0x0c,
97 BERLIN_PINCTRL_FUNCTION_UNKNOWN), 97 BERLIN_PINCTRL_FUNCTION_UNKNOWN),
98 BERLIN_PINCTRL_GROUP("G17", 0x04, 0x3, 0x09, 98 BERLIN_PINCTRL_GROUP("G17", 0x04, 0x3, 0x0f,
99 BERLIN_PINCTRL_FUNCTION_UNKNOWN), 99 BERLIN_PINCTRL_FUNCTION_UNKNOWN),
100 BERLIN_PINCTRL_GROUP("G18", 0x04, 0x1, 0x0c, 100 BERLIN_PINCTRL_GROUP("G18", 0x04, 0x2, 0x12,
101 BERLIN_PINCTRL_FUNCTION_UNKNOWN), 101 BERLIN_PINCTRL_FUNCTION_UNKNOWN),
102 BERLIN_PINCTRL_GROUP("G19", 0x04, 0x1, 0x0d, 102 BERLIN_PINCTRL_GROUP("G19", 0x04, 0x2, 0x14,
103 BERLIN_PINCTRL_FUNCTION_UNKNOWN), 103 BERLIN_PINCTRL_FUNCTION_UNKNOWN),
104 BERLIN_PINCTRL_GROUP("G20", 0x04, 0x1, 0x0e, 104 BERLIN_PINCTRL_GROUP("G20", 0x04, 0x2, 0x16,
105 BERLIN_PINCTRL_FUNCTION_UNKNOWN), 105 BERLIN_PINCTRL_FUNCTION_UNKNOWN),
106 BERLIN_PINCTRL_GROUP("G21", 0x04, 0x3, 0x0f, 106 BERLIN_PINCTRL_GROUP("G21", 0x04, 0x3, 0x18,
107 BERLIN_PINCTRL_FUNCTION_UNKNOWN), 107 BERLIN_PINCTRL_FUNCTION_UNKNOWN),
108 BERLIN_PINCTRL_GROUP("G22", 0x04, 0x3, 0x12, 108 BERLIN_PINCTRL_GROUP("G22", 0x04, 0x3, 0x1b,
109 BERLIN_PINCTRL_FUNCTION_UNKNOWN), 109 BERLIN_PINCTRL_FUNCTION_UNKNOWN),
110 BERLIN_PINCTRL_GROUP("G23", 0x04, 0x3, 0x15, 110 BERLIN_PINCTRL_GROUP("G23", 0x08, 0x3, 0x00,
111 BERLIN_PINCTRL_FUNCTION_UNKNOWN), 111 BERLIN_PINCTRL_FUNCTION_UNKNOWN),
112 BERLIN_PINCTRL_GROUP("G24", 0x04, 0x2, 0x18, 112 BERLIN_PINCTRL_GROUP("G24", 0x08, 0x2, 0x03,
113 BERLIN_PINCTRL_FUNCTION_UNKNOWN), 113 BERLIN_PINCTRL_FUNCTION_UNKNOWN),
114 BERLIN_PINCTRL_GROUP("G25", 0x04, 0x2, 0x1a, 114 BERLIN_PINCTRL_GROUP("G25", 0x08, 0x2, 0x05,
115 BERLIN_PINCTRL_FUNCTION_UNKNOWN), 115 BERLIN_PINCTRL_FUNCTION_UNKNOWN),
116 BERLIN_PINCTRL_GROUP("G26", 0x04, 0x1, 0x1c, 116 BERLIN_PINCTRL_GROUP("G26", 0x08, 0x1, 0x07,
117 BERLIN_PINCTRL_FUNCTION_UNKNOWN), 117 BERLIN_PINCTRL_FUNCTION_UNKNOWN),
118 BERLIN_PINCTRL_GROUP("G27", 0x04, 0x1, 0x1d, 118 BERLIN_PINCTRL_GROUP("G27", 0x08, 0x2, 0x08,
119 BERLIN_PINCTRL_FUNCTION_UNKNOWN), 119 BERLIN_PINCTRL_FUNCTION_UNKNOWN),
120 BERLIN_PINCTRL_GROUP("G28", 0x04, 0x2, 0x1e, 120 BERLIN_PINCTRL_GROUP("G28", 0x08, 0x3, 0x0a,
121 BERLIN_PINCTRL_FUNCTION_UNKNOWN),
122 BERLIN_PINCTRL_GROUP("G29", 0x08, 0x3, 0x0d,
121 BERLIN_PINCTRL_FUNCTION_UNKNOWN), 123 BERLIN_PINCTRL_FUNCTION_UNKNOWN),
122}; 124};
123 125