Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ARC: [TB10x] Updates for GPIO and pinctrl

Device tree and Kconfig updates for GPIO and pinctrl drivers.

Signed-off-by: Christian Ruppert <christian.ruppert@abilis.com>
Signed-off-by: Vineet Gupta <vgupta@synopsys.com>

authored by

Christian Ruppert and committed by
Vineet Gupta
9c8e612d 5e01dc7b

+216 -187
+93 -79
arch/arc/boot/dts/abilis_tb100.dtsi
··· 43 43 iomux: iomux@FF10601c { 44 44 /* Port 1 */ 45 45 pctl_tsin_s0: pctl-tsin-s0 { /* Serial TS-in 0 */ 46 - pingrp = "mis0_pins"; 46 + abilis,function = "mis0"; 47 47 }; 48 48 pctl_tsin_s1: pctl-tsin-s1 { /* Serial TS-in 1 */ 49 - pingrp = "mis1_pins"; 49 + abilis,function = "mis1"; 50 50 }; 51 51 pctl_gpio_a: pctl-gpio-a { /* GPIO bank A */ 52 - pingrp = "gpioa_pins"; 52 + abilis,function = "gpioa"; 53 53 }; 54 54 pctl_tsin_p1: pctl-tsin-p1 { /* Parallel TS-in 1 */ 55 - pingrp = "mip1_pins"; 55 + abilis,function = "mip1"; 56 56 }; 57 57 /* Port 2 */ 58 58 pctl_tsin_s2: pctl-tsin-s2 { /* Serial TS-in 2 */ 59 - pingrp = "mis2_pins"; 59 + abilis,function = "mis2"; 60 60 }; 61 61 pctl_tsin_s3: pctl-tsin-s3 { /* Serial TS-in 3 */ 62 - pingrp = "mis3_pins"; 62 + abilis,function = "mis3"; 63 63 }; 64 64 pctl_gpio_c: pctl-gpio-c { /* GPIO bank C */ 65 - pingrp = "gpioc_pins"; 65 + abilis,function = "gpioc"; 66 66 }; 67 67 pctl_tsin_p3: pctl-tsin-p3 { /* Parallel TS-in 3 */ 68 - pingrp = "mip3_pins"; 68 + abilis,function = "mip3"; 69 69 }; 70 70 /* Port 3 */ 71 71 pctl_tsin_s4: pctl-tsin-s4 { /* Serial TS-in 4 */ 72 - pingrp = "mis4_pins"; 72 + abilis,function = "mis4"; 73 73 }; 74 74 pctl_tsin_s5: pctl-tsin-s5 { /* Serial TS-in 5 */ 75 - pingrp = "mis5_pins"; 75 + abilis,function = "mis5"; 76 76 }; 77 77 pctl_gpio_e: pctl-gpio-e { /* GPIO bank E */ 78 - pingrp = "gpioe_pins"; 78 + abilis,function = "gpioe"; 79 79 }; 80 80 pctl_tsin_p5: pctl-tsin-p5 { /* Parallel TS-in 5 */ 81 - pingrp = "mip5_pins"; 81 + abilis,function = "mip5"; 82 82 }; 83 83 /* Port 4 */ 84 84 pctl_tsin_s6: pctl-tsin-s6 { /* Serial TS-in 6 */ 85 - pingrp = "mis6_pins"; 85 + abilis,function = "mis6"; 86 86 }; 87 87 pctl_tsin_s7: pctl-tsin-s7 { /* Serial TS-in 7 */ 88 - pingrp = "mis7_pins"; 88 + abilis,function = "mis7"; 89 89 }; 90 90 pctl_gpio_g: pctl-gpio-g { /* GPIO bank G */ 91 - pingrp = "gpiog_pins"; 91 + abilis,function = "gpiog"; 92 92 }; 93 93 pctl_tsin_p7: pctl-tsin-p7 { /* Parallel TS-in 7 */ 94 - pingrp = "mip7_pins"; 94 + abilis,function = "mip7"; 95 95 }; 96 96 /* Port 5 */ 97 97 pctl_gpio_j: pctl-gpio-j { /* GPIO bank J */ 98 - pingrp = "gpioj_pins"; 98 + abilis,function = "gpioj"; 99 99 }; 100 100 pctl_gpio_k: pctl-gpio-k { /* GPIO bank K */ 101 - pingrp = "gpiok_pins"; 101 + abilis,function = "gpiok"; 102 102 }; 103 103 pctl_ciplus: pctl-ciplus { /* CI+ interface */ 104 - pingrp = "ciplus_pins"; 104 + abilis,function = "ciplus"; 105 105 }; 106 106 pctl_mcard: pctl-mcard { /* M-Card interface */ 107 - pingrp = "mcard_pins"; 107 + abilis,function = "mcard"; 108 108 }; 109 109 /* Port 6 */ 110 110 pctl_tsout_p: pctl-tsout-p { /* Parallel TS-out */ 111 - pingrp = "mop_pins"; 111 + abilis,function = "mop"; 112 112 }; 113 113 pctl_tsout_s0: pctl-tsout-s0 { /* Serial TS-out 0 */ 114 - pingrp = "mos0_pins"; 114 + abilis,function = "mos0"; 115 115 }; 116 116 pctl_tsout_s1: pctl-tsout-s1 { /* Serial TS-out 1 */ 117 - pingrp = "mos1_pins"; 117 + abilis,function = "mos1"; 118 118 }; 119 119 pctl_tsout_s2: pctl-tsout-s2 { /* Serial TS-out 2 */ 120 - pingrp = "mos2_pins"; 120 + abilis,function = "mos2"; 121 121 }; 122 122 pctl_tsout_s3: pctl-tsout-s3 { /* Serial TS-out 3 */ 123 - pingrp = "mos3_pins"; 123 + abilis,function = "mos3"; 124 124 }; 125 125 /* Port 7 */ 126 126 pctl_uart0: pctl-uart0 { /* UART 0 */ 127 - pingrp = "uart0_pins"; 127 + abilis,function = "uart0"; 128 128 }; 129 129 pctl_uart1: pctl-uart1 { /* UART 1 */ 130 - pingrp = "uart1_pins"; 130 + abilis,function = "uart1"; 131 131 }; 132 132 pctl_gpio_l: pctl-gpio-l { /* GPIO bank L */ 133 - pingrp = "gpiol_pins"; 133 + abilis,function = "gpiol"; 134 134 }; 135 135 pctl_gpio_m: pctl-gpio-m { /* GPIO bank M */ 136 - pingrp = "gpiom_pins"; 136 + abilis,function = "gpiom"; 137 137 }; 138 138 /* Port 8 */ 139 139 pctl_spi3: pctl-spi3 { 140 - pingrp = "spi3_pins"; 140 + abilis,function = "spi3"; 141 141 }; 142 142 /* Port 9 */ 143 143 pctl_spi1: pctl-spi1 { 144 - pingrp = "spi1_pins"; 144 + abilis,function = "spi1"; 145 145 }; 146 146 pctl_gpio_n: pctl-gpio-n { 147 - pingrp = "gpion_pins"; 147 + abilis,function = "gpion"; 148 148 }; 149 149 /* Unmuxed GPIOs */ 150 150 pctl_gpio_b: pctl-gpio-b { 151 - pingrp = "gpiob_pins"; 151 + abilis,function = "gpiob"; 152 152 }; 153 153 pctl_gpio_d: pctl-gpio-d { 154 - pingrp = "gpiod_pins"; 154 + abilis,function = "gpiod"; 155 155 }; 156 156 pctl_gpio_f: pctl-gpio-f { 157 - pingrp = "gpiof_pins"; 157 + abilis,function = "gpiof"; 158 158 }; 159 159 pctl_gpio_h: pctl-gpio-h { 160 - pingrp = "gpioh_pins"; 160 + abilis,function = "gpioh"; 161 161 }; 162 162 pctl_gpio_i: pctl-gpio-i { 163 - pingrp = "gpioi_pins"; 163 + abilis,function = "gpioi"; 164 164 }; 165 165 }; 166 166 ··· 172 172 interrupts = <27 2>; 173 173 reg = <0xFF140000 0x1000>; 174 174 gpio-controller; 175 - #gpio-cells = <1>; 176 - gpio-base = <0>; 177 - gpio-pins = <&pctl_gpio_a>; 175 + #gpio-cells = <2>; 176 + abilis,ngpio = <3>; 177 + gpio-ranges = <&iomux 0 0 0>; 178 + gpio-ranges-group-names = "gpioa"; 178 179 }; 179 180 gpiob: gpio@FF141000 { 180 181 compatible = "abilis,tb10x-gpio"; ··· 185 184 interrupts = <27 2>; 186 185 reg = <0xFF141000 0x1000>; 187 186 gpio-controller; 188 - #gpio-cells = <1>; 189 - gpio-base = <3>; 190 - gpio-pins = <&pctl_gpio_b>; 187 + #gpio-cells = <2>; 188 + abilis,ngpio = <2>; 189 + gpio-ranges = <&iomux 0 0 0>; 190 + gpio-ranges-group-names = "gpiob"; 191 191 }; 192 192 gpioc: gpio@FF142000 { 193 193 compatible = "abilis,tb10x-gpio"; ··· 198 196 interrupts = <27 2>; 199 197 reg = <0xFF142000 0x1000>; 200 198 gpio-controller; 201 - #gpio-cells = <1>; 202 - gpio-base = <5>; 203 - gpio-pins = <&pctl_gpio_c>; 199 + #gpio-cells = <2>; 200 + abilis,ngpio = <3>; 201 + gpio-ranges = <&iomux 0 0 0>; 202 + gpio-ranges-group-names = "gpioc"; 204 203 }; 205 204 gpiod: gpio@FF143000 { 206 205 compatible = "abilis,tb10x-gpio"; ··· 211 208 interrupts = <27 2>; 212 209 reg = <0xFF143000 0x1000>; 213 210 gpio-controller; 214 - #gpio-cells = <1>; 215 - gpio-base = <8>; 216 - gpio-pins = <&pctl_gpio_d>; 211 + #gpio-cells = <2>; 212 + abilis,ngpio = <2>; 213 + gpio-ranges = <&iomux 0 0 0>; 214 + gpio-ranges-group-names = "gpiod"; 217 215 }; 218 216 gpioe: gpio@FF144000 { 219 217 compatible = "abilis,tb10x-gpio"; ··· 224 220 interrupts = <27 2>; 225 221 reg = <0xFF144000 0x1000>; 226 222 gpio-controller; 227 - #gpio-cells = <1>; 228 - gpio-base = <10>; 229 - gpio-pins = <&pctl_gpio_e>; 223 + #gpio-cells = <2>; 224 + abilis,ngpio = <3>; 225 + gpio-ranges = <&iomux 0 0 0>; 226 + gpio-ranges-group-names = "gpioe"; 230 227 }; 231 228 gpiof: gpio@FF145000 { 232 229 compatible = "abilis,tb10x-gpio"; ··· 237 232 interrupts = <27 2>; 238 233 reg = <0xFF145000 0x1000>; 239 234 gpio-controller; 240 - #gpio-cells = <1>; 241 - gpio-base = <13>; 242 - gpio-pins = <&pctl_gpio_f>; 235 + #gpio-cells = <2>; 236 + abilis,ngpio = <2>; 237 + gpio-ranges = <&iomux 0 0 0>; 238 + gpio-ranges-group-names = "gpiof"; 243 239 }; 244 240 gpiog: gpio@FF146000 { 245 241 compatible = "abilis,tb10x-gpio"; ··· 250 244 interrupts = <27 2>; 251 245 reg = <0xFF146000 0x1000>; 252 246 gpio-controller; 253 - #gpio-cells = <1>; 254 - gpio-base = <15>; 255 - gpio-pins = <&pctl_gpio_g>; 247 + #gpio-cells = <2>; 248 + abilis,ngpio = <3>; 249 + gpio-ranges = <&iomux 0 0 0>; 250 + gpio-ranges-group-names = "gpiog"; 256 251 }; 257 252 gpioh: gpio@FF147000 { 258 253 compatible = "abilis,tb10x-gpio"; ··· 263 256 interrupts = <27 2>; 264 257 reg = <0xFF147000 0x1000>; 265 258 gpio-controller; 266 - #gpio-cells = <1>; 267 - gpio-base = <18>; 268 - gpio-pins = <&pctl_gpio_h>; 259 + #gpio-cells = <2>; 260 + abilis,ngpio = <2>; 261 + gpio-ranges = <&iomux 0 0 0>; 262 + gpio-ranges-group-names = "gpioh"; 269 263 }; 270 264 gpioi: gpio@FF148000 { 271 265 compatible = "abilis,tb10x-gpio"; ··· 276 268 interrupts = <27 2>; 277 269 reg = <0xFF148000 0x1000>; 278 270 gpio-controller; 279 - #gpio-cells = <1>; 280 - gpio-base = <20>; 281 - gpio-pins = <&pctl_gpio_i>; 271 + #gpio-cells = <2>; 272 + abilis,ngpio = <12>; 273 + gpio-ranges = <&iomux 0 0 0>; 274 + gpio-ranges-group-names = "gpioi"; 282 275 }; 283 276 gpioj: gpio@FF149000 { 284 277 compatible = "abilis,tb10x-gpio"; ··· 289 280 interrupts = <27 2>; 290 281 reg = <0xFF149000 0x1000>; 291 282 gpio-controller; 292 - #gpio-cells = <1>; 293 - gpio-base = <32>; 294 - gpio-pins = <&pctl_gpio_j>; 283 + #gpio-cells = <2>; 284 + abilis,ngpio = <32>; 285 + gpio-ranges = <&iomux 0 0 0>; 286 + gpio-ranges-group-names = "gpioj"; 295 287 }; 296 288 gpiok: gpio@FF14a000 { 297 289 compatible = "abilis,tb10x-gpio"; ··· 302 292 interrupts = <27 2>; 303 293 reg = <0xFF14A000 0x1000>; 304 294 gpio-controller; 305 - #gpio-cells = <1>; 306 - gpio-base = <64>; 307 - gpio-pins = <&pctl_gpio_k>; 295 + #gpio-cells = <2>; 296 + abilis,ngpio = <22>; 297 + gpio-ranges = <&iomux 0 0 0>; 298 + gpio-ranges-group-names = "gpiok"; 308 299 }; 309 300 gpiol: gpio@FF14b000 { 310 301 compatible = "abilis,tb10x-gpio"; ··· 315 304 interrupts = <27 2>; 316 305 reg = <0xFF14B000 0x1000>; 317 306 gpio-controller; 318 - #gpio-cells = <1>; 319 - gpio-base = <86>; 320 - gpio-pins = <&pctl_gpio_l>; 307 + #gpio-cells = <2>; 308 + abilis,ngpio = <4>; 309 + gpio-ranges = <&iomux 0 0 0>; 310 + gpio-ranges-group-names = "gpiol"; 321 311 }; 322 312 gpiom: gpio@FF14c000 { 323 313 compatible = "abilis,tb10x-gpio"; ··· 328 316 interrupts = <27 2>; 329 317 reg = <0xFF14C000 0x1000>; 330 318 gpio-controller; 331 - #gpio-cells = <1>; 332 - gpio-base = <90>; 333 - gpio-pins = <&pctl_gpio_m>; 319 + #gpio-cells = <2>; 320 + abilis,ngpio = <4>; 321 + gpio-ranges = <&iomux 0 0 0>; 322 + gpio-ranges-group-names = "gpiom"; 334 323 }; 335 324 gpion: gpio@FF14d000 { 336 325 compatible = "abilis,tb10x-gpio"; ··· 341 328 interrupts = <27 2>; 342 329 reg = <0xFF14D000 0x1000>; 343 330 gpio-controller; 344 - #gpio-cells = <1>; 345 - gpio-base = <94>; 346 - gpio-pins = <&pctl_gpio_n>; 331 + #gpio-cells = <2>; 332 + abilis,ngpio = <5>; 333 + gpio-ranges = <&iomux 0 0 0>; 334 + gpio-ranges-group-names = "gpion"; 347 335 }; 348 336 }; 349 337 };
+12 -12
arch/arc/boot/dts/abilis_tb100_dvk.dts
··· 64 64 compatible = "gpio-leds"; 65 65 power { 66 66 label = "Power"; 67 - gpios = <&gpioi 0>; 67 + gpios = <&gpioi 0 0>; 68 68 linux,default-trigger = "default-on"; 69 69 }; 70 70 heartbeat { 71 71 label = "Heartbeat"; 72 - gpios = <&gpioi 1>; 72 + gpios = <&gpioi 1 0>; 73 73 linux,default-trigger = "heartbeat"; 74 74 }; 75 75 led2 { 76 76 label = "LED2"; 77 - gpios = <&gpioi 2>; 77 + gpios = <&gpioi 2 0>; 78 78 default-state = "off"; 79 79 }; 80 80 led3 { 81 81 label = "LED3"; 82 - gpios = <&gpioi 3>; 82 + gpios = <&gpioi 3 0>; 83 83 default-state = "off"; 84 84 }; 85 85 led4 { 86 86 label = "LED4"; 87 - gpios = <&gpioi 4>; 87 + gpios = <&gpioi 4 0>; 88 88 default-state = "off"; 89 89 }; 90 90 led5 { 91 91 label = "LED5"; 92 - gpios = <&gpioi 5>; 92 + gpios = <&gpioi 5 0>; 93 93 default-state = "off"; 94 94 }; 95 95 led6 { 96 96 label = "LED6"; 97 - gpios = <&gpioi 6>; 97 + gpios = <&gpioi 6 0>; 98 98 default-state = "off"; 99 99 }; 100 100 led7 { 101 101 label = "LED7"; 102 - gpios = <&gpioi 7>; 102 + gpios = <&gpioi 7 0>; 103 103 default-state = "off"; 104 104 }; 105 105 led8 { 106 106 label = "LED8"; 107 - gpios = <&gpioi 8>; 107 + gpios = <&gpioi 8 0>; 108 108 default-state = "off"; 109 109 }; 110 110 led9 { 111 111 label = "LED9"; 112 - gpios = <&gpioi 9>; 112 + gpios = <&gpioi 9 0>; 113 113 default-state = "off"; 114 114 }; 115 115 led10 { 116 116 label = "LED10"; 117 - gpios = <&gpioi 10>; 117 + gpios = <&gpioi 10 0>; 118 118 default-state = "off"; 119 119 }; 120 120 led11 { 121 121 label = "LED11"; 122 - gpios = <&gpioi 11>; 122 + gpios = <&gpioi 11 0>; 123 123 default-state = "off"; 124 124 }; 125 125 };
+96 -82
arch/arc/boot/dts/abilis_tb101.dtsi
··· 43 43 iomux: iomux@FF10601c { 44 44 /* Port 1 */ 45 45 pctl_tsin_s0: pctl-tsin-s0 { /* Serial TS-in 0 */ 46 - pingrp = "mis0_pins"; 46 + abilis,function = "mis0"; 47 47 }; 48 48 pctl_tsin_s1: pctl-tsin-s1 { /* Serial TS-in 1 */ 49 - pingrp = "mis1_pins"; 49 + abilis,function = "mis1"; 50 50 }; 51 51 pctl_gpio_a: pctl-gpio-a { /* GPIO bank A */ 52 - pingrp = "gpioa_pins"; 52 + abilis,function = "gpioa"; 53 53 }; 54 54 pctl_tsin_p1: pctl-tsin-p1 { /* Parallel TS-in 1 */ 55 - pingrp = "mip1_pins"; 55 + abilis,function = "mip1"; 56 56 }; 57 57 /* Port 2 */ 58 58 pctl_tsin_s2: pctl-tsin-s2 { /* Serial TS-in 2 */ 59 - pingrp = "mis2_pins"; 59 + abilis,function = "mis2"; 60 60 }; 61 61 pctl_tsin_s3: pctl-tsin-s3 { /* Serial TS-in 3 */ 62 - pingrp = "mis3_pins"; 62 + abilis,function = "mis3"; 63 63 }; 64 64 pctl_gpio_c: pctl-gpio-c { /* GPIO bank C */ 65 - pingrp = "gpioc_pins"; 65 + abilis,function = "gpioc"; 66 66 }; 67 67 pctl_tsin_p3: pctl-tsin-p3 { /* Parallel TS-in 3 */ 68 - pingrp = "mip3_pins"; 68 + abilis,function = "mip3"; 69 69 }; 70 70 /* Port 3 */ 71 71 pctl_tsin_s4: pctl-tsin-s4 { /* Serial TS-in 4 */ 72 - pingrp = "mis4_pins"; 72 + abilis,function = "mis4"; 73 73 }; 74 74 pctl_tsin_s5: pctl-tsin-s5 { /* Serial TS-in 5 */ 75 - pingrp = "mis5_pins"; 75 + abilis,function = "mis5"; 76 76 }; 77 77 pctl_gpio_e: pctl-gpio-e { /* GPIO bank E */ 78 - pingrp = "gpioe_pins"; 78 + abilis,function = "gpioe"; 79 79 }; 80 80 pctl_tsin_p5: pctl-tsin-p5 { /* Parallel TS-in 5 */ 81 - pingrp = "mip5_pins"; 81 + abilis,function = "mip5"; 82 82 }; 83 83 /* Port 4 */ 84 84 pctl_tsin_s6: pctl-tsin-s6 { /* Serial TS-in 6 */ 85 - pingrp = "mis6_pins"; 85 + abilis,function = "mis6"; 86 86 }; 87 87 pctl_tsin_s7: pctl-tsin-s7 { /* Serial TS-in 7 */ 88 - pingrp = "mis7_pins"; 88 + abilis,function = "mis7"; 89 89 }; 90 90 pctl_gpio_g: pctl-gpio-g { /* GPIO bank G */ 91 - pingrp = "gpiog_pins"; 91 + abilis,function = "gpiog"; 92 92 }; 93 93 pctl_tsin_p7: pctl-tsin-p7 { /* Parallel TS-in 7 */ 94 - pingrp = "mip7_pins"; 94 + abilis,function = "mip7"; 95 95 }; 96 96 /* Port 5 */ 97 97 pctl_gpio_j: pctl-gpio-j { /* GPIO bank J */ 98 - pingrp = "gpioj_pins"; 98 + abilis,function = "gpioj"; 99 99 }; 100 100 pctl_gpio_k: pctl-gpio-k { /* GPIO bank K */ 101 - pingrp = "gpiok_pins"; 101 + abilis,function = "gpiok"; 102 102 }; 103 103 pctl_ciplus: pctl-ciplus { /* CI+ interface */ 104 - pingrp = "ciplus_pins"; 104 + abilis,function = "ciplus"; 105 105 }; 106 106 pctl_mcard: pctl-mcard { /* M-Card interface */ 107 - pingrp = "mcard_pins"; 107 + abilis,function = "mcard"; 108 108 }; 109 109 pctl_stc0: pctl-stc0 { /* Smart card I/F 0 */ 110 - pingrp = "stc0_pins"; 110 + abilis,function = "stc0"; 111 111 }; 112 112 pctl_stc1: pctl-stc1 { /* Smart card I/F 1 */ 113 - pingrp = "stc1_pins"; 113 + abilis,function = "stc1"; 114 114 }; 115 115 /* Port 6 */ 116 116 pctl_tsout_p: pctl-tsout-p { /* Parallel TS-out */ 117 - pingrp = "mop_pins"; 117 + abilis,function = "mop"; 118 118 }; 119 119 pctl_tsout_s0: pctl-tsout-s0 { /* Serial TS-out 0 */ 120 - pingrp = "mos0_pins"; 120 + abilis,function = "mos0"; 121 121 }; 122 122 pctl_tsout_s1: pctl-tsout-s1 { /* Serial TS-out 1 */ 123 - pingrp = "mos1_pins"; 123 + abilis,function = "mos1"; 124 124 }; 125 125 pctl_tsout_s2: pctl-tsout-s2 { /* Serial TS-out 2 */ 126 - pingrp = "mos2_pins"; 126 + abilis,function = "mos2"; 127 127 }; 128 128 pctl_tsout_s3: pctl-tsout-s3 { /* Serial TS-out 3 */ 129 - pingrp = "mos3_pins"; 129 + abilis,function = "mos3"; 130 130 }; 131 131 /* Port 7 */ 132 132 pctl_uart0: pctl-uart0 { /* UART 0 */ 133 - pingrp = "uart0_pins"; 133 + abilis,function = "uart0"; 134 134 }; 135 135 pctl_uart1: pctl-uart1 { /* UART 1 */ 136 - pingrp = "uart1_pins"; 136 + abilis,function = "uart1"; 137 137 }; 138 138 pctl_gpio_l: pctl-gpio-l { /* GPIO bank L */ 139 - pingrp = "gpiol_pins"; 139 + abilis,function = "gpiol"; 140 140 }; 141 141 pctl_gpio_m: pctl-gpio-m { /* GPIO bank M */ 142 - pingrp = "gpiom_pins"; 142 + abilis,function = "gpiom"; 143 143 }; 144 144 /* Port 8 */ 145 145 pctl_spi3: pctl-spi3 { 146 - pingrp = "spi3_pins"; 146 + abilis,function = "spi3"; 147 147 }; 148 148 pctl_jtag: pctl-jtag { 149 - pingrp = "jtag_pins"; 149 + abilis,function = "jtag"; 150 150 }; 151 151 /* Port 9 */ 152 152 pctl_spi1: pctl-spi1 { 153 - pingrp = "spi1_pins"; 153 + abilis,function = "spi1"; 154 154 }; 155 155 pctl_gpio_n: pctl-gpio-n { 156 - pingrp = "gpion_pins"; 156 + abilis,function = "gpion"; 157 157 }; 158 158 /* Unmuxed GPIOs */ 159 159 pctl_gpio_b: pctl-gpio-b { 160 - pingrp = "gpiob_pins"; 160 + abilis,function = "gpiob"; 161 161 }; 162 162 pctl_gpio_d: pctl-gpio-d { 163 - pingrp = "gpiod_pins"; 163 + abilis,function = "gpiod"; 164 164 }; 165 165 pctl_gpio_f: pctl-gpio-f { 166 - pingrp = "gpiof_pins"; 166 + abilis,function = "gpiof"; 167 167 }; 168 168 pctl_gpio_h: pctl-gpio-h { 169 - pingrp = "gpioh_pins"; 169 + abilis,function = "gpioh"; 170 170 }; 171 171 pctl_gpio_i: pctl-gpio-i { 172 - pingrp = "gpioi_pins"; 172 + abilis,function = "gpioi"; 173 173 }; 174 174 }; 175 175 ··· 181 181 interrupts = <27 2>; 182 182 reg = <0xFF140000 0x1000>; 183 183 gpio-controller; 184 - #gpio-cells = <1>; 185 - gpio-base = <0>; 186 - gpio-pins = <&pctl_gpio_a>; 184 + #gpio-cells = <2>; 185 + abilis,ngpio = <3>; 186 + gpio-ranges = <&iomux 0 0 0>; 187 + gpio-ranges-group-names = "gpioa"; 187 188 }; 188 189 gpiob: gpio@FF141000 { 189 190 compatible = "abilis,tb10x-gpio"; ··· 194 193 interrupts = <27 2>; 195 194 reg = <0xFF141000 0x1000>; 196 195 gpio-controller; 197 - #gpio-cells = <1>; 198 - gpio-base = <3>; 199 - gpio-pins = <&pctl_gpio_b>; 196 + #gpio-cells = <2>; 197 + abilis,ngpio = <2>; 198 + gpio-ranges = <&iomux 0 0 0>; 199 + gpio-ranges-group-names = "gpiob"; 200 200 }; 201 201 gpioc: gpio@FF142000 { 202 202 compatible = "abilis,tb10x-gpio"; ··· 207 205 interrupts = <27 2>; 208 206 reg = <0xFF142000 0x1000>; 209 207 gpio-controller; 210 - #gpio-cells = <1>; 211 - gpio-base = <5>; 212 - gpio-pins = <&pctl_gpio_c>; 208 + #gpio-cells = <2>; 209 + abilis,ngpio = <3>; 210 + gpio-ranges = <&iomux 0 0 0>; 211 + gpio-ranges-group-names = "gpioc"; 213 212 }; 214 213 gpiod: gpio@FF143000 { 215 214 compatible = "abilis,tb10x-gpio"; ··· 220 217 interrupts = <27 2>; 221 218 reg = <0xFF143000 0x1000>; 222 219 gpio-controller; 223 - #gpio-cells = <1>; 224 - gpio-base = <8>; 225 - gpio-pins = <&pctl_gpio_d>; 220 + #gpio-cells = <2>; 221 + abilis,ngpio = <2>; 222 + gpio-ranges = <&iomux 0 0 0>; 223 + gpio-ranges-group-names = "gpiod"; 226 224 }; 227 225 gpioe: gpio@FF144000 { 228 226 compatible = "abilis,tb10x-gpio"; ··· 233 229 interrupts = <27 2>; 234 230 reg = <0xFF144000 0x1000>; 235 231 gpio-controller; 236 - #gpio-cells = <1>; 237 - gpio-base = <10>; 238 - gpio-pins = <&pctl_gpio_e>; 232 + #gpio-cells = <2>; 233 + abilis,ngpio = <3>; 234 + gpio-ranges = <&iomux 0 0 0>; 235 + gpio-ranges-group-names = "gpioe"; 239 236 }; 240 237 gpiof: gpio@FF145000 { 241 238 compatible = "abilis,tb10x-gpio"; ··· 246 241 interrupts = <27 2>; 247 242 reg = <0xFF145000 0x1000>; 248 243 gpio-controller; 249 - #gpio-cells = <1>; 250 - gpio-base = <13>; 251 - gpio-pins = <&pctl_gpio_f>; 244 + #gpio-cells = <2>; 245 + abilis,ngpio = <2>; 246 + gpio-ranges = <&iomux 0 0 0>; 247 + gpio-ranges-group-names = "gpiof"; 252 248 }; 253 249 gpiog: gpio@FF146000 { 254 250 compatible = "abilis,tb10x-gpio"; ··· 259 253 interrupts = <27 2>; 260 254 reg = <0xFF146000 0x1000>; 261 255 gpio-controller; 262 - #gpio-cells = <1>; 263 - gpio-base = <15>; 264 - gpio-pins = <&pctl_gpio_g>; 256 + #gpio-cells = <2>; 257 + abilis,ngpio = <3>; 258 + gpio-ranges = <&iomux 0 0 0>; 259 + gpio-ranges-group-names = "gpiog"; 265 260 }; 266 261 gpioh: gpio@FF147000 { 267 262 compatible = "abilis,tb10x-gpio"; ··· 272 265 interrupts = <27 2>; 273 266 reg = <0xFF147000 0x1000>; 274 267 gpio-controller; 275 - #gpio-cells = <1>; 276 - gpio-base = <18>; 277 - gpio-pins = <&pctl_gpio_h>; 268 + #gpio-cells = <2>; 269 + abilis,ngpio = <2>; 270 + gpio-ranges = <&iomux 0 0 0>; 271 + gpio-ranges-group-names = "gpioh"; 278 272 }; 279 273 gpioi: gpio@FF148000 { 280 274 compatible = "abilis,tb10x-gpio"; ··· 285 277 interrupts = <27 2>; 286 278 reg = <0xFF148000 0x1000>; 287 279 gpio-controller; 288 - #gpio-cells = <1>; 289 - gpio-base = <20>; 290 - gpio-pins = <&pctl_gpio_i>; 280 + #gpio-cells = <2>; 281 + abilis,ngpio = <12>; 282 + gpio-ranges = <&iomux 0 0 0>; 283 + gpio-ranges-group-names = "gpioi"; 291 284 }; 292 285 gpioj: gpio@FF149000 { 293 286 compatible = "abilis,tb10x-gpio"; ··· 298 289 interrupts = <27 2>; 299 290 reg = <0xFF149000 0x1000>; 300 291 gpio-controller; 301 - #gpio-cells = <1>; 302 - gpio-base = <32>; 303 - gpio-pins = <&pctl_gpio_j>; 292 + #gpio-cells = <2>; 293 + abilis,ngpio = <32>; 294 + gpio-ranges = <&iomux 0 0 0>; 295 + gpio-ranges-group-names = "gpioj"; 304 296 }; 305 297 gpiok: gpio@FF14a000 { 306 298 compatible = "abilis,tb10x-gpio"; ··· 311 301 interrupts = <27 2>; 312 302 reg = <0xFF14A000 0x1000>; 313 303 gpio-controller; 314 - #gpio-cells = <1>; 315 - gpio-base = <64>; 316 - gpio-pins = <&pctl_gpio_k>; 304 + #gpio-cells = <2>; 305 + abilis,ngpio = <22>; 306 + gpio-ranges = <&iomux 0 0 0>; 307 + gpio-ranges-group-names = "gpiok"; 317 308 }; 318 309 gpiol: gpio@FF14b000 { 319 310 compatible = "abilis,tb10x-gpio"; ··· 324 313 interrupts = <27 2>; 325 314 reg = <0xFF14B000 0x1000>; 326 315 gpio-controller; 327 - #gpio-cells = <1>; 328 - gpio-base = <86>; 329 - gpio-pins = <&pctl_gpio_l>; 316 + #gpio-cells = <2>; 317 + abilis,ngpio = <4>; 318 + gpio-ranges = <&iomux 0 0 0>; 319 + gpio-ranges-group-names = "gpiol"; 330 320 }; 331 321 gpiom: gpio@FF14c000 { 332 322 compatible = "abilis,tb10x-gpio"; ··· 337 325 interrupts = <27 2>; 338 326 reg = <0xFF14C000 0x1000>; 339 327 gpio-controller; 340 - #gpio-cells = <1>; 341 - gpio-base = <90>; 342 - gpio-pins = <&pctl_gpio_m>; 328 + #gpio-cells = <2>; 329 + abilis,ngpio = <4>; 330 + gpio-ranges = <&iomux 0 0 0>; 331 + gpio-ranges-group-names = "gpiom"; 343 332 }; 344 333 gpion: gpio@FF14d000 { 345 334 compatible = "abilis,tb10x-gpio"; ··· 350 337 interrupts = <27 2>; 351 338 reg = <0xFF14D000 0x1000>; 352 339 gpio-controller; 353 - #gpio-cells = <1>; 354 - gpio-base = <94>; 355 - gpio-pins = <&pctl_gpio_n>; 340 + #gpio-cells = <2>; 341 + abilis,ngpio = <5>; 342 + gpio-ranges = <&iomux 0 0 0>; 343 + gpio-ranges-group-names = "gpion"; 356 344 }; 357 345 }; 358 346 };
+12 -12
arch/arc/boot/dts/abilis_tb101_dvk.dts
··· 64 64 compatible = "gpio-leds"; 65 65 power { 66 66 label = "Power"; 67 - gpios = <&gpioi 0>; 67 + gpios = <&gpioi 0 0>; 68 68 linux,default-trigger = "default-on"; 69 69 }; 70 70 heartbeat { 71 71 label = "Heartbeat"; 72 - gpios = <&gpioi 1>; 72 + gpios = <&gpioi 1 0>; 73 73 linux,default-trigger = "heartbeat"; 74 74 }; 75 75 led2 { 76 76 label = "LED2"; 77 - gpios = <&gpioi 2>; 77 + gpios = <&gpioi 2 0>; 78 78 default-state = "off"; 79 79 }; 80 80 led3 { 81 81 label = "LED3"; 82 - gpios = <&gpioi 3>; 82 + gpios = <&gpioi 3 0>; 83 83 default-state = "off"; 84 84 }; 85 85 led4 { 86 86 label = "LED4"; 87 - gpios = <&gpioi 4>; 87 + gpios = <&gpioi 4 0>; 88 88 default-state = "off"; 89 89 }; 90 90 led5 { 91 91 label = "LED5"; 92 - gpios = <&gpioi 5>; 92 + gpios = <&gpioi 5 0>; 93 93 default-state = "off"; 94 94 }; 95 95 led6 { 96 96 label = "LED6"; 97 - gpios = <&gpioi 6>; 97 + gpios = <&gpioi 6 0>; 98 98 default-state = "off"; 99 99 }; 100 100 led7 { 101 101 label = "LED7"; 102 - gpios = <&gpioi 7>; 102 + gpios = <&gpioi 7 0>; 103 103 default-state = "off"; 104 104 }; 105 105 led8 { 106 106 label = "LED8"; 107 - gpios = <&gpioi 8>; 107 + gpios = <&gpioi 8 0>; 108 108 default-state = "off"; 109 109 }; 110 110 led9 { 111 111 label = "LED9"; 112 - gpios = <&gpioi 9>; 112 + gpios = <&gpioi 9 0>; 113 113 default-state = "off"; 114 114 }; 115 115 led10 { 116 116 label = "LED10"; 117 - gpios = <&gpioi 10>; 117 + gpios = <&gpioi 10 0>; 118 118 default-state = "off"; 119 119 }; 120 120 led11 { 121 121 label = "LED11"; 122 - gpios = <&gpioi 11>; 122 + gpios = <&gpioi 11 0>; 123 123 default-state = "off"; 124 124 }; 125 125 };
+1 -2
arch/arc/boot/dts/abilis_tb10x.dtsi
··· 62 62 }; 63 63 64 64 iomux: iomux@FF10601c { 65 - #address-cells = <1>; 66 - #size-cells = <1>; 67 65 compatible = "abilis,tb10x-iomux"; 66 + #gpio-range-cells = <3>; 68 67 reg = <0xFF10601c 0x4>; 69 68 }; 70 69
+2
arch/arc/plat-tb10x/Kconfig
··· 20 20 bool "Abilis TB10x" 21 21 select COMMON_CLK 22 22 select PINCTRL 23 + select PINCTRL_TB10X 23 24 select PINMUX 24 25 select ARCH_REQUIRE_GPIOLIB 26 + select GPIO_TB10X 25 27 select TB10X_IRQC 26 28 help 27 29 Support for platforms based on the TB10x home media gateway SOC by