2020-07-18 05:01:46

by Christian Hewitt

[permalink] [raw]
Subject: [PATCH 1/2] dt-bindings: arm: amlogic: add support for the WeTek Core 2

The WeTek Core 2 is a commercial Android device based on the Amlogic Q200
reference design using the S912-H chipset. Specs:

3GB DDR3 RAM
32GB eMMC storage
10/100 Ethernet using Realtek RTL8152 (internal USB)
802.11 a/b/g/n/ac + BT 4.1 sdio wireless module (AP6356S)
2x single colour LEDs to indicate power
1x power button
1x reset button on the underside of the box
HDMI 2.0 (4k@60p) video
Composite video + 2-channel audio output on 3.5mm jack
S/PDIF audio output
2x USB 2.0 ports
1x USB OTG port (internal)
1x micro SD card slot
UART pins (internal)
IR Sensor

Signed-off-by: Christian Hewitt <[email protected]>
---
Documentation/devicetree/bindings/arm/amlogic.yaml | 1 +
1 file changed, 1 insertion(+)

diff --git a/Documentation/devicetree/bindings/arm/amlogic.yaml b/Documentation/devicetree/bindings/arm/amlogic.yaml
index 378229fa8310..5eba9f48823e 100644
--- a/Documentation/devicetree/bindings/arm/amlogic.yaml
+++ b/Documentation/devicetree/bindings/arm/amlogic.yaml
@@ -121,6 +121,7 @@ properties:
- libretech,aml-s912-pc
- nexbox,a1
- tronsmart,vega-s96
+ - wetek,core2
- const: amlogic,s912
- const: amlogic,meson-gxm

--
2.17.1


2020-07-18 05:04:15

by Christian Hewitt

[permalink] [raw]
Subject: [PATCH 2/2] arm64: dts: meson: add support for the WeTek Core 2

The WeTek Core2 is a commercial device based on the Amlogic Q200 reference
design but with the following differences:

- 3GB RAM, 32GB eMMC
- Blue and Red LEDs used to signal on/off status
- uart_AO can be accessed after opening the case; soldering required
- USB OTG is not accessible (inside the case)
- Realtek RTL8152 Ethernet (internal USB connection)

Signed-off-by: Christian Hewitt <[email protected]>
---
arch/arm64/boot/dts/amlogic/Makefile | 1 +
.../dts/amlogic/meson-gxm-wetek-core2.dts | 90 +++++++++++++++++++
2 files changed, 91 insertions(+)
create mode 100644 arch/arm64/boot/dts/amlogic/meson-gxm-wetek-core2.dts

diff --git a/arch/arm64/boot/dts/amlogic/Makefile b/arch/arm64/boot/dts/amlogic/Makefile
index 5cac4d1d487d..4e2239ffcaa5 100644
--- a/arch/arm64/boot/dts/amlogic/Makefile
+++ b/arch/arm64/boot/dts/amlogic/Makefile
@@ -41,6 +41,7 @@ dtb-$(CONFIG_ARCH_MESON) += meson-gxm-q201.dtb
dtb-$(CONFIG_ARCH_MESON) += meson-gxm-rbox-pro.dtb
dtb-$(CONFIG_ARCH_MESON) += meson-gxm-s912-libretech-pc.dtb
dtb-$(CONFIG_ARCH_MESON) += meson-gxm-vega-s96.dtb
+dtb-$(CONFIG_ARCH_MESON) += meson-gxm-wetek-core2.dtb
dtb-$(CONFIG_ARCH_MESON) += meson-sm1-sei610.dtb
dtb-$(CONFIG_ARCH_MESON) += meson-sm1-khadas-vim3l.dtb
dtb-$(CONFIG_ARCH_MESON) += meson-sm1-odroid-c4.dtb
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxm-wetek-core2.dts b/arch/arm64/boot/dts/amlogic/meson-gxm-wetek-core2.dts
new file mode 100644
index 000000000000..44fc5ea38dc0
--- /dev/null
+++ b/arch/arm64/boot/dts/amlogic/meson-gxm-wetek-core2.dts
@@ -0,0 +1,90 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (c) 2020 Christian Hewitt <[email protected]>
+ */
+
+/dts-v1/;
+
+#include "meson-gxm.dtsi"
+#include "meson-gx-p23x-q20x.dtsi"
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/leds/common.h>
+
+/ {
+ compatible = "wetek,core2", "amlogic,s912", "amlogic,meson-gxm";
+ model = "WeTek Core 2";
+
+ memory@0 {
+ device_type = "memory";
+ reg = <0x0 0x0 0x0 0x80000000>; /* 2 GiB or 3 GiB */
+ };
+
+ leds {
+ compatible = "gpio-leds";
+
+ blue {
+ color = <LED_COLOR_ID_BLUE>;
+ function = LED_FUNCTION_STATUS;
+ gpios = <&gpio GPIODV_24 GPIO_ACTIVE_HIGH>;
+ default-state = "on";
+ };
+ };
+
+ adc-keys {
+ compatible = "adc-keys";
+ io-channels = <&saradc 0>;
+ io-channel-names = "buttons";
+ keyup-threshold-microvolt = <1710000>;
+
+ button-update {
+ label = "update";
+ linux,code = <KEY_VENDOR>;
+ press-threshold-microvolt = <10000>;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <100>;
+
+ button-power {
+ label = "power";
+ linux,code = <KEY_POWER>;
+ gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_LOW>;
+ };
+ };
+};
+
+/* This is disabled as Realtek RTL8152 USB provides Ethernet */
+&ethmac {
+ status = "disabled";
+ phy-mode = "rmii";
+ phy-handle = <&internal_phy>;
+};
+
+&internal_phy {
+ pinctrl-0 = <&eth_link_led_pins>, <&eth_act_led_pins>;
+ pinctrl-names = "default";
+};
+
+&ir {
+ linux,rc-map-name = "rc-wetek-play2";
+};
+
+/* This is connected to the Bluetooth module: */
+&uart_A {
+ status = "okay";
+ pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>;
+ pinctrl-names = "default";
+ uart-has-rtscts;
+
+ bluetooth {
+ compatible = "brcm,bcm43438-bt";
+ enable-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>;
+ max-speed = <2000000>;
+ clocks = <&wifi32k>;
+ clock-names = "lpo";
+ };
+};
--
2.17.1

2020-07-18 08:53:29

by Neil Armstrong

[permalink] [raw]
Subject: Re: [PATCH 2/2] arm64: dts: meson: add support for the WeTek Core 2



Le 18/07/2020 ? 07:00, Christian Hewitt a ?crit :
> The WeTek Core2 is a commercial device based on the Amlogic Q200 reference
> design but with the following differences:
>
> - 3GB RAM, 32GB eMMC
> - Blue and Red LEDs used to signal on/off status
> - uart_AO can be accessed after opening the case; soldering required
> - USB OTG is not accessible (inside the case)
> - Realtek RTL8152 Ethernet (internal USB connection)
>
> Signed-off-by: Christian Hewitt <[email protected]>
> ---
> arch/arm64/boot/dts/amlogic/Makefile | 1 +
> .../dts/amlogic/meson-gxm-wetek-core2.dts | 90 +++++++++++++++++++
> 2 files changed, 91 insertions(+)
> create mode 100644 arch/arm64/boot/dts/amlogic/meson-gxm-wetek-core2.dts
>
> diff --git a/arch/arm64/boot/dts/amlogic/Makefile b/arch/arm64/boot/dts/amlogic/Makefile
> index 5cac4d1d487d..4e2239ffcaa5 100644
> --- a/arch/arm64/boot/dts/amlogic/Makefile
> +++ b/arch/arm64/boot/dts/amlogic/Makefile
> @@ -41,6 +41,7 @@ dtb-$(CONFIG_ARCH_MESON) += meson-gxm-q201.dtb
> dtb-$(CONFIG_ARCH_MESON) += meson-gxm-rbox-pro.dtb
> dtb-$(CONFIG_ARCH_MESON) += meson-gxm-s912-libretech-pc.dtb
> dtb-$(CONFIG_ARCH_MESON) += meson-gxm-vega-s96.dtb
> +dtb-$(CONFIG_ARCH_MESON) += meson-gxm-wetek-core2.dtb
> dtb-$(CONFIG_ARCH_MESON) += meson-sm1-sei610.dtb
> dtb-$(CONFIG_ARCH_MESON) += meson-sm1-khadas-vim3l.dtb
> dtb-$(CONFIG_ARCH_MESON) += meson-sm1-odroid-c4.dtb
> diff --git a/arch/arm64/boot/dts/amlogic/meson-gxm-wetek-core2.dts b/arch/arm64/boot/dts/amlogic/meson-gxm-wetek-core2.dts
> new file mode 100644
> index 000000000000..44fc5ea38dc0
> --- /dev/null
> +++ b/arch/arm64/boot/dts/amlogic/meson-gxm-wetek-core2.dts
> @@ -0,0 +1,90 @@
> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> +/*
> + * Copyright (c) 2020 Christian Hewitt <[email protected]>
> + */
> +
> +/dts-v1/;
> +
> +#include "meson-gxm.dtsi"
> +#include "meson-gx-p23x-q20x.dtsi"
> +#include <dt-bindings/input/input.h>
> +#include <dt-bindings/leds/common.h>
> +
> +/ {
> + compatible = "wetek,core2", "amlogic,s912", "amlogic,meson-gxm";
> + model = "WeTek Core 2";
> +
> + memory@0 {
> + device_type = "memory";
> + reg = <0x0 0x0 0x0 0x80000000>; /* 2 GiB or 3 GiB */
> + };
> +
> + leds {
> + compatible = "gpio-leds";
> +
> + blue {
> + color = <LED_COLOR_ID_BLUE>;
> + function = LED_FUNCTION_STATUS;
> + gpios = <&gpio GPIODV_24 GPIO_ACTIVE_HIGH>;
> + default-state = "on";
> + };
> + };
> +
> + adc-keys {
> + compatible = "adc-keys";
> + io-channels = <&saradc 0>;
> + io-channel-names = "buttons";
> + keyup-threshold-microvolt = <1710000>;
> +
> + button-update {
> + label = "update";
> + linux,code = <KEY_VENDOR>;
> + press-threshold-microvolt = <10000>;
> + };
> + };
> +
> + gpio-keys-polled {
> + compatible = "gpio-keys-polled";
> + #address-cells = <1>;
> + #size-cells = <0>;
> + poll-interval = <100>;
> +
> + button-power {
> + label = "power";
> + linux,code = <KEY_POWER>;
> + gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_LOW>;
> + };
> + };
> +};
> +
> +/* This is disabled as Realtek RTL8152 USB provides Ethernet */
> +&ethmac {
> + status = "disabled";
> + phy-mode = "rmii";
> + phy-handle = <&internal_phy>;

I think you can remove these 2 lines

> +};
> +
> +&internal_phy {
> + pinctrl-0 = <&eth_link_led_pins>, <&eth_act_led_pins>;
> + pinctrl-names = "default";

Simply add :
status = "disabled";

> +};
> +
> +&ir {
> + linux,rc-map-name = "rc-wetek-play2";
> +};
> +
> +/* This is connected to the Bluetooth module: */
> +&uart_A {
> + status = "okay";
> + pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>;
> + pinctrl-names = "default";
> + uart-has-rtscts;
> +
> + bluetooth {
> + compatible = "brcm,bcm43438-bt";
> + enable-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>;
> + max-speed = <2000000>;
> + clocks = <&wifi32k>;
> + clock-names = "lpo";
> + };
> +};
>


Otherwise looks good

Neil

2020-07-18 09:08:21

by Christian Hewitt

[permalink] [raw]
Subject: Re: [PATCH 2/2] arm64: dts: meson: add support for the WeTek Core 2


> On 18 Jul 2020, at 12:52 pm, Neil Armstrong <[email protected]> wrote:
>
> Le 18/07/2020 à 07:00, Christian Hewitt a écrit :
>> The WeTek Core2 is a commercial device based on the Amlogic Q200 reference
>> design but with the following differences:
>>
>> - 3GB RAM, 32GB eMMC
>> - Blue and Red LEDs used to signal on/off status
>> - uart_AO can be accessed after opening the case; soldering required
>> - USB OTG is not accessible (inside the case)
>> - Realtek RTL8152 Ethernet (internal USB connection)
>>
>> Signed-off-by: Christian Hewitt <[email protected]>
>> ---
>> arch/arm64/boot/dts/amlogic/Makefile | 1 +
>> .../dts/amlogic/meson-gxm-wetek-core2.dts | 90 +++++++++++++++++++
>> 2 files changed, 91 insertions(+)
>> create mode 100644 arch/arm64/boot/dts/amlogic/meson-gxm-wetek-core2.dts
>>
>> diff --git a/arch/arm64/boot/dts/amlogic/Makefile b/arch/arm64/boot/dts/amlogic/Makefile
>> index 5cac4d1d487d..4e2239ffcaa5 100644
>> --- a/arch/arm64/boot/dts/amlogic/Makefile
>> +++ b/arch/arm64/boot/dts/amlogic/Makefile
>> @@ -41,6 +41,7 @@ dtb-$(CONFIG_ARCH_MESON) += meson-gxm-q201.dtb
>> dtb-$(CONFIG_ARCH_MESON) += meson-gxm-rbox-pro.dtb
>> dtb-$(CONFIG_ARCH_MESON) += meson-gxm-s912-libretech-pc.dtb
>> dtb-$(CONFIG_ARCH_MESON) += meson-gxm-vega-s96.dtb
>> +dtb-$(CONFIG_ARCH_MESON) += meson-gxm-wetek-core2.dtb
>> dtb-$(CONFIG_ARCH_MESON) += meson-sm1-sei610.dtb
>> dtb-$(CONFIG_ARCH_MESON) += meson-sm1-khadas-vim3l.dtb
>> dtb-$(CONFIG_ARCH_MESON) += meson-sm1-odroid-c4.dtb
>> diff --git a/arch/arm64/boot/dts/amlogic/meson-gxm-wetek-core2.dts b/arch/arm64/boot/dts/amlogic/meson-gxm-wetek-core2.dts
>> new file mode 100644
>> index 000000000000..44fc5ea38dc0
>> --- /dev/null
>> +++ b/arch/arm64/boot/dts/amlogic/meson-gxm-wetek-core2.dts
>> @@ -0,0 +1,90 @@
>> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
>> +/*
>> + * Copyright (c) 2020 Christian Hewitt <[email protected]>
>> + */
>> +
>> +/dts-v1/;
>> +
>> +#include "meson-gxm.dtsi"
>> +#include "meson-gx-p23x-q20x.dtsi"
>> +#include <dt-bindings/input/input.h>
>> +#include <dt-bindings/leds/common.h>
>> +
>> +/ {
>> + compatible = "wetek,core2", "amlogic,s912", "amlogic,meson-gxm";
>> + model = "WeTek Core 2";
>> +
>> + memory@0 {
>> + device_type = "memory";
>> + reg = <0x0 0x0 0x0 0x80000000>; /* 2 GiB or 3 GiB */
>> + };
>> +
>> + leds {
>> + compatible = "gpio-leds";
>> +
>> + blue {
>> + color = <LED_COLOR_ID_BLUE>;
>> + function = LED_FUNCTION_STATUS;
>> + gpios = <&gpio GPIODV_24 GPIO_ACTIVE_HIGH>;
>> + default-state = "on";
>> + };
>> + };
>> +
>> + adc-keys {
>> + compatible = "adc-keys";
>> + io-channels = <&saradc 0>;
>> + io-channel-names = "buttons";
>> + keyup-threshold-microvolt = <1710000>;
>> +
>> + button-update {
>> + label = "update";
>> + linux,code = <KEY_VENDOR>;
>> + press-threshold-microvolt = <10000>;
>> + };
>> + };
>> +
>> + gpio-keys-polled {
>> + compatible = "gpio-keys-polled";
>> + #address-cells = <1>;
>> + #size-cells = <0>;
>> + poll-interval = <100>;
>> +
>> + button-power {
>> + label = "power";
>> + linux,code = <KEY_POWER>;
>> + gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_LOW>;
>> + };
>> + };
>> +};
>> +
>> +/* This is disabled as Realtek RTL8152 USB provides Ethernet */
>> +&ethmac {
>> + status = "disabled";
>> + phy-mode = "rmii";
>> + phy-handle = <&internal_phy>;
>
> I think you can remove these 2 lines
>
>> +};
>> +
>> +&internal_phy {
>> + pinctrl-0 = <&eth_link_led_pins>, <&eth_act_led_pins>;
>> + pinctrl-names = "default";
>
> Simply add :
> status = "disabled";
>
>> +};
>> +
>> +&ir {
>> + linux,rc-map-name = "rc-wetek-play2";
>> +};
>> +
>> +/* This is connected to the Bluetooth module: */
>> +&uart_A {
>> + status = "okay";
>> + pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>;
>> + pinctrl-names = "default";
>> + uart-has-rtscts;
>> +
>> + bluetooth {
>> + compatible = "brcm,bcm43438-bt";
>> + enable-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>;
>> + max-speed = <2000000>;
>> + clocks = <&wifi32k>;
>> + clock-names = "lpo";
>> + };
>> +};
>>
>
>
> Otherwise looks good
>
> Neil

I’ve tested both changes, both are fine so will send v2.

Thanks for the quick review.

Christian

2020-07-21 08:53:11

by Jerome Brunet

[permalink] [raw]
Subject: Re: [PATCH 1/2] dt-bindings: arm: amlogic: add support for the WeTek Core 2


On Sat 18 Jul 2020 at 07:00, Christian Hewitt <[email protected]> wrote:

> The WeTek Core 2 is a commercial Android device based on the Amlogic Q200
> reference design using the S912-H chipset. Specs:

This series is missing a cover-letter. Please add a cover letter when
sending more that one patch

>
> 3GB DDR3 RAM
> 32GB eMMC storage
> 10/100 Ethernet using Realtek RTL8152 (internal USB)
> 802.11 a/b/g/n/ac + BT 4.1 sdio wireless module (AP6356S)
> 2x single colour LEDs to indicate power
> 1x power button
> 1x reset button on the underside of the box
> HDMI 2.0 (4k@60p) video
> Composite video + 2-channel audio output on 3.5mm jack
> S/PDIF audio output
> 2x USB 2.0 ports
> 1x USB OTG port (internal)
> 1x micro SD card slot
> UART pins (internal)
> IR Sensor
>
> Signed-off-by: Christian Hewitt <[email protected]>
> ---
> Documentation/devicetree/bindings/arm/amlogic.yaml | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/Documentation/devicetree/bindings/arm/amlogic.yaml b/Documentation/devicetree/bindings/arm/amlogic.yaml
> index 378229fa8310..5eba9f48823e 100644
> --- a/Documentation/devicetree/bindings/arm/amlogic.yaml
> +++ b/Documentation/devicetree/bindings/arm/amlogic.yaml
> @@ -121,6 +121,7 @@ properties:
> - libretech,aml-s912-pc
> - nexbox,a1
> - tronsmart,vega-s96
> + - wetek,core2
> - const: amlogic,s912
> - const: amlogic,meson-gxm