On 1/27/22 02:00, Peter Geis wrote: > The sdmmc1 node on Quartz64-A supports the optional wifi module from > Pine64. > Add the sdmmc1 node and requisite sdio_pwrseq to enable wifi support on > the Quartz64-A. > > Signed-off-by: Peter Geis <pgwipeout@xxxxxxxxx> > --- > .../boot/dts/rockchip/rk3566-quartz64-a.dts | 45 +++++++++++++++++++ > 1 file changed, 45 insertions(+) > > diff --git a/arch/arm64/boot/dts/rockchip/rk3566-quartz64-a.dts b/arch/arm64/boot/dts/rockchip/rk3566-quartz64-a.dts > index 33c2c18caaa9..1d73ac6557c5 100644 > --- a/arch/arm64/boot/dts/rockchip/rk3566-quartz64-a.dts > +++ b/arch/arm64/boot/dts/rockchip/rk3566-quartz64-a.dts > @@ -91,6 +91,18 @@ simple-audio-card,codec { > }; > }; > > + sdio_pwrseq: sdio-pwrseq { > + status = "okay"; When a node is not previously disabled, then there's no need for "okay". > + compatible = "mmc-pwrseq-simple"; > + clocks = <&rk817 1>; > + clock-names = "ext_clock"; > + pinctrl-names = "default"; > + pinctrl-0 = <&wifi_enable_h>; > + reset-gpios = <&gpio2 RK_PC2 GPIO_ACTIVE_LOW>; > + post-power-on-delay-ms = <100>; > + power-off-delay-us = <5000000>; > + }; > + > vcc12v_dcin: vcc12v_dcin { > compatible = "regulator-fixed"; > regulator-name = "vcc12v_dcin"; > @@ -147,6 +159,17 @@ vcc_sys: vcc_sys { > regulator-max-microvolt = <4400000>; > vin-supply = <&vbus>; > }; > + > + /* sourced from vcc_sys, sdio module operates internally at 3.3v */ > + vcc_wl: vcc_wl { > + compatible = "regulator-fixed"; > + regulator-name = "vcc_wl"; > + regulator-always-on; > + regulator-boot-on; > + regulator-min-microvolt = <3300000>; > + regulator-max-microvolt = <3300000>; > + vin-supply = <&vcc_sys>; > + }; > }; > > &cpu0 { > @@ -475,6 +498,12 @@ pmic_int_l: pmic-int-l { > }; > }; > > + sdio-pwrseq { > + wifi_enable_h: wifi-enable-h { > + rockchip,pins = <2 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>; > + }; > + }; > + > vcc_sd { > vcc_sd_h: vcc-sd-h { > rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>; > @@ -516,6 +545,22 @@ &sdmmc0 { > status = "okay"; > }; > > +&sdmmc1 { > + bus-width = <4>; > + cap-sd-highspeed; > + cap-sdio-irq; > + disable-wp; >From mmc-controller.yaml: disable-wp: $ref: /schemas/types.yaml#/definitions/flag description: When set, no physical write-protect line is present. This property should only be specified when the controller has a dedicated write-protect detection logic. If a GPIO is always used for the write-protect detection logic, it is sufficient to not specify the wp-gpios property in the absence of a write-protect line. Not used in combination with eMMC or SDIO. > + keep-power-in-suspend; > + mmc-pwrseq = <&sdio_pwrseq>; > + non-removable; > + pinctrl-names = "default"; > + pinctrl-0 = <&sdmmc1_bus4 &sdmmc1_cmd &sdmmc1_clk>; > + sd-uhs-sdr104; > + vmmc-supply = <&vcc_wl>; > + vqmmc-supply = <&vcc_1v8>; > + status = "okay"; > +}; > + > &spdif { > status = "okay"; > };