diff mbox series

Add MagicBox M16S support

Message ID tencent_5FC75850BB8ECD9374E98461C38C41CAC506@qq.com (mailing list archive)
State Superseded
Headers show
Series Add MagicBox M16S support | expand

Commit Message

Zhang Ning July 12, 2022, 2:24 p.m. UTC
MagicBox M16S or MagicBox 3Pro is popular Tv box in China.

it's gxm_q201_v1 according u-boot log.
and it's almost same as Q201 reference design.

add a simple dts to support this Tv box.

Signed-off-by: Zhang Ning <zhangn1985@qq.com>
---
 arch/arm64/boot/dts/amlogic/Makefile          |  1 +
 .../dts/amlogic/meson-gxm-magicbox-m16s.dts   | 20 +++++++++++++++++++
 2 files changed, 21 insertions(+)
 create mode 100644 arch/arm64/boot/dts/amlogic/meson-gxm-magicbox-m16s.dts

Comments

Neil Armstrong July 18, 2022, 8:02 a.m. UTC | #1
Hi,

On 12/07/2022 16:24, Zhang Ning wrote:
> MagicBox M16S or MagicBox 3Pro is popular Tv box in China.
> 
> it's gxm_q201_v1 according u-boot log.
> and it's almost same as Q201 reference design.
> 
> add a simple dts to support this Tv box.
> 
> Signed-off-by: Zhang Ning <zhangn1985@qq.com>
> ---
>   arch/arm64/boot/dts/amlogic/Makefile          |  1 +
>   .../dts/amlogic/meson-gxm-magicbox-m16s.dts   | 20 +++++++++++++++++++
>   2 files changed, 21 insertions(+)
>   create mode 100644 arch/arm64/boot/dts/amlogic/meson-gxm-magicbox-m16s.dts
> 
> diff --git a/arch/arm64/boot/dts/amlogic/Makefile b/arch/arm64/boot/dts/amlogic/Makefile
> index 8773211df50e..e0907fb41829 100644
> --- a/arch/arm64/boot/dts/amlogic/Makefile
> +++ b/arch/arm64/boot/dts/amlogic/Makefile
> @@ -44,6 +44,7 @@ dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-libretech-cc.dtb
>   dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-nexbox-a95x.dtb
>   dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-p212.dtb
>   dtb-$(CONFIG_ARCH_MESON) += meson-gxm-khadas-vim2.dtb
> +dtb-$(CONFIG_ARCH_MESON) += meson-gxm-magicbox-m16s.dtb
>   dtb-$(CONFIG_ARCH_MESON) += meson-gxm-mecool-kiii-pro.dtb
>   dtb-$(CONFIG_ARCH_MESON) += meson-gxm-minix-neo-u9h.dtb
>   dtb-$(CONFIG_ARCH_MESON) += meson-gxm-nexbox-a1.dtb
> diff --git a/arch/arm64/boot/dts/amlogic/meson-gxm-magicbox-m16s.dts b/arch/arm64/boot/dts/amlogic/meson-gxm-magicbox-m16s.dts
> new file mode 100644
> index 000000000000..be543d65a529
> --- /dev/null
> +++ b/arch/arm64/boot/dts/amlogic/meson-gxm-magicbox-m16s.dts
> @@ -0,0 +1,20 @@
> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> +/*
> + * Copyright (c) 2022 Zhang Ning <zhangn1985@qq.com>
> + */
> +
> +/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 = "magicbox,m16s", "amlogic,s912", "amlogic,meson-gxm";
> +	model = "MagicBox M16S";
> +};

The compatible should be documented in the DT bindings in:
Documentation/devicetree/bindings/arm/amlogic.yaml

> +&ethmac {
> +        phy-mode = "rmii";
> +        phy-handle = <&internal_phy>;
> +};

Is the sd_emmc_a change incompatible with the M16S ?

Neil
Zhang Ning July 21, 2022, 2:37 p.m. UTC | #2
On Mon, Jul 18, 2022 at 10:02:32AM +0200, Neil Armstrong wrote:

Thank you for review.
> Hi,
> 
> On 12/07/2022 16:24, Zhang Ning wrote:
> > MagicBox M16S or MagicBox 3Pro is popular Tv box in China.
> > 
> > it's gxm_q201_v1 according u-boot log.
> > and it's almost same as Q201 reference design.
> > 
> > add a simple dts to support this Tv box.
> > 
> > Signed-off-by: Zhang Ning <zhangn1985@qq.com>
> > ---
> >   arch/arm64/boot/dts/amlogic/Makefile          |  1 +
> >   .../dts/amlogic/meson-gxm-magicbox-m16s.dts   | 20 +++++++++++++++++++
> >   2 files changed, 21 insertions(+)
> >   create mode 100644 arch/arm64/boot/dts/amlogic/meson-gxm-magicbox-m16s.dts
> > 
> > diff --git a/arch/arm64/boot/dts/amlogic/Makefile b/arch/arm64/boot/dts/amlogic/Makefile
> > index 8773211df50e..e0907fb41829 100644
> > --- a/arch/arm64/boot/dts/amlogic/Makefile
> > +++ b/arch/arm64/boot/dts/amlogic/Makefile
> > @@ -44,6 +44,7 @@ dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-libretech-cc.dtb
> >   dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-nexbox-a95x.dtb
> >   dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-p212.dtb
> >   dtb-$(CONFIG_ARCH_MESON) += meson-gxm-khadas-vim2.dtb
> > +dtb-$(CONFIG_ARCH_MESON) += meson-gxm-magicbox-m16s.dtb
> >   dtb-$(CONFIG_ARCH_MESON) += meson-gxm-mecool-kiii-pro.dtb
> >   dtb-$(CONFIG_ARCH_MESON) += meson-gxm-minix-neo-u9h.dtb
> >   dtb-$(CONFIG_ARCH_MESON) += meson-gxm-nexbox-a1.dtb
> > diff --git a/arch/arm64/boot/dts/amlogic/meson-gxm-magicbox-m16s.dts b/arch/arm64/boot/dts/amlogic/meson-gxm-magicbox-m16s.dts
> > new file mode 100644
> > index 000000000000..be543d65a529
> > --- /dev/null
> > +++ b/arch/arm64/boot/dts/amlogic/meson-gxm-magicbox-m16s.dts
> > @@ -0,0 +1,20 @@
> > +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> > +/*
> > + * Copyright (c) 2022 Zhang Ning <zhangn1985@qq.com>
> > + */
> > +
> > +/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 = "magicbox,m16s", "amlogic,s912", "amlogic,meson-gxm";
> > +	model = "MagicBox M16S";
> > +};
> 
> The compatible should be documented in the DT bindings in:
> Documentation/devicetree/bindings/arm/amlogic.yaml

I will update this part next version.
> 
> > +&ethmac {
> > +        phy-mode = "rmii";
> > +        phy-handle = <&internal_phy>;
> > +};
> 
> Is the sd_emmc_a change incompatible with the M16S ?

sd_emmc_a is used as SDIO for wifi/bt. and wifi/bt works with this dtb.
I checked mrvl-sd8997 DT bindings,  missing a lot of properties need
by mrvl-sd8997.

I don't have schematics to fill these properties, need more time to
check vendor OS or try each GPIO.
> 
> Neil
Neil Armstrong July 21, 2022, 5:55 p.m. UTC | #3
On 21/07/2022 16:37, Zhang Ning wrote:
> On Mon, Jul 18, 2022 at 10:02:32AM +0200, Neil Armstrong wrote:
> 
> Thank you for review.
>> Hi,
>>
>> On 12/07/2022 16:24, Zhang Ning wrote:
>>> MagicBox M16S or MagicBox 3Pro is popular Tv box in China.
>>>
>>> it's gxm_q201_v1 according u-boot log.
>>> and it's almost same as Q201 reference design.
>>>
>>> add a simple dts to support this Tv box.
>>>
>>> Signed-off-by: Zhang Ning <zhangn1985@qq.com>
>>> ---
>>>    arch/arm64/boot/dts/amlogic/Makefile          |  1 +
>>>    .../dts/amlogic/meson-gxm-magicbox-m16s.dts   | 20 +++++++++++++++++++
>>>    2 files changed, 21 insertions(+)
>>>    create mode 100644 arch/arm64/boot/dts/amlogic/meson-gxm-magicbox-m16s.dts
>>>
>>> diff --git a/arch/arm64/boot/dts/amlogic/Makefile b/arch/arm64/boot/dts/amlogic/Makefile
>>> index 8773211df50e..e0907fb41829 100644
>>> --- a/arch/arm64/boot/dts/amlogic/Makefile
>>> +++ b/arch/arm64/boot/dts/amlogic/Makefile
>>> @@ -44,6 +44,7 @@ dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-libretech-cc.dtb
>>>    dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-nexbox-a95x.dtb
>>>    dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-p212.dtb
>>>    dtb-$(CONFIG_ARCH_MESON) += meson-gxm-khadas-vim2.dtb
>>> +dtb-$(CONFIG_ARCH_MESON) += meson-gxm-magicbox-m16s.dtb
>>>    dtb-$(CONFIG_ARCH_MESON) += meson-gxm-mecool-kiii-pro.dtb
>>>    dtb-$(CONFIG_ARCH_MESON) += meson-gxm-minix-neo-u9h.dtb
>>>    dtb-$(CONFIG_ARCH_MESON) += meson-gxm-nexbox-a1.dtb
>>> diff --git a/arch/arm64/boot/dts/amlogic/meson-gxm-magicbox-m16s.dts b/arch/arm64/boot/dts/amlogic/meson-gxm-magicbox-m16s.dts
>>> new file mode 100644
>>> index 000000000000..be543d65a529
>>> --- /dev/null
>>> +++ b/arch/arm64/boot/dts/amlogic/meson-gxm-magicbox-m16s.dts
>>> @@ -0,0 +1,20 @@
>>> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
>>> +/*
>>> + * Copyright (c) 2022 Zhang Ning <zhangn1985@qq.com>
>>> + */
>>> +
>>> +/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 = "magicbox,m16s", "amlogic,s912", "amlogic,meson-gxm";
>>> +	model = "MagicBox M16S";
>>> +};
>>
>> The compatible should be documented in the DT bindings in:
>> Documentation/devicetree/bindings/arm/amlogic.yaml
> 
> I will update this part next version.
>>
>>> +&ethmac {
>>> +        phy-mode = "rmii";
>>> +        phy-handle = <&internal_phy>;
>>> +};
>>
>> Is the sd_emmc_a change incompatible with the M16S ?
> 
> sd_emmc_a is used as SDIO for wifi/bt. and wifi/bt works with this dtb.
> I checked mrvl-sd8997 DT bindings,  missing a lot of properties need
> by mrvl-sd8997.
> 
> I don't have schematics to fill these properties, need more time to
> check vendor OS or try each GPIO.

Ok fine no problem, you can push it later when you figure out the properties.

>>
>> Neil

Neil
Zhang Ning July 22, 2022, 7:10 a.m. UTC | #4
Hi Neil

I got these info from vendor OS:

<6>[    0.538173] c0 1 (swapper/0) aml_wifi wifi.33: [wifi_dev_probe] no power_on_pin2
<6>[    0.538183] c0 1 (swapper/0) aml_wifi wifi.33: [wifi_dev_probe] interrupt_pin=241
<6>[    0.538190] c0 1 (swapper/0) aml_wifi wifi.33: [wifi_dev_probe] irq_num=100, irq_trigger_type=1
<6>[    0.538198] c0 1 (swapper/0) aml_wifi wifi.33: [wifi_dev_probe] power_on_pin=206
<6>[    0.538204] c0 1 (swapper/0) aml_wifi wifi.33: [wifi_dev_probe] clock_32k_pin=0
<6>[    0.538211] c0 1 (swapper/0) aml_wifi wifi.33: [wifi_dev_probe] host_sleep_wifi=0
<6>[    0.538218] c0 1 (swapper/0) aml_wifi wifi.33: [wifi_dev_probe] shutdown_wifi = 0
<6>[    0.538513] c1 1 (swapper/0) aml_wifi wifi.33: [wifi_setup_dt] wifi_setup_dt
<6>[    0.538559] c1 1 (swapper/0) aml_wifi wifi.33: [wifi_setup_dt] interrupt_pin(241)
<6>[    0.538575] c1 1 (swapper/0) aml_wifi wifi.33: [wifi_setup_dt] delay 1000us
<6>[    0.539585] c1 1 (swapper/0) aml_wifi wifi.33: [wifi_setup_dt] power_on_pin(206)
<6>[    0.539592] c1 1 (swapper/0) aml_wifi wifi.33: [wifi_setup_dt] power_level=0

GPIOs 145-154, platform/c1109880.pinmux, ao-bank:
 gpio-147 (gpio_key            ) in  hi

GPIOs 155-255, platform/c1109880.pinmux, banks:
 gpio-172 (sda                 ) in  hi    GPIOH_1
 gpio-173 (scl                 ) in  hi    GPIOH_2
 gpio-176 (mute_gpio           ) out hi    GPIOH_5   dio2133
 gpio-190 (amlsd               ) out hi    BOOT_9    emmc_pwrseq
 gpio-203 (amlsd               ) in  hi    CARD_6    sd_emmc_b cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_LOW>;
 gpio-206 (sdio_wifi           ) out hi    GPIODV_2  sdio_pwrseq
 gpio-241 (sdio_wifi           ) in  lo    GPIOX_7   interrupt-parent = <&pio>; interrupts = <38 IRQ_TYPE_LEVEL_LOW>;
 gpio-251 (bt_rfkill           ) in  lo    GPIOX_17  shutdown-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>;

The right 2 columns are my comments.

it's easy to add gpio-keys (maybe reset hole) and i2c-gpio (I need more info about devices
under this bus).

I think GPIODV_2 is for sdio_pwrseq. 
current dtb has a issue: wifi lost after reboot, below is the error.

mmc/core/sdio.c:        pr_err("%s: error %d whilst initialising SDIO card\n",

after I change sdio_pwrseq gpio to GPIODV_2, no such error.

Now it requires me to finish wifi&bt device tree items to make wifi/bt
work. But I don't know how.


could I only submit what I can do right now (include gpio-keys and
i2c-gpio if has subdevice)?



On Thu, Jul 21, 2022 at 07:55:03PM +0200, Neil Armstrong wrote:
> On 21/07/2022 16:37, Zhang Ning wrote:
> > On Mon, Jul 18, 2022 at 10:02:32AM +0200, Neil Armstrong wrote:
> > 
> > Thank you for review.
> > > Hi,
> > > 
> > > On 12/07/2022 16:24, Zhang Ning wrote:
> > > > MagicBox M16S or MagicBox 3Pro is popular Tv box in China.
> > > > 
> > > > it's gxm_q201_v1 according u-boot log.
> > > > and it's almost same as Q201 reference design.
> > > > 
> > > > add a simple dts to support this Tv box.
> > > > 
> > > > Signed-off-by: Zhang Ning <zhangn1985@qq.com>
> > > > ---
> > > >    arch/arm64/boot/dts/amlogic/Makefile          |  1 +
> > > >    .../dts/amlogic/meson-gxm-magicbox-m16s.dts   | 20 +++++++++++++++++++
> > > >    2 files changed, 21 insertions(+)
> > > >    create mode 100644 arch/arm64/boot/dts/amlogic/meson-gxm-magicbox-m16s.dts
> > > > 
> > > > diff --git a/arch/arm64/boot/dts/amlogic/Makefile b/arch/arm64/boot/dts/amlogic/Makefile
> > > > index 8773211df50e..e0907fb41829 100644
> > > > --- a/arch/arm64/boot/dts/amlogic/Makefile
> > > > +++ b/arch/arm64/boot/dts/amlogic/Makefile
> > > > @@ -44,6 +44,7 @@ dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-libretech-cc.dtb
> > > >    dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-nexbox-a95x.dtb
> > > >    dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-p212.dtb
> > > >    dtb-$(CONFIG_ARCH_MESON) += meson-gxm-khadas-vim2.dtb
> > > > +dtb-$(CONFIG_ARCH_MESON) += meson-gxm-magicbox-m16s.dtb
> > > >    dtb-$(CONFIG_ARCH_MESON) += meson-gxm-mecool-kiii-pro.dtb
> > > >    dtb-$(CONFIG_ARCH_MESON) += meson-gxm-minix-neo-u9h.dtb
> > > >    dtb-$(CONFIG_ARCH_MESON) += meson-gxm-nexbox-a1.dtb
> > > > diff --git a/arch/arm64/boot/dts/amlogic/meson-gxm-magicbox-m16s.dts b/arch/arm64/boot/dts/amlogic/meson-gxm-magicbox-m16s.dts
> > > > new file mode 100644
> > > > index 000000000000..be543d65a529
> > > > --- /dev/null
> > > > +++ b/arch/arm64/boot/dts/amlogic/meson-gxm-magicbox-m16s.dts
> > > > @@ -0,0 +1,20 @@
> > > > +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> > > > +/*
> > > > + * Copyright (c) 2022 Zhang Ning <zhangn1985@qq.com>
> > > > + */
> > > > +
> > > > +/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 = "magicbox,m16s", "amlogic,s912", "amlogic,meson-gxm";
> > > > +	model = "MagicBox M16S";
> > > > +};
> > > 
> > > The compatible should be documented in the DT bindings in:
> > > Documentation/devicetree/bindings/arm/amlogic.yaml
> > 
> > I will update this part next version.
> > > 
> > > > +&ethmac {
> > > > +        phy-mode = "rmii";
> > > > +        phy-handle = <&internal_phy>;
> > > > +};
> > > 
> > > Is the sd_emmc_a change incompatible with the M16S ?
> > 
> > sd_emmc_a is used as SDIO for wifi/bt. and wifi/bt works with this dtb.
> > I checked mrvl-sd8997 DT bindings,  missing a lot of properties need
> > by mrvl-sd8997.
> > 
> > I don't have schematics to fill these properties, need more time to
> > check vendor OS or try each GPIO.
> 
> Ok fine no problem, you can push it later when you figure out the properties.
> 
> > > 
> > > Neil
> 
> Neil
diff mbox series

Patch

diff --git a/arch/arm64/boot/dts/amlogic/Makefile b/arch/arm64/boot/dts/amlogic/Makefile
index 8773211df50e..e0907fb41829 100644
--- a/arch/arm64/boot/dts/amlogic/Makefile
+++ b/arch/arm64/boot/dts/amlogic/Makefile
@@ -44,6 +44,7 @@  dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-libretech-cc.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-nexbox-a95x.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-p212.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-gxm-khadas-vim2.dtb
+dtb-$(CONFIG_ARCH_MESON) += meson-gxm-magicbox-m16s.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-gxm-mecool-kiii-pro.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-gxm-minix-neo-u9h.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-gxm-nexbox-a1.dtb
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxm-magicbox-m16s.dts b/arch/arm64/boot/dts/amlogic/meson-gxm-magicbox-m16s.dts
new file mode 100644
index 000000000000..be543d65a529
--- /dev/null
+++ b/arch/arm64/boot/dts/amlogic/meson-gxm-magicbox-m16s.dts
@@ -0,0 +1,20 @@ 
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (c) 2022 Zhang Ning <zhangn1985@qq.com>
+ */
+
+/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 = "magicbox,m16s", "amlogic,s912", "amlogic,meson-gxm";
+	model = "MagicBox M16S";
+};
+&ethmac {
+        phy-mode = "rmii";
+        phy-handle = <&internal_phy>;
+};