diff mbox series

[v2,17/18] arm64: dts: allwinner: a64: NanoPi-A64: Add Wifi/Bluetooth chip

Message ID 20180726003532.18751-18-andre.przywara@arm.com (mailing list archive)
State New, archived
Headers show
Series arm64: dts: allwinner: A64 boards DT updates | expand

Commit Message

Andre Przywara July 26, 2018, 12:35 a.m. UTC
The NanoPi-A64 has an on-board WiFi/Bluetooth combo chip, connected
to the usual MMC1 and UART1. The AXP power line is the always-on
VDD_SYS_3.3V, but it uses pin L2 to enable the regulator.
As the actual WiFi driver is not in mainline Linux, it doesn't have a
compatible string, so we omit this from the node.

Add the respective nodes to the DT to make it usable.

Signed-off-by: Andre Przywara <andre.przywara@arm.com>
---
 .../boot/dts/allwinner/sun50i-a64-nanopi-a64.dts   | 31 ++++++++++++++++++++++
 1 file changed, 31 insertions(+)

Comments

Maxime Ripard July 26, 2018, 7:44 a.m. UTC | #1
On Thu, Jul 26, 2018 at 01:35:31AM +0100, Andre Przywara wrote:
> The NanoPi-A64 has an on-board WiFi/Bluetooth combo chip, connected
> to the usual MMC1 and UART1. The AXP power line is the always-on
> VDD_SYS_3.3V, but it uses pin L2 to enable the regulator.
> As the actual WiFi driver is not in mainline Linux, it doesn't have a
> compatible string, so we omit this from the node.
> 
> Add the respective nodes to the DT to make it usable.
> 
> Signed-off-by: Andre Przywara <andre.przywara@arm.com>
> ---
>  .../boot/dts/allwinner/sun50i-a64-nanopi-a64.dts   | 31 ++++++++++++++++++++++
>  1 file changed, 31 insertions(+)
> 
> diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-nanopi-a64.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-nanopi-a64.dts
> index bd35a093e6cd..705e0b23589e 100644
> --- a/arch/arm64/boot/dts/allwinner/sun50i-a64-nanopi-a64.dts
> +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-nanopi-a64.dts
> @@ -53,11 +53,17 @@
>  	aliases {
>  		ethernet0 = &emac;
>  		serial0 = &uart0;
> +		serial1 = &uart1;
>  	};
>  
>  	chosen {
>  		stdout-path = "serial0:115200n8";
>  	};
> +
> +	wifi_pwrseq: wifi_pwrseq {
> +		compatible = "mmc-pwrseq-simple";
> +		reset-gpios = <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* PL2 */
> +	};
>  };
>  
>  &ehci0 {
> @@ -105,6 +111,24 @@
>  	status = "okay";
>  };
>  
> +&mmc1 {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&mmc1_pins>;
> +	vmmc-supply = <&reg_dcdc1>;
> +	vqmmc-supply = <&reg_dldo4>;
> +	mmc-pwrseq = <&wifi_pwrseq>;
> +	bus-width = <4>;
> +	non-removable;
> +	status = "okay";
> +
> +	rtl8189etv: wifi@1 {
> +		reg = <1>;
> +		interrupt-parent = <&r_pio>;
> +		interrupts = <0 3 IRQ_TYPE_LEVEL_LOW>; /* PL3 */
> +		interrupt-names = "host-wake";
> +	};
> +};
> +
>  &ohci0 {
>  	status = "okay";
>  };
> @@ -222,6 +246,13 @@
>  	status = "okay";
>  };
>  
> +/* Connected to the Bluetooth UART, with hardware handshake pins */
> +&uart1 {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&uart1_pins>, <&uart1_rts_cts_pins>;
> +	status = "okay";
> +};

Same thing here, if it has serdev support, then it should have a real
node here.

Maxime
Chen-Yu Tsai July 26, 2018, 7:48 a.m. UTC | #2
On Thu, Jul 26, 2018 at 8:35 AM, Andre Przywara <andre.przywara@arm.com> wrote:
> The NanoPi-A64 has an on-board WiFi/Bluetooth combo chip, connected

The NanoPi A64 uses the RTL8189, which does _not_ have Bluetooth.
Something is seriously wrong here.

> to the usual MMC1 and UART1. The AXP power line is the always-on
> VDD_SYS_3.3V, but it uses pin L2 to enable the regulator.
> As the actual WiFi driver is not in mainline Linux, it doesn't have a
> compatible string, so we omit this from the node.
>
> Add the respective nodes to the DT to make it usable.
>
> Signed-off-by: Andre Przywara <andre.przywara@arm.com>
> ---
>  .../boot/dts/allwinner/sun50i-a64-nanopi-a64.dts   | 31 ++++++++++++++++++++++
>  1 file changed, 31 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-nanopi-a64.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-nanopi-a64.dts
> index bd35a093e6cd..705e0b23589e 100644
> --- a/arch/arm64/boot/dts/allwinner/sun50i-a64-nanopi-a64.dts
> +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-nanopi-a64.dts
> @@ -53,11 +53,17 @@
>         aliases {
>                 ethernet0 = &emac;
>                 serial0 = &uart0;
> +               serial1 = &uart1;
>         };
>
>         chosen {
>                 stdout-path = "serial0:115200n8";
>         };
> +
> +       wifi_pwrseq: wifi_pwrseq {
> +               compatible = "mmc-pwrseq-simple";
> +               reset-gpios = <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* PL2 */
> +       };
>  };
>
>  &ehci0 {
> @@ -105,6 +111,24 @@
>         status = "okay";
>  };
>
> +&mmc1 {
> +       pinctrl-names = "default";
> +       pinctrl-0 = <&mmc1_pins>;
> +       vmmc-supply = <&reg_dcdc1>;
> +       vqmmc-supply = <&reg_dldo4>;
> +       mmc-pwrseq = <&wifi_pwrseq>;
> +       bus-width = <4>;
> +       non-removable;
> +       status = "okay";
> +
> +       rtl8189etv: wifi@1 {
> +               reg = <1>;
> +               interrupt-parent = <&r_pio>;
> +               interrupts = <0 3 IRQ_TYPE_LEVEL_LOW>; /* PL3 */
> +               interrupt-names = "host-wake";
> +       };
> +};
> +
>  &ohci0 {
>         status = "okay";
>  };
> @@ -222,6 +246,13 @@
>         status = "okay";
>  };
>
> +/* Connected to the Bluetooth UART, with hardware handshake pins */
> +&uart1 {
> +       pinctrl-names = "default";
> +       pinctrl-0 = <&uart1_pins>, <&uart1_rts_cts_pins>;
> +       status = "okay";
> +};
> +
>  &usbphy {
>         status = "okay";
>  };
> --
> 2.14.4
>
Andre Przywara July 26, 2018, 9:05 a.m. UTC | #3
Hi,

On 26/07/18 08:48, Chen-Yu Tsai wrote:
> On Thu, Jul 26, 2018 at 8:35 AM, Andre Przywara <andre.przywara@arm.com> wrote:
>> The NanoPi-A64 has an on-board WiFi/Bluetooth combo chip, connected
> 
> The NanoPi A64 uses the RTL8189, which does _not_ have Bluetooth.
> Something is seriously wrong here.

Ah, interesting. You are right that the RTL8189 does not have Bluetooth.
I was just looking at the schematic, which, although naming the
RTL8189ETV there, shows UART1 and PCM connections. The pin numbers are
definitely wrong, it smells like someone copied a RTL8723BS pinout here ;-)

So thanks for the heads up, I will drop the BT/UART part.

Cheers,
Andre.

>> to the usual MMC1 and UART1. The AXP power line is the always-on
>> VDD_SYS_3.3V, but it uses pin L2 to enable the regulator.
>> As the actual WiFi driver is not in mainline Linux, it doesn't have a
>> compatible string, so we omit this from the node.
>>
>> Add the respective nodes to the DT to make it usable.
>>
>> Signed-off-by: Andre Przywara <andre.przywara@arm.com>
>> ---
>>  .../boot/dts/allwinner/sun50i-a64-nanopi-a64.dts   | 31 ++++++++++++++++++++++
>>  1 file changed, 31 insertions(+)
>>
>> diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-nanopi-a64.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-nanopi-a64.dts
>> index bd35a093e6cd..705e0b23589e 100644
>> --- a/arch/arm64/boot/dts/allwinner/sun50i-a64-nanopi-a64.dts
>> +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-nanopi-a64.dts
>> @@ -53,11 +53,17 @@
>>         aliases {
>>                 ethernet0 = &emac;
>>                 serial0 = &uart0;
>> +               serial1 = &uart1;
>>         };
>>
>>         chosen {
>>                 stdout-path = "serial0:115200n8";
>>         };
>> +
>> +       wifi_pwrseq: wifi_pwrseq {
>> +               compatible = "mmc-pwrseq-simple";
>> +               reset-gpios = <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* PL2 */
>> +       };
>>  };
>>
>>  &ehci0 {
>> @@ -105,6 +111,24 @@
>>         status = "okay";
>>  };
>>
>> +&mmc1 {
>> +       pinctrl-names = "default";
>> +       pinctrl-0 = <&mmc1_pins>;
>> +       vmmc-supply = <&reg_dcdc1>;
>> +       vqmmc-supply = <&reg_dldo4>;
>> +       mmc-pwrseq = <&wifi_pwrseq>;
>> +       bus-width = <4>;
>> +       non-removable;
>> +       status = "okay";
>> +
>> +       rtl8189etv: wifi@1 {
>> +               reg = <1>;
>> +               interrupt-parent = <&r_pio>;
>> +               interrupts = <0 3 IRQ_TYPE_LEVEL_LOW>; /* PL3 */
>> +               interrupt-names = "host-wake";
>> +       };
>> +};
>> +
>>  &ohci0 {
>>         status = "okay";
>>  };
>> @@ -222,6 +246,13 @@
>>         status = "okay";
>>  };
>>
>> +/* Connected to the Bluetooth UART, with hardware handshake pins */
>> +&uart1 {
>> +       pinctrl-names = "default";
>> +       pinctrl-0 = <&uart1_pins>, <&uart1_rts_cts_pins>;
>> +       status = "okay";
>> +};
>> +
>>  &usbphy {
>>         status = "okay";
>>  };
>> --
>> 2.14.4
>>
diff mbox series

Patch

diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-nanopi-a64.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-nanopi-a64.dts
index bd35a093e6cd..705e0b23589e 100644
--- a/arch/arm64/boot/dts/allwinner/sun50i-a64-nanopi-a64.dts
+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-nanopi-a64.dts
@@ -53,11 +53,17 @@ 
 	aliases {
 		ethernet0 = &emac;
 		serial0 = &uart0;
+		serial1 = &uart1;
 	};
 
 	chosen {
 		stdout-path = "serial0:115200n8";
 	};
+
+	wifi_pwrseq: wifi_pwrseq {
+		compatible = "mmc-pwrseq-simple";
+		reset-gpios = <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* PL2 */
+	};
 };
 
 &ehci0 {
@@ -105,6 +111,24 @@ 
 	status = "okay";
 };
 
+&mmc1 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&mmc1_pins>;
+	vmmc-supply = <&reg_dcdc1>;
+	vqmmc-supply = <&reg_dldo4>;
+	mmc-pwrseq = <&wifi_pwrseq>;
+	bus-width = <4>;
+	non-removable;
+	status = "okay";
+
+	rtl8189etv: wifi@1 {
+		reg = <1>;
+		interrupt-parent = <&r_pio>;
+		interrupts = <0 3 IRQ_TYPE_LEVEL_LOW>; /* PL3 */
+		interrupt-names = "host-wake";
+	};
+};
+
 &ohci0 {
 	status = "okay";
 };
@@ -222,6 +246,13 @@ 
 	status = "okay";
 };
 
+/* Connected to the Bluetooth UART, with hardware handshake pins */
+&uart1 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&uart1_pins>, <&uart1_rts_cts_pins>;
+	status = "okay";
+};
+
 &usbphy {
 	status = "okay";
 };