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

ARM: dts: bcm2166x: Add bcm2166x-pinctrl DTSI

Add common DTSI with common pin control configs for BCM21664/BCM23550
and include it in bcm2166x-common.dtsi. The configs are kept in a
separate DTSI to keep things cleaner (pin config definitions take up
quite a lot of space).

Currently contains pins for BSC buses and SD/MMC; more pins can be
added in the future.

Signed-off-by: Artur Weber <aweber.kernel@gmail.com>
Link: https://lore.kernel.org/r/20250303-bcm21664-pinctrl-v3-6-5f8b80e4ab51@gmail.com
Signed-off-by: Florian Fainelli <florian.fainelli@broadcom.com>

authored by

Artur Weber and committed by
Florian Fainelli
9cd4b79e d091c6b0

+299
+2
arch/arm/boot/dts/broadcom/bcm2166x-common.dtsi
··· 337 337 }; 338 338 }; 339 339 }; 340 + 341 + #include "bcm2166x-pinctrl.dtsi"
+297
arch/arm/boot/dts/broadcom/bcm2166x-pinctrl.dtsi
··· 1 + // SPDX-License-Identifier: BSD-3-Clause 2 + /* 3 + * Common pinmux configrations for BCM2166x (BCM21664/BCM23550). 4 + * 5 + * Copyright (C) 2025 Artur Weber <aweber.kernel@gmail.com> 6 + */ 7 + 8 + &pinctrl { 9 + /* BSC1 */ 10 + bsc1_pins: bsc1-pins { 11 + bsc1clk-grp0 { 12 + pins = "bsc1clk"; 13 + function = "alt1"; /* BSC1CLK */ 14 + }; 15 + 16 + bsc1dat-grp0 { 17 + pins = "bsc1dat"; 18 + function = "alt1"; /* BSC1DAT */ 19 + }; 20 + }; 21 + 22 + /* BSC2 */ 23 + bsc2_pins: bsc2-pins { 24 + bsc2clk-grp0 { 25 + pins = "gpio16"; 26 + function = "alt2"; /* BSC2CLK */ 27 + }; 28 + 29 + bsc2dat-grp0 { 30 + pins = "gpio17"; 31 + function = "alt2"; /* BSC2DAT */ 32 + }; 33 + }; 34 + 35 + /* BSC3 */ 36 + bsc3_pins: bsc3-pins { 37 + bsc3clk-grp0 { 38 + pins = "lcdscl"; 39 + function = "alt1"; /* BSC3_CLK */ 40 + }; 41 + 42 + bsc3dat-grp0 { 43 + pins = "lcdsda"; 44 + function = "alt1"; /* BSC3_SDA */ 45 + }; 46 + }; 47 + 48 + /* BSC4 */ 49 + bsc4_pins: bsc4-pins { 50 + bsc4clk-grp0 { 51 + pins = "lcdres"; 52 + function = "alt1"; /* BSC4_CLK */ 53 + }; 54 + 55 + bsc4dat-grp0 { 56 + pins = "lcdte"; 57 + function = "alt1"; /* BSC4_SDA */ 58 + }; 59 + }; 60 + 61 + /* PMBSC */ 62 + pmbsc_pins: pmbsc-pins { 63 + pmbscclk-grp0 { 64 + pins = "pmbscclk"; 65 + function = "alt1"; /* PMBSCCLK */ 66 + }; 67 + 68 + pmbscdat-grp0 { 69 + pins = "pmbscdat"; 70 + function = "alt1"; /* PMBSCDAT */ 71 + }; 72 + }; 73 + 74 + /* SD */ 75 + sd_width1_pins: sd-width1-pins { 76 + sdck-grp0 { 77 + pins = "sdck"; 78 + function = "alt1"; /* SDCK */ 79 + bias-disable; 80 + }; 81 + 82 + sdcmd-grp0 { 83 + pins = "sdcmd"; 84 + function = "alt1"; /* SDCMD */ 85 + bias-pull-up; 86 + }; 87 + 88 + sddat-grp0 { 89 + pins = "sddat0"; 90 + function = "alt1"; /* SDDATx */ 91 + bias-pull-up; 92 + }; 93 + }; 94 + 95 + sd_width4_pins: sd-width4-pins { 96 + sdck-grp0 { 97 + pins = "sdck"; 98 + function = "alt1"; /* SDCK */ 99 + bias-disable; 100 + }; 101 + 102 + sdcmd-grp0 { 103 + pins = "sdcmd"; 104 + function = "alt1"; /* SDCMD */ 105 + bias-pull-up; 106 + }; 107 + 108 + sddat-grp0 { 109 + pins = "sddat0", "sddat1", "sddat2", "sddat3"; 110 + function = "alt1"; /* SDDATx */ 111 + bias-pull-up; 112 + }; 113 + }; 114 + 115 + /* SD1 */ 116 + sd1_width1_pins: sd1-width1-pins { 117 + sd1ck-grp0 { 118 + pins = "mmc1dat7"; 119 + function = "alt6"; /* SD1CK */ 120 + bias-disable; 121 + }; 122 + 123 + sd1cmd-grp0 { 124 + pins = "spi0txd"; 125 + function = "alt2"; /* SD1CMD */ 126 + bias-pull-up; 127 + }; 128 + 129 + sd1dat0-grp0 { 130 + pins = "mmc1dat5"; 131 + function = "alt6"; /* SD1DAT0 */ 132 + bias-pull-up; 133 + }; 134 + }; 135 + 136 + sd1_width4_pins: sd1-width4-pins { 137 + sd1ck-grp0 { 138 + pins = "mmc1dat7"; 139 + function = "alt6"; /* SD1CK */ 140 + bias-disable; 141 + }; 142 + 143 + sd1cmd-grp0 { 144 + pins = "spi0txd"; 145 + function = "alt2"; /* SD1CMD */ 146 + bias-pull-up; 147 + }; 148 + 149 + sd1dat0-grp0 { 150 + pins = "mmc1dat5"; 151 + function = "alt6"; /* SD1DAT0 */ 152 + bias-pull-up; 153 + }; 154 + 155 + sd1dat1-grp0 { 156 + pins = "gpio93"; 157 + function = "alt1"; /* SD1DAT1 */ 158 + bias-pull-up; 159 + }; 160 + 161 + sd1dat2-grp0 { 162 + pins = "gpio94"; 163 + function = "alt1"; /* SD1DAT2 */ 164 + bias-pull-up; 165 + }; 166 + 167 + sd1dat3-grp0 { 168 + pins = "mmc1dat3"; 169 + function = "alt6"; /* SD1DAT3 */ 170 + bias-pull-up; 171 + }; 172 + }; 173 + 174 + /* MMC0 */ 175 + mmc0_width1_pins: mmc0-width1-pins { 176 + mmc0ck-grp0 { 177 + pins = "mmc0ck"; 178 + function = "alt1"; /* MMC0CK */ 179 + bias-disable; 180 + }; 181 + 182 + mmc0cmd-grp0 { 183 + pins = "mmc0cmd"; 184 + function = "alt1"; /* MMC0CMD */ 185 + bias-pull-up; 186 + }; 187 + 188 + mmc0dat-grp0 { 189 + pins = "mmc0dat0"; 190 + function = "alt1"; /* MMC0DATx */ 191 + bias-pull-up; 192 + }; 193 + }; 194 + 195 + mmc0_width4_pins: mmc0-width4-pins { 196 + mmc0ck-grp0 { 197 + pins = "mmc0ck"; 198 + function = "alt1"; /* MMC0CK */ 199 + bias-disable; 200 + }; 201 + 202 + mmc0cmd-grp0 { 203 + pins = "mmc0cmd"; 204 + function = "alt1"; /* MMC0CMD */ 205 + bias-pull-up; 206 + }; 207 + 208 + mmc0dat-grp0 { 209 + pins = "mmc0dat0", "mmc0dat1", "mmc0dat2", "mmc0dat3"; 210 + function = "alt1"; /* MMC0DATx */ 211 + bias-pull-up; 212 + }; 213 + }; 214 + 215 + mmc0_width8_pins: mmc0-width8-pins { 216 + mmc0ck-grp0 { 217 + pins = "mmc0ck"; 218 + function = "alt1"; /* MMC0CK */ 219 + bias-disable; 220 + }; 221 + 222 + mmc0cmd-grp0 { 223 + pins = "mmc0cmd"; 224 + function = "alt1"; /* MMC0CMD */ 225 + bias-pull-up; 226 + }; 227 + 228 + mmc0dat-grp0 { 229 + pins = "mmc0dat0", "mmc0dat1", "mmc0dat2", "mmc0dat3", 230 + "mmc0dat4", "mmc0dat5", "mmc0dat6", "mmc0dat7"; 231 + function = "alt1"; /* MMC0DATx */ 232 + bias-pull-up; 233 + }; 234 + }; 235 + 236 + /* MMC1 */ 237 + mmc1_width1_pins: mmc1-width1-pins { 238 + mmc1ck-grp0 { 239 + pins = "mmc1ck"; 240 + function = "alt1"; /* MMC1CK */ 241 + bias-disable; 242 + }; 243 + 244 + mmc1cmd-grp0 { 245 + pins = "mmc1cmd"; 246 + function = "alt1"; /* MMC1CMD */ 247 + bias-pull-up; 248 + }; 249 + 250 + mmc1dat-grp0 { 251 + pins = "mmc1dat0"; 252 + function = "alt1"; /* MMC1DATx */ 253 + bias-pull-up; 254 + }; 255 + }; 256 + 257 + mmc1_width4_pins: mmc1-width4-pins { 258 + mmc1ck-grp0 { 259 + pins = "mmc1ck"; 260 + function = "alt1"; /* MMC1CK */ 261 + bias-disable; 262 + }; 263 + 264 + mmc1cmd-grp0 { 265 + pins = "mmc1cmd"; 266 + function = "alt1"; /* MMC1CMD */ 267 + bias-pull-up; 268 + }; 269 + 270 + mmc1dat-grp0 { 271 + pins = "mmc1dat0", "mmc1dat1", "mmc1dat2", "mmc1dat3"; 272 + function = "alt1"; /* MMC1DATx */ 273 + bias-pull-up; 274 + }; 275 + }; 276 + 277 + mmc1_width8_pins: mmc1-width8-pins { 278 + mmc1ck-grp0 { 279 + pins = "mmc1ck"; 280 + function = "alt1"; /* MMC1CK */ 281 + bias-disable; 282 + }; 283 + 284 + mmc1cmd-grp0 { 285 + pins = "mmc1cmd"; 286 + function = "alt1"; /* MMC1CMD */ 287 + bias-pull-up; 288 + }; 289 + 290 + mmc1dat-grp0 { 291 + pins = "mmc1dat0", "mmc1dat1", "mmc1dat2", "mmc1dat3", 292 + "mmc1dat4", "mmc1dat5", "mmc1dat6", "mmc1dat7"; 293 + function = "alt1"; /* MMC1DATx */ 294 + bias-pull-up; 295 + }; 296 + }; 297 + };