[PATCH] Add MagicBox M16S support

Zhang Ning zhangn1985 at qq.com
Fri Jul 22 00:10:15 PDT 2022


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 at 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 at 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



More information about the linux-amlogic mailing list