riscv: dts: starfive: Enable SDIO wifi on JH7100 boards
authorEmil Renner Berthing <emil.renner.berthing@canonical.com>
Thu, 30 Nov 2023 15:19:32 +0000 (16:19 +0100)
committerConor Dooley <conor.dooley@microchip.com>
Wed, 13 Dec 2023 15:50:23 +0000 (15:50 +0000)
Add pinctrl and MMC controller nodes for the Broadcom wifi controller
on the BeagleV Starlight and StarFive VisionFive V1 boards.

Signed-off-by: Emil Renner Berthing <emil.renner.berthing@canonical.com>
Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
arch/riscv/boot/dts/starfive/jh7100-common.dtsi

index adcdbbc4f57ffec5805227b077757eeef99a1a08..42fb61c36068cd7e42dada8025b3d15b9ca2b0fc 100644 (file)
@@ -13,6 +13,7 @@
 / {
        aliases {
                mmc0 = &sdio0;
+               mmc1 = &sdio1;
                serial0 = &uart3;
        };
 
                             <0x00 0xfa000000 0x10 0x7a000000 0x00 0x01000000>,
                             <0x00 0xfb000000 0x00 0xfb000000 0x07 0x85000000>;
        };
+
+       wifi_pwrseq: wifi-pwrseq {
+               compatible = "mmc-pwrseq-simple";
+               reset-gpios = <&gpio 37 GPIO_ACTIVE_LOW>;
+       };
 };
 
 &gpio {
                };
        };
 
+       sdio1_pins: sdio1-0 {
+               clk-pins {
+                       pinmux = <GPIOMUX(33, GPO_SDIO1_PAD_CCLK_OUT,
+                                 GPO_ENABLE, GPI_NONE)>;
+                       bias-disable;
+                       input-disable;
+                       input-schmitt-disable;
+               };
+               sdio-pins {
+                       pinmux = <GPIOMUX(29,
+                                 GPO_SDIO1_PAD_CCMD_OUT,
+                                 GPO_SDIO1_PAD_CCMD_OEN,
+                                 GPI_SDIO1_PAD_CCMD_IN)>,
+                                <GPIOMUX(36,
+                                 GPO_SDIO1_PAD_CDATA_OUT_BIT0,
+                                 GPO_SDIO1_PAD_CDATA_OEN_BIT0,
+                                 GPI_SDIO1_PAD_CDATA_IN_BIT0)>,
+                                <GPIOMUX(30,
+                                 GPO_SDIO1_PAD_CDATA_OUT_BIT1,
+                                 GPO_SDIO1_PAD_CDATA_OEN_BIT1,
+                                 GPI_SDIO1_PAD_CDATA_IN_BIT1)>,
+                                <GPIOMUX(34,
+                                 GPO_SDIO1_PAD_CDATA_OUT_BIT2,
+                                 GPO_SDIO1_PAD_CDATA_OEN_BIT2,
+                                 GPI_SDIO1_PAD_CDATA_IN_BIT2)>,
+                                <GPIOMUX(31,
+                                 GPO_SDIO1_PAD_CDATA_OUT_BIT3,
+                                 GPO_SDIO1_PAD_CDATA_OEN_BIT3,
+                                 GPI_SDIO1_PAD_CDATA_IN_BIT3)>;
+                       bias-pull-up;
+                       input-enable;
+                       input-schmitt-enable;
+               };
+       };
+
        uart3_pins: uart3-0 {
                rx-pins {
                        pinmux = <GPIOMUX(13, GPO_LOW, GPO_DISABLE,
        status = "okay";
 };
 
+&sdio1 {
+       #address-cells = <1>;
+       #size-cells = <0>;
+       bus-width = <4>;
+       cap-sd-highspeed;
+       cap-sdio-irq;
+       cap-power-off-card;
+       mmc-pwrseq = <&wifi_pwrseq>;
+       non-removable;
+       pinctrl-names = "default";
+       pinctrl-0 = <&sdio1_pins>;
+       status = "okay";
+
+       wifi@1 {
+               compatible = "brcm,bcm4329-fmac";
+               reg = <1>;
+       };
+};
+
 &uart3 {
        pinctrl-names = "default";
        pinctrl-0 = <&uart3_pins>;