diff options
author | Thomas Hebb <tommyhebb@gmail.com> | 2015-10-06 16:56:37 -0400 |
---|---|---|
committer | Linus Walleij <linus.walleij@linaro.org> | 2015-10-16 10:42:48 -0400 |
commit | 3c6531c7461b80c18284d43b59791c60cd67582f (patch) | |
tree | c7d16115df832142d718318fd2691540bd42b6b2 /drivers/pinctrl/berlin | |
parent | 1d48fb6e4aeec5946574712c512c12a053ce82c0 (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.c | 62 |
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 | ||
20 | static const struct berlin_desc_group berlin2cd_soc_pinctrl_groups[] = { | 20 | static 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 | ||