]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
ARM: dts: bcm2166x: Add bcm2166x-pinctrl DTSI
authorArtur Weber <aweber.kernel@gmail.com>
Mon, 3 Mar 2025 20:54:51 +0000 (21:54 +0100)
committerFlorian Fainelli <florian.fainelli@broadcom.com>
Mon, 7 Apr 2025 17:35:35 +0000 (10:35 -0700)
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>
arch/arm/boot/dts/broadcom/bcm2166x-common.dtsi
arch/arm/boot/dts/broadcom/bcm2166x-pinctrl.dtsi [new file with mode: 0644]

index d4b412ac8b0343bd3773f50c59a20fa00a3923f8..f535212cb52fec0668abfc06e7268bead70d958a 100644 (file)
                };
        };
 };
+
+#include "bcm2166x-pinctrl.dtsi"
diff --git a/arch/arm/boot/dts/broadcom/bcm2166x-pinctrl.dtsi b/arch/arm/boot/dts/broadcom/bcm2166x-pinctrl.dtsi
new file mode 100644 (file)
index 0000000..51b8730
--- /dev/null
@@ -0,0 +1,297 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Common pinmux configrations for BCM2166x (BCM21664/BCM23550).
+ *
+ * Copyright (C) 2025 Artur Weber <aweber.kernel@gmail.com>
+ */
+
+&pinctrl {
+       /* BSC1 */
+       bsc1_pins: bsc1-pins {
+               bsc1clk-grp0 {
+                       pins = "bsc1clk";
+                       function = "alt1"; /* BSC1CLK */
+               };
+
+               bsc1dat-grp0 {
+                       pins = "bsc1dat";
+                       function = "alt1"; /* BSC1DAT */
+               };
+       };
+
+       /* BSC2 */
+       bsc2_pins: bsc2-pins {
+               bsc2clk-grp0 {
+                       pins = "gpio16";
+                       function = "alt2"; /* BSC2CLK */
+               };
+
+               bsc2dat-grp0 {
+                       pins = "gpio17";
+                       function = "alt2"; /* BSC2DAT */
+               };
+       };
+
+       /* BSC3 */
+       bsc3_pins: bsc3-pins {
+               bsc3clk-grp0 {
+                       pins = "lcdscl";
+                       function = "alt1"; /* BSC3_CLK */
+               };
+
+               bsc3dat-grp0 {
+                       pins = "lcdsda";
+                       function = "alt1"; /* BSC3_SDA */
+               };
+       };
+
+       /* BSC4 */
+       bsc4_pins: bsc4-pins {
+               bsc4clk-grp0 {
+                       pins = "lcdres";
+                       function = "alt1"; /* BSC4_CLK */
+               };
+
+               bsc4dat-grp0 {
+                       pins = "lcdte";
+                       function = "alt1"; /* BSC4_SDA */
+               };
+       };
+
+       /* PMBSC */
+       pmbsc_pins: pmbsc-pins {
+               pmbscclk-grp0 {
+                       pins = "pmbscclk";
+                       function = "alt1"; /* PMBSCCLK */
+               };
+
+               pmbscdat-grp0 {
+                       pins = "pmbscdat";
+                       function = "alt1"; /* PMBSCDAT */
+               };
+       };
+
+       /* SD */
+       sd_width1_pins: sd-width1-pins {
+               sdck-grp0 {
+                       pins = "sdck";
+                       function = "alt1"; /* SDCK */
+                       bias-disable;
+               };
+
+               sdcmd-grp0 {
+                       pins = "sdcmd";
+                       function = "alt1"; /* SDCMD */
+                       bias-pull-up;
+               };
+
+               sddat-grp0 {
+                       pins = "sddat0";
+                       function = "alt1"; /* SDDATx */
+                       bias-pull-up;
+               };
+       };
+
+       sd_width4_pins: sd-width4-pins {
+               sdck-grp0 {
+                       pins = "sdck";
+                       function = "alt1"; /* SDCK */
+                       bias-disable;
+               };
+
+               sdcmd-grp0 {
+                       pins = "sdcmd";
+                       function = "alt1"; /* SDCMD */
+                       bias-pull-up;
+               };
+
+               sddat-grp0 {
+                       pins = "sddat0", "sddat1", "sddat2", "sddat3";
+                       function = "alt1"; /* SDDATx */
+                       bias-pull-up;
+               };
+       };
+
+       /* SD1 */
+       sd1_width1_pins: sd1-width1-pins {
+               sd1ck-grp0 {
+                       pins = "mmc1dat7";
+                       function = "alt6"; /* SD1CK */
+                       bias-disable;
+               };
+
+               sd1cmd-grp0 {
+                       pins = "spi0txd";
+                       function = "alt2"; /* SD1CMD */
+                       bias-pull-up;
+               };
+
+               sd1dat0-grp0 {
+                       pins = "mmc1dat5";
+                       function = "alt6"; /* SD1DAT0 */
+                       bias-pull-up;
+               };
+       };
+
+       sd1_width4_pins: sd1-width4-pins {
+               sd1ck-grp0 {
+                       pins = "mmc1dat7";
+                       function = "alt6"; /* SD1CK */
+                       bias-disable;
+               };
+
+               sd1cmd-grp0 {
+                       pins = "spi0txd";
+                       function = "alt2"; /* SD1CMD */
+                       bias-pull-up;
+               };
+
+               sd1dat0-grp0 {
+                       pins = "mmc1dat5";
+                       function = "alt6"; /* SD1DAT0 */
+                       bias-pull-up;
+               };
+
+               sd1dat1-grp0 {
+                       pins = "gpio93";
+                       function = "alt1"; /* SD1DAT1 */
+                       bias-pull-up;
+               };
+
+               sd1dat2-grp0 {
+                       pins = "gpio94";
+                       function = "alt1"; /* SD1DAT2 */
+                       bias-pull-up;
+               };
+
+               sd1dat3-grp0 {
+                       pins = "mmc1dat3";
+                       function = "alt6"; /* SD1DAT3 */
+                       bias-pull-up;
+               };
+       };
+
+       /* MMC0 */
+       mmc0_width1_pins: mmc0-width1-pins {
+               mmc0ck-grp0 {
+                       pins = "mmc0ck";
+                       function = "alt1"; /* MMC0CK */
+                       bias-disable;
+               };
+
+               mmc0cmd-grp0 {
+                       pins = "mmc0cmd";
+                       function = "alt1"; /* MMC0CMD */
+                       bias-pull-up;
+               };
+
+               mmc0dat-grp0 {
+                       pins = "mmc0dat0";
+                       function = "alt1"; /* MMC0DATx */
+                       bias-pull-up;
+               };
+       };
+
+       mmc0_width4_pins: mmc0-width4-pins {
+               mmc0ck-grp0 {
+                       pins = "mmc0ck";
+                       function = "alt1"; /* MMC0CK */
+                       bias-disable;
+               };
+
+               mmc0cmd-grp0 {
+                       pins = "mmc0cmd";
+                       function = "alt1"; /* MMC0CMD */
+                       bias-pull-up;
+               };
+
+               mmc0dat-grp0 {
+                       pins = "mmc0dat0", "mmc0dat1", "mmc0dat2", "mmc0dat3";
+                       function = "alt1"; /* MMC0DATx */
+                       bias-pull-up;
+               };
+       };
+
+       mmc0_width8_pins: mmc0-width8-pins {
+               mmc0ck-grp0 {
+                       pins = "mmc0ck";
+                       function = "alt1"; /* MMC0CK */
+                       bias-disable;
+               };
+
+               mmc0cmd-grp0 {
+                       pins = "mmc0cmd";
+                       function = "alt1"; /* MMC0CMD */
+                       bias-pull-up;
+               };
+
+               mmc0dat-grp0 {
+                       pins = "mmc0dat0", "mmc0dat1", "mmc0dat2", "mmc0dat3",
+                              "mmc0dat4", "mmc0dat5", "mmc0dat6", "mmc0dat7";
+                       function = "alt1"; /* MMC0DATx */
+                       bias-pull-up;
+               };
+       };
+
+       /* MMC1 */
+       mmc1_width1_pins: mmc1-width1-pins {
+               mmc1ck-grp0 {
+                       pins = "mmc1ck";
+                       function = "alt1"; /* MMC1CK */
+                       bias-disable;
+               };
+
+               mmc1cmd-grp0 {
+                       pins = "mmc1cmd";
+                       function = "alt1"; /* MMC1CMD */
+                       bias-pull-up;
+               };
+
+               mmc1dat-grp0 {
+                       pins = "mmc1dat0";
+                       function = "alt1"; /* MMC1DATx */
+                       bias-pull-up;
+               };
+       };
+
+       mmc1_width4_pins: mmc1-width4-pins {
+               mmc1ck-grp0 {
+                       pins = "mmc1ck";
+                       function = "alt1"; /* MMC1CK */
+                       bias-disable;
+               };
+
+               mmc1cmd-grp0 {
+                       pins = "mmc1cmd";
+                       function = "alt1"; /* MMC1CMD */
+                       bias-pull-up;
+               };
+
+               mmc1dat-grp0 {
+                       pins = "mmc1dat0", "mmc1dat1", "mmc1dat2", "mmc1dat3";
+                       function = "alt1"; /* MMC1DATx */
+                       bias-pull-up;
+               };
+       };
+
+       mmc1_width8_pins: mmc1-width8-pins {
+               mmc1ck-grp0 {
+                       pins = "mmc1ck";
+                       function = "alt1"; /* MMC1CK */
+                       bias-disable;
+               };
+
+               mmc1cmd-grp0 {
+                       pins = "mmc1cmd";
+                       function = "alt1"; /* MMC1CMD */
+                       bias-pull-up;
+               };
+
+               mmc1dat-grp0 {
+                       pins = "mmc1dat0", "mmc1dat1", "mmc1dat2", "mmc1dat3",
+                              "mmc1dat4", "mmc1dat5", "mmc1dat6", "mmc1dat7";
+                       function = "alt1"; /* MMC1DATx */
+                       bias-pull-up;
+               };
+       };
+};