diff mbox series

[2/2] arm64: dts: allwinner: Transpeed 8K618-T: add WiFi nodes

Message ID 20240204093255.148972-3-andre.przywara@arm.com (mailing list archive)
State New, archived
Headers show
Series arm64: dts: allwinner: Add Transpeed WiFi nodes | expand

Commit Message

Andre Przywara Feb. 4, 2024, 9:32 a.m. UTC
In contrast to other devices using Allwinner SoCs, the Transpeed 8K618-T
TV box uses a mainline supported WiFi chip: it's a Broadcom 4335
compatible, packaged by a company called Murata.
It works nicely with the Linux driver, when providing the respective
firmware files.

Add the required DT nodes to let the kernel find the SDIO device.

Signed-off-by: Andre Przywara <andre.przywara@arm.com>
---
 .../sun50i-h618-transpeed-8k618-t.dts         | 23 +++++++++++++++++++
 1 file changed, 23 insertions(+)

Comments

Jernej Škrabec Feb. 5, 2024, 6:26 p.m. UTC | #1
Dne nedelja, 04. februar 2024 ob 10:32:55 CET je Andre Przywara napisal(a):
> In contrast to other devices using Allwinner SoCs, the Transpeed 8K618-T
> TV box uses a mainline supported WiFi chip: it's a Broadcom 4335
> compatible, packaged by a company called Murata.
> It works nicely with the Linux driver, when providing the respective
> firmware files.
> 
> Add the required DT nodes to let the kernel find the SDIO device.

Can you reword message in a way to omit Linux?

> 
> Signed-off-by: Andre Przywara <andre.przywara@arm.com>
> ---
>  .../sun50i-h618-transpeed-8k618-t.dts         | 23 +++++++++++++++++++
>  1 file changed, 23 insertions(+)
> 
> diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h618-transpeed-8k618-t.dts b/arch/arm64/boot/dts/allwinner/sun50i-h618-transpeed-8k618-t.dts
> index 8ea1fd41aeba..7ec4098e707b 100644
> --- a/arch/arm64/boot/dts/allwinner/sun50i-h618-transpeed-8k618-t.dts
> +++ b/arch/arm64/boot/dts/allwinner/sun50i-h618-transpeed-8k618-t.dts
> @@ -16,6 +16,7 @@ / {
>  
>  	aliases {
>  		serial0 = &uart0;
> +		ethernet1 = &sdio_wifi;
>  	};
>  
>  	chosen {
> @@ -39,6 +40,15 @@ reg_vcc3v3: vcc3v3 {
>  		regulator-max-microvolt = <3300000>;
>  		regulator-always-on;
>  	};
> +
> +	wifi_pwrseq: wifi_pwrseq {
> +		compatible = "mmc-pwrseq-simple";
> +		clocks = <&rtc CLK_OSC32K_FANOUT>;
> +		clock-names = "ext_clock";
> +		pinctrl-0 = <&x32clk_fanout_pin>;
> +		pinctrl-names = "default";
> +		reset-gpios = <&pio 6 18 GPIO_ACTIVE_LOW>; /* PG18 */
> +	};
>  };
>  
>  &ehci0 {
> @@ -60,6 +70,19 @@ &mmc0 {
>  	status = "okay";
>  };
>  
> +&mmc1 {
> +	vmmc-supply = <&reg_dldo1>;
> +	vqmmc-supply = <&reg_aldo1>;
> +	mmc-pwrseq = <&wifi_pwrseq>;
> +	bus-width = <4>;
> +	non-removable;
> +	status = "okay";
> +
> +	sdio_wifi: wifi@1 {
> +		reg = <1>;
> +	};

I don't think this node and alias are useful in any way. SDIO scan will find
device regardless and potential mac property set up by bootloader will be
ignored anyway.

Best regards,
Jernej

> +};
> +
>  &mmc2 {
>  	vmmc-supply = <&reg_dldo1>;
>  	vqmmc-supply = <&reg_aldo1>;
>
Chen-Yu Tsai Feb. 6, 2024, 1:03 a.m. UTC | #2
On Tue, Feb 6, 2024 at 2:26 AM Jernej Škrabec <jernej.skrabec@gmail.com> wrote:
>
> Dne nedelja, 04. februar 2024 ob 10:32:55 CET je Andre Przywara napisal(a):
> > In contrast to other devices using Allwinner SoCs, the Transpeed 8K618-T
> > TV box uses a mainline supported WiFi chip: it's a Broadcom 4335
> > compatible, packaged by a company called Murata.
> > It works nicely with the Linux driver, when providing the respective
> > firmware files.
> >
> > Add the required DT nodes to let the kernel find the SDIO device.
>
> Can you reword message in a way to omit Linux?

Probably reword it to say "add nodes so that custom MAC addresses can be
associated with it"?

> >
> > Signed-off-by: Andre Przywara <andre.przywara@arm.com>
> > ---
> >  .../sun50i-h618-transpeed-8k618-t.dts         | 23 +++++++++++++++++++
> >  1 file changed, 23 insertions(+)
> >
> > diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h618-transpeed-8k618-t.dts b/arch/arm64/boot/dts/allwinner/sun50i-h618-transpeed-8k618-t.dts
> > index 8ea1fd41aeba..7ec4098e707b 100644
> > --- a/arch/arm64/boot/dts/allwinner/sun50i-h618-transpeed-8k618-t.dts
> > +++ b/arch/arm64/boot/dts/allwinner/sun50i-h618-transpeed-8k618-t.dts
> > @@ -16,6 +16,7 @@ / {
> >
> >       aliases {
> >               serial0 = &uart0;
> > +             ethernet1 = &sdio_wifi;
> >       };
> >
> >       chosen {
> > @@ -39,6 +40,15 @@ reg_vcc3v3: vcc3v3 {
> >               regulator-max-microvolt = <3300000>;
> >               regulator-always-on;
> >       };
> > +
> > +     wifi_pwrseq: wifi_pwrseq {
> > +             compatible = "mmc-pwrseq-simple";
> > +             clocks = <&rtc CLK_OSC32K_FANOUT>;
> > +             clock-names = "ext_clock";
> > +             pinctrl-0 = <&x32clk_fanout_pin>;
> > +             pinctrl-names = "default";
> > +             reset-gpios = <&pio 6 18 GPIO_ACTIVE_LOW>; /* PG18 */
> > +     };
> >  };
> >
> >  &ehci0 {
> > @@ -60,6 +70,19 @@ &mmc0 {
> >       status = "okay";
> >  };
> >
> > +&mmc1 {
> > +     vmmc-supply = <&reg_dldo1>;
> > +     vqmmc-supply = <&reg_aldo1>;
> > +     mmc-pwrseq = <&wifi_pwrseq>;
> > +     bus-width = <4>;
> > +     non-removable;
> > +     status = "okay";
> > +
> > +     sdio_wifi: wifi@1 {
> > +             reg = <1>;
> > +     };
>
> I don't think this node and alias are useful in any way. SDIO scan will find
> device regardless and potential mac property set up by bootloader will be
> ignored anyway.

If a node with the matching function number is found, the MMC core will
associate the node with the SDIO function device before calling the probe
function. It has worked correctly for quite some time.

If the driver isn't taking the MAC address given in the DT, then that's
a driver issue.

ChenYu

> Best regards,
> Jernej
>
> > +};
> > +
> >  &mmc2 {
> >       vmmc-supply = <&reg_dldo1>;
> >       vqmmc-supply = <&reg_aldo1>;
> >
>
>
>
>
Jernej Škrabec Feb. 6, 2024, 5:20 p.m. UTC | #3
Dne torek, 06. februar 2024 ob 02:03:21 CET je Chen-Yu Tsai napisal(a):
> On Tue, Feb 6, 2024 at 2:26 AM Jernej Škrabec <jernej.skrabec@gmail.com> wrote:
> >
> > Dne nedelja, 04. februar 2024 ob 10:32:55 CET je Andre Przywara napisal(a):
> > > In contrast to other devices using Allwinner SoCs, the Transpeed 8K618-T
> > > TV box uses a mainline supported WiFi chip: it's a Broadcom 4335
> > > compatible, packaged by a company called Murata.
> > > It works nicely with the Linux driver, when providing the respective
> > > firmware files.
> > >
> > > Add the required DT nodes to let the kernel find the SDIO device.
> >
> > Can you reword message in a way to omit Linux?
> 
> Probably reword it to say "add nodes so that custom MAC addresses can be
> associated with it"?
> 
> > >
> > > Signed-off-by: Andre Przywara <andre.przywara@arm.com>
> > > ---
> > >  .../sun50i-h618-transpeed-8k618-t.dts         | 23 +++++++++++++++++++
> > >  1 file changed, 23 insertions(+)
> > >
> > > diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h618-transpeed-8k618-t.dts b/arch/arm64/boot/dts/allwinner/sun50i-h618-transpeed-8k618-t.dts
> > > index 8ea1fd41aeba..7ec4098e707b 100644
> > > --- a/arch/arm64/boot/dts/allwinner/sun50i-h618-transpeed-8k618-t.dts
> > > +++ b/arch/arm64/boot/dts/allwinner/sun50i-h618-transpeed-8k618-t.dts
> > > @@ -16,6 +16,7 @@ / {
> > >
> > >       aliases {
> > >               serial0 = &uart0;
> > > +             ethernet1 = &sdio_wifi;
> > >       };
> > >
> > >       chosen {
> > > @@ -39,6 +40,15 @@ reg_vcc3v3: vcc3v3 {
> > >               regulator-max-microvolt = <3300000>;
> > >               regulator-always-on;
> > >       };
> > > +
> > > +     wifi_pwrseq: wifi_pwrseq {
> > > +             compatible = "mmc-pwrseq-simple";
> > > +             clocks = <&rtc CLK_OSC32K_FANOUT>;
> > > +             clock-names = "ext_clock";
> > > +             pinctrl-0 = <&x32clk_fanout_pin>;
> > > +             pinctrl-names = "default";
> > > +             reset-gpios = <&pio 6 18 GPIO_ACTIVE_LOW>; /* PG18 */
> > > +     };
> > >  };
> > >
> > >  &ehci0 {
> > > @@ -60,6 +70,19 @@ &mmc0 {
> > >       status = "okay";
> > >  };
> > >
> > > +&mmc1 {
> > > +     vmmc-supply = <&reg_dldo1>;
> > > +     vqmmc-supply = <&reg_aldo1>;
> > > +     mmc-pwrseq = <&wifi_pwrseq>;
> > > +     bus-width = <4>;
> > > +     non-removable;
> > > +     status = "okay";
> > > +
> > > +     sdio_wifi: wifi@1 {
> > > +             reg = <1>;
> > > +     };
> >
> > I don't think this node and alias are useful in any way. SDIO scan will find
> > device regardless and potential mac property set up by bootloader will be
> > ignored anyway.
> 
> If a node with the matching function number is found, the MMC core will
> associate the node with the SDIO function device before calling the probe
> function. It has worked correctly for quite some time.

Ah, I didn't know. Ok then, Andre, just update commit message and it's good
to go.

Best regards,
Jernej

> 
> If the driver isn't taking the MAC address given in the DT, then that's
> a driver issue.
> 
> ChenYu
> 
> > Best regards,
> > Jernej
> >
> > > +};
> > > +
> > >  &mmc2 {
> > >       vmmc-supply = <&reg_dldo1>;
> > >       vqmmc-supply = <&reg_aldo1>;
> > >
> >
> >
> >
> >
>
diff mbox series

Patch

diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h618-transpeed-8k618-t.dts b/arch/arm64/boot/dts/allwinner/sun50i-h618-transpeed-8k618-t.dts
index 8ea1fd41aeba..7ec4098e707b 100644
--- a/arch/arm64/boot/dts/allwinner/sun50i-h618-transpeed-8k618-t.dts
+++ b/arch/arm64/boot/dts/allwinner/sun50i-h618-transpeed-8k618-t.dts
@@ -16,6 +16,7 @@  / {
 
 	aliases {
 		serial0 = &uart0;
+		ethernet1 = &sdio_wifi;
 	};
 
 	chosen {
@@ -39,6 +40,15 @@  reg_vcc3v3: vcc3v3 {
 		regulator-max-microvolt = <3300000>;
 		regulator-always-on;
 	};
+
+	wifi_pwrseq: wifi_pwrseq {
+		compatible = "mmc-pwrseq-simple";
+		clocks = <&rtc CLK_OSC32K_FANOUT>;
+		clock-names = "ext_clock";
+		pinctrl-0 = <&x32clk_fanout_pin>;
+		pinctrl-names = "default";
+		reset-gpios = <&pio 6 18 GPIO_ACTIVE_LOW>; /* PG18 */
+	};
 };
 
 &ehci0 {
@@ -60,6 +70,19 @@  &mmc0 {
 	status = "okay";
 };
 
+&mmc1 {
+	vmmc-supply = <&reg_dldo1>;
+	vqmmc-supply = <&reg_aldo1>;
+	mmc-pwrseq = <&wifi_pwrseq>;
+	bus-width = <4>;
+	non-removable;
+	status = "okay";
+
+	sdio_wifi: wifi@1 {
+		reg = <1>;
+	};
+};
+
 &mmc2 {
 	vmmc-supply = <&reg_dldo1>;
 	vqmmc-supply = <&reg_aldo1>;