On 29/03/2021 17:47, Christian Hewitt wrote: > MeCool (Videostrong) KIII Pro is based on the Amlogic Q200 reference > board with an S912 chip and the following specs: > > - 3GB DDR3 RAM > - 16GB eMMC > - 10/100/1000 Base-T Ethernet > - BCM4335 Wireless (802.11 b/g/n/ac, BT 4.0) > - DVB-C/T/T2/S/S2 (AVL6862TA demod + R912 tuner) > - HDMI 2.0a video > - S/PDIF optical output > - CVBS/Analogue output > - 4x USB 2.0 ports > - IR receiver > - 1x Power button (with integrated blue LED) > - 1x Update/Reset button (underside) > - 1x micro SD card slot > > Tested-by: Drazen Spio <drazsp@xxxxxxxxx> > Signed-off-by: Christian Hewitt <christianshewitt@xxxxxxxxx> > --- > arch/arm64/boot/dts/amlogic/Makefile | 1 + > .../dts/amlogic/meson-gxm-mecool-kiii-pro.dts | 113 ++++++++++++++++++ > 2 files changed, 114 insertions(+) > create mode 100644 arch/arm64/boot/dts/amlogic/meson-gxm-mecool-kiii-pro.dts > > diff --git a/arch/arm64/boot/dts/amlogic/Makefile b/arch/arm64/boot/dts/amlogic/Makefile > index f8f515c93055..a58ccecfcb55 100644 > --- a/arch/arm64/boot/dts/amlogic/Makefile > +++ b/arch/arm64/boot/dts/amlogic/Makefile > @@ -39,6 +39,7 @@ dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905w-p281.dtb > dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905w-tx3-mini.dtb > dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905d-libretech-pc.dtb > dtb-$(CONFIG_ARCH_MESON) += meson-gxm-khadas-vim2.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 > dtb-$(CONFIG_ARCH_MESON) += meson-gxm-q200.dtb > diff --git a/arch/arm64/boot/dts/amlogic/meson-gxm-mecool-kiii-pro.dts b/arch/arm64/boot/dts/amlogic/meson-gxm-mecool-kiii-pro.dts > new file mode 100644 > index 000000000000..0651756d7fb5 > --- /dev/null > +++ b/arch/arm64/boot/dts/amlogic/meson-gxm-mecool-kiii-pro.dts > @@ -0,0 +1,113 @@ > +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) > + > +/* > + * Author: Christian Hewitt <christianshewitt@xxxxxxxxx> > + */ > + > +/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 = "videostrong,gxm-kiii-pro", "amlogic,s912", "amlogic,meson-gxm"; > + model = "MeCool KIII Pro"; > + > + memory@0 { > + device_type = "memory"; > + reg = <0x0 0x0 0x0 0xC0000000>; > + }; > + > + adc-keys { > + compatible = "adc-keys"; > + io-channels = <&saradc 0>; > + io-channel-names = "buttons"; > + keyup-threshold-microvolt = <1710000>; > + > + button-function { > + 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@0 { > + label = "power"; > + linux,code = <KEY_POWER>; > + gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_LOW>; > + }; > + }; > + > + leds { > + compatible = "gpio-leds"; > + > + blue { > + color = <LED_COLOR_ID_BLUE>; > + function = LED_FUNCTION_POWER; > + gpios = <&gpio GPIODV_24 GPIO_ACTIVE_HIGH>; > + default-state = "on"; > + panic-indicator; > + }; > + }; > +}; > + > +ðmac { > + pinctrl-0 = <ð_pins>; > + pinctrl-names = "default"; > + > + phy-handle = <&external_phy>; > + > + amlogic,tx-delay-ns = <2>; > + > + phy-mode = "rgmii"; > +}; > + > +&external_mdio { > + external_phy: ethernet-phy@0 { > + /* Realtek RTL8211F (0x001cc916) */ > + reg = <0>; > + max-speed = <1000>; > + > + reset-assert-us = <10000>; > + reset-deassert-us = <80000>; > + reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>; > + > + interrupt-parent = <&gpio_intc>; > + /* MAC_INTR on GPIOZ_15 */ > + interrupts = <25 IRQ_TYPE_LEVEL_LOW>; > + }; > +}; > + > +&ir { > + linux,rc-map-name = "rc-mecool-kiii-pro"; > +}; > + > +&sd_emmc_a { > + brcmf: wifi@1 { > + reg = <1>; > + compatible = "brcm,bcm4329-fmac"; > + }; > +}; > + > +&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"; > + shutdown-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>; > + max-speed = <2000000>; > + clocks = <&wifi32k>; > + clock-names = "lpo"; > + }; > +}; > Reviewed-by: Neil Armstrong <narmstrong@xxxxxxxxxxxx>