diff mbox series

[2/2] arm64: dts: meson: add support for OSMC Vero 4K

Message ID 20240606095419.3950015-2-christianshewitt@gmail.com (mailing list archive)
State Superseded
Headers show
Series [1/2] dt-bindings: arm: amlogic: add OSMC Vero 4K | expand

Commit Message

Christian Hewitt June 6, 2024, 9:54 a.m. UTC
The OSMC Vero 4K device is based on the Amlogic S905X (P212)
reference design with the following specifications:

- 2GB DDR4 RAM
- 16GB eMMC
- HDMI 2.1 video
- S/PDIF optical output
- AV output
- 10/100 Ethernet
- AP6255 Wireless (802.11 a/b/g/n/ac, BT 4.2)
- 2x USB 2.0 ports (1x OTG)
- IR receiver (internal)
- IR extender port (external)
- 1x micro SD card slot
- 1x Power LED (red)
- 1x Reset button (in AV jack)

Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
---
 arch/arm64/boot/dts/amlogic/Makefile          |   7 +
 .../dts/amlogic/meson-gxl-s905x-vero4k.dts    | 202 ++++++++++++++++++
 2 files changed, 209 insertions(+)
 create mode 100644 arch/arm64/boot/dts/amlogic/meson-gxl-s905x-vero4k.dts

Comments

Neil Armstrong June 7, 2024, 8:07 a.m. UTC | #1
On 06/06/2024 11:54, Christian Hewitt wrote:
> The OSMC Vero 4K device is based on the Amlogic S905X (P212)
> reference design with the following specifications:
> 
> - 2GB DDR4 RAM
> - 16GB eMMC
> - HDMI 2.1 video
> - S/PDIF optical output
> - AV output
> - 10/100 Ethernet
> - AP6255 Wireless (802.11 a/b/g/n/ac, BT 4.2)
> - 2x USB 2.0 ports (1x OTG)
> - IR receiver (internal)
> - IR extender port (external)
> - 1x micro SD card slot
> - 1x Power LED (red)
> - 1x Reset button (in AV jack)
> 
> Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
> ---
>   arch/arm64/boot/dts/amlogic/Makefile          |   7 +
>   .../dts/amlogic/meson-gxl-s905x-vero4k.dts    | 202 ++++++++++++++++++
>   2 files changed, 209 insertions(+)
>   create mode 100644 arch/arm64/boot/dts/amlogic/meson-gxl-s905x-vero4k.dts
> 
> diff --git a/arch/arm64/boot/dts/amlogic/Makefile b/arch/arm64/boot/dts/amlogic/Makefile
> index 4addcae2c54e..78941ddd3136 100644
> --- a/arch/arm64/boot/dts/amlogic/Makefile
> +++ b/arch/arm64/boot/dts/amlogic/Makefile
> @@ -55,6 +55,13 @@ dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905d-p231.dtb
>   dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905d-phicomm-n1.dtb
>   dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905d-sml5442tw.dtb
>   dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905d-vero4k-plus.dtb
> +dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-hwacom-amazetv.dtb
> +dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-khadas-vim.dtb
> +dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-libretech-cc.dtb
> +dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-libretech-cc-v2.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-gxl-s905x-vero4k.dtb
>   dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905w-jethome-jethub-j80.dtb
>   dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905w-p281.dtb
>   dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905w-tx3-mini.dtb
> diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-vero4k.dts b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-vero4k.dts
> new file mode 100644
> index 000000000000..b325cd75a792
> --- /dev/null
> +++ b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-vero4k.dts
> @@ -0,0 +1,202 @@
> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> +/*
> + * Copyright (c) 2024 Christian Hewitt <christianshewitt@gmail.com>
> + */
> +
> +/dts-v1/;
> +
> +#include "meson-gxl-s905x-p212.dtsi"
> +#include <dt-bindings/input/input.h>
> +#include <dt-bindings/leds/common.h>
> +#include <dt-bindings/sound/meson-aiu.h>
> +
> +/ {
> +	compatible = "osmc,vero4k", "amlogic,s905x", "amlogic,meson-gxl";
> +	model = "OSMC Vero 4K";
> +
> +	reserved-memory {
> +		/* 32 MiB reserved for ARM Trusted Firmware (BL32) */
> +		secmon_reserved_bl32: secmon@5300000 {
> +			reg = <0x0 0x05300000 0x0 0x2000000>;
> +			no-map;
> +		};
> +	};
> +
> +	gpio-keys-polled {
> +		compatible = "gpio-keys-polled";
> +		poll-interval = <20>;
> +
> +		button {
> +			label = "power";
> +			linux,code = <KEY_POWER>;
> +			gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_HIGH>;
> +		};
> +	};
> +
> +	leds {
> +		compatible = "gpio-leds";
> +
> +		led-standby {
> +			color = <LED_COLOR_ID_RED>;
> +			function = LED_FUNCTION_POWER;
> +			gpios = <&gpio GPIODV_24 GPIO_ACTIVE_LOW>;
> +			default-state = "off";
> +			panic-indicator;
> +		};
> +	};
> +
> +	dio2133: analog-amplifier {
> +		compatible = "simple-audio-amplifier";
> +		sound-name-prefix = "AU2";
> +		VCC-supply = <&hdmi_5v>;
> +		enable-gpios = <&gpio GPIOH_5 GPIO_ACTIVE_HIGH>;
> +	};
> +
> +	spdif_dit: audio-codec-0 {
> +		#sound-dai-cells = <0>;
> +		compatible = "linux,spdif-dit";
> +		sound-name-prefix = "DIT";
> +	};
> +
> +	cvbs-connector {
> +		compatible = "composite-video-connector";
> +
> +		port {
> +			cvbs_connector_in: endpoint {
> +				remote-endpoint = <&cvbs_vdac_out>;
> +			};
> +		};
> +	};
> +
> +	hdmi-connector {
> +		compatible = "hdmi-connector";
> +		type = "a";
> +
> +		port {
> +			hdmi_connector_in: endpoint {
> +				remote-endpoint = <&hdmi_tx_tmds_out>;
> +			};
> +		};
> +	};
> +
> +	sound {
> +		compatible = "amlogic,gx-sound-card";
> +		model = "VERO4K";
> +		audio-aux-devs = <&dio2133>;
> +		audio-widgets = "Line", "Lineout";
> +		audio-routing = "AU2 INL", "ACODEC LOLP",
> +				"AU2 INR", "ACODEC LORP",
> +				"AU2 INL", "ACODEC LOLN",
> +				"AU2 INR", "ACODEC LORN",
> +				"Lineout", "AU2 OUTL",
> +				"Lineout", "AU2 OUTR";
> +
> +		dai-link-0 {
> +			sound-dai = <&aiu AIU_CPU CPU_I2S_FIFO>;
> +		};
> +
> +		dai-link-1 {
> +			sound-dai = <&aiu AIU_CPU CPU_SPDIF_FIFO>;
> +		};
> +
> +		dai-link-2 {
> +			sound-dai = <&aiu AIU_CPU CPU_I2S_ENCODER>;
> +			dai-format = "i2s";
> +			mclk-fs = <256>;
> +
> +			codec-0 {
> +				sound-dai = <&aiu AIU_HDMI CTRL_I2S>;
> +			};
> +
> +			codec-1 {
> +				sound-dai = <&aiu AIU_ACODEC CTRL_I2S>;
> +			};
> +		};
> +
> +		dai-link-3 {
> +			sound-dai = <&aiu AIU_CPU CPU_SPDIF_ENCODER>;
> +
> +			codec-0 {
> +				sound-dai = <&spdif_dit>;
> +			};
> +		};
> +
> +		dai-link-4 {
> +			sound-dai = <&aiu AIU_HDMI CTRL_OUT>;
> +
> +			codec-0 {
> +				sound-dai = <&hdmi_tx>;
> +			};
> +		};
> +
> +		dai-link-5 {
> +			sound-dai = <&aiu AIU_ACODEC CTRL_OUT>;
> +
> +			codec-0 {
> +				sound-dai = <&acodec>;
> +			};
> +		};
> +	};
> +};
> +
> +&acodec {
> +	AVDD-supply = <&vddio_ao18>;
> +	status = "okay";
> +};
> +
> +&aiu {
> +	status = "okay";
> +	pinctrl-0 = <&spdif_out_h_pins>;
> +	pinctrl-names = "default";
> +};
> +
> +&cec_AO {
> +	status = "okay";
> +	pinctrl-0 = <&ao_cec_pins>;
> +	pinctrl-names = "default";
> +	hdmi-phandle = <&hdmi_tx>;
> +};
> +
> +&clkc {
> +	assigned-clocks = <&clkc CLKID_MPLL0>,
> +			  <&clkc CLKID_MPLL1>,
> +			  <&clkc CLKID_MPLL2>;
> +	assigned-clock-parents = <0>, <0>, <0>;
> +	assigned-clock-rates = <294912000>,
> +			       <270950400>,
> +			       <393216000>;
> +};
> +
> +&cvbs_vdac_port {
> +	cvbs_vdac_out: endpoint {
> +		remote-endpoint = <&cvbs_connector_in>;
> +	};
> +};
> +
> +&ethmac {
> +	phy-mode = "rmii";
> +	phy-handle = <&internal_phy>;
> +};
> +
> +&hdmi_tx {
> +	status = "okay";
> +	pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>;
> +	pinctrl-names = "default";
> +	hdmi-supply = <&hdmi_5v>;
> +};
> +
> +&hdmi_tx_tmds_port {
> +	hdmi_tx_tmds_out: endpoint {
> +		remote-endpoint = <&hdmi_connector_in>;
> +	};
> +};
> +
> +&internal_phy {
> +	pinctrl-0 = <&eth_link_led_pins>, <&eth_act_led_pins>;
> +	pinctrl-names = "default";
> +};
> +
> +/* This UART is brought out to the DB9 connector */
> +&uart_AO {
> +	status = "okay";
> +};

Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Neil Armstrong June 19, 2024, 2:07 p.m. UTC | #2
On 07/06/2024 10:07, Neil Armstrong wrote:
> On 06/06/2024 11:54, Christian Hewitt wrote:
>> The OSMC Vero 4K device is based on the Amlogic S905X (P212)
>> reference design with the following specifications:
>>
>> - 2GB DDR4 RAM
>> - 16GB eMMC
>> - HDMI 2.1 video
>> - S/PDIF optical output
>> - AV output
>> - 10/100 Ethernet
>> - AP6255 Wireless (802.11 a/b/g/n/ac, BT 4.2)
>> - 2x USB 2.0 ports (1x OTG)
>> - IR receiver (internal)
>> - IR extender port (external)
>> - 1x micro SD card slot
>> - 1x Power LED (red)
>> - 1x Reset button (in AV jack)
>>
>> Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
>> ---
>>   arch/arm64/boot/dts/amlogic/Makefile          |   7 +
>>   .../dts/amlogic/meson-gxl-s905x-vero4k.dts    | 202 ++++++++++++++++++
>>   2 files changed, 209 insertions(+)
>>   create mode 100644 arch/arm64/boot/dts/amlogic/meson-gxl-s905x-vero4k.dts
>>
>> diff --git a/arch/arm64/boot/dts/amlogic/Makefile b/arch/arm64/boot/dts/amlogic/Makefile
>> index 4addcae2c54e..78941ddd3136 100644
>> --- a/arch/arm64/boot/dts/amlogic/Makefile
>> +++ b/arch/arm64/boot/dts/amlogic/Makefile
>> @@ -55,6 +55,13 @@ dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905d-p231.dtb
>>   dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905d-phicomm-n1.dtb
>>   dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905d-sml5442tw.dtb
>>   dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905d-vero4k-plus.dtb
>> +dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-hwacom-amazetv.dtb
>> +dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-khadas-vim.dtb
>> +dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-libretech-cc.dtb
>> +dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-libretech-cc-v2.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-gxl-s905x-vero4k.dtb
>>   dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905w-jethome-jethub-j80.dtb
>>   dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905w-p281.dtb
>>   dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905w-tx3-mini.dtb
>> diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-vero4k.dts b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-vero4k.dts
>> new file mode 100644
>> index 000000000000..b325cd75a792
>> --- /dev/null
>> +++ b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-vero4k.dts
>> @@ -0,0 +1,202 @@
>> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
>> +/*
>> + * Copyright (c) 2024 Christian Hewitt <christianshewitt@gmail.com>
>> + */
>> +
>> +/dts-v1/;
>> +
>> +#include "meson-gxl-s905x-p212.dtsi"
>> +#include <dt-bindings/input/input.h>
>> +#include <dt-bindings/leds/common.h>
>> +#include <dt-bindings/sound/meson-aiu.h>
>> +
>> +/ {
>> +    compatible = "osmc,vero4k", "amlogic,s905x", "amlogic,meson-gxl";
>> +    model = "OSMC Vero 4K";
>> +
>> +    reserved-memory {
>> +        /* 32 MiB reserved for ARM Trusted Firmware (BL32) */
>> +        secmon_reserved_bl32: secmon@5300000 {
>> +            reg = <0x0 0x05300000 0x0 0x2000000>;
>> +            no-map;
>> +        };
>> +    };
>> +
>> +    gpio-keys-polled {
>> +        compatible = "gpio-keys-polled";
>> +        poll-interval = <20>;
>> +
>> +        button {
>> +            label = "power";
>> +            linux,code = <KEY_POWER>;
>> +            gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_HIGH>;
>> +        };
>> +    };
>> +
>> +    leds {
>> +        compatible = "gpio-leds";
>> +
>> +        led-standby {
>> +            color = <LED_COLOR_ID_RED>;
>> +            function = LED_FUNCTION_POWER;
>> +            gpios = <&gpio GPIODV_24 GPIO_ACTIVE_LOW>;
>> +            default-state = "off";
>> +            panic-indicator;
>> +        };
>> +    };
>> +
>> +    dio2133: analog-amplifier {
>> +        compatible = "simple-audio-amplifier";
>> +        sound-name-prefix = "AU2";
>> +        VCC-supply = <&hdmi_5v>;
>> +        enable-gpios = <&gpio GPIOH_5 GPIO_ACTIVE_HIGH>;
>> +    };
>> +
>> +    spdif_dit: audio-codec-0 {
>> +        #sound-dai-cells = <0>;
>> +        compatible = "linux,spdif-dit";
>> +        sound-name-prefix = "DIT";
>> +    };
>> +
>> +    cvbs-connector {
>> +        compatible = "composite-video-connector";
>> +
>> +        port {
>> +            cvbs_connector_in: endpoint {
>> +                remote-endpoint = <&cvbs_vdac_out>;
>> +            };
>> +        };
>> +    };
>> +
>> +    hdmi-connector {
>> +        compatible = "hdmi-connector";
>> +        type = "a";
>> +
>> +        port {
>> +            hdmi_connector_in: endpoint {
>> +                remote-endpoint = <&hdmi_tx_tmds_out>;
>> +            };
>> +        };
>> +    };
>> +
>> +    sound {
>> +        compatible = "amlogic,gx-sound-card";
>> +        model = "VERO4K";
>> +        audio-aux-devs = <&dio2133>;
>> +        audio-widgets = "Line", "Lineout";
>> +        audio-routing = "AU2 INL", "ACODEC LOLP",
>> +                "AU2 INR", "ACODEC LORP",
>> +                "AU2 INL", "ACODEC LOLN",
>> +                "AU2 INR", "ACODEC LORN",
>> +                "Lineout", "AU2 OUTL",
>> +                "Lineout", "AU2 OUTR";
>> +
>> +        dai-link-0 {
>> +            sound-dai = <&aiu AIU_CPU CPU_I2S_FIFO>;
>> +        };
>> +
>> +        dai-link-1 {
>> +            sound-dai = <&aiu AIU_CPU CPU_SPDIF_FIFO>;
>> +        };
>> +
>> +        dai-link-2 {
>> +            sound-dai = <&aiu AIU_CPU CPU_I2S_ENCODER>;
>> +            dai-format = "i2s";
>> +            mclk-fs = <256>;
>> +
>> +            codec-0 {
>> +                sound-dai = <&aiu AIU_HDMI CTRL_I2S>;
>> +            };
>> +
>> +            codec-1 {
>> +                sound-dai = <&aiu AIU_ACODEC CTRL_I2S>;
>> +            };
>> +        };
>> +
>> +        dai-link-3 {
>> +            sound-dai = <&aiu AIU_CPU CPU_SPDIF_ENCODER>;
>> +
>> +            codec-0 {
>> +                sound-dai = <&spdif_dit>;
>> +            };
>> +        };
>> +
>> +        dai-link-4 {
>> +            sound-dai = <&aiu AIU_HDMI CTRL_OUT>;
>> +
>> +            codec-0 {
>> +                sound-dai = <&hdmi_tx>;
>> +            };
>> +        };
>> +
>> +        dai-link-5 {
>> +            sound-dai = <&aiu AIU_ACODEC CTRL_OUT>;
>> +
>> +            codec-0 {
>> +                sound-dai = <&acodec>;
>> +            };
>> +        };
>> +    };
>> +};
>> +
>> +&acodec {
>> +    AVDD-supply = <&vddio_ao18>;
>> +    status = "okay";
>> +};
>> +
>> +&aiu {
>> +    status = "okay";
>> +    pinctrl-0 = <&spdif_out_h_pins>;
>> +    pinctrl-names = "default";
>> +};
>> +
>> +&cec_AO {
>> +    status = "okay";
>> +    pinctrl-0 = <&ao_cec_pins>;
>> +    pinctrl-names = "default";
>> +    hdmi-phandle = <&hdmi_tx>;
>> +};
>> +
>> +&clkc {
>> +    assigned-clocks = <&clkc CLKID_MPLL0>,
>> +              <&clkc CLKID_MPLL1>,
>> +              <&clkc CLKID_MPLL2>;
>> +    assigned-clock-parents = <0>, <0>, <0>;
>> +    assigned-clock-rates = <294912000>,
>> +                   <270950400>,
>> +                   <393216000>;
>> +};
>> +
>> +&cvbs_vdac_port {
>> +    cvbs_vdac_out: endpoint {
>> +        remote-endpoint = <&cvbs_connector_in>;
>> +    };
>> +};
>> +
>> +&ethmac {
>> +    phy-mode = "rmii";
>> +    phy-handle = <&internal_phy>;
>> +};
>> +
>> +&hdmi_tx {
>> +    status = "okay";
>> +    pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>;
>> +    pinctrl-names = "default";
>> +    hdmi-supply = <&hdmi_5v>;
>> +};
>> +
>> +&hdmi_tx_tmds_port {
>> +    hdmi_tx_tmds_out: endpoint {
>> +        remote-endpoint = <&hdmi_connector_in>;
>> +    };
>> +};
>> +
>> +&internal_phy {
>> +    pinctrl-0 = <&eth_link_led_pins>, <&eth_act_led_pins>;
>> +    pinctrl-names = "default";
>> +};
>> +
>> +/* This UART is brought out to the DB9 connector */
>> +&uart_AO {
>> +    status = "okay";
>> +};
> 
> Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>


Same here, Can you resent but keeping the assigned-clocks in the sound card node ?

BTW keep the reviewed-by.

Thanks,
Neil
diff mbox series

Patch

diff --git a/arch/arm64/boot/dts/amlogic/Makefile b/arch/arm64/boot/dts/amlogic/Makefile
index 4addcae2c54e..78941ddd3136 100644
--- a/arch/arm64/boot/dts/amlogic/Makefile
+++ b/arch/arm64/boot/dts/amlogic/Makefile
@@ -55,6 +55,13 @@  dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905d-p231.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905d-phicomm-n1.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905d-sml5442tw.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905d-vero4k-plus.dtb
+dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-hwacom-amazetv.dtb
+dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-khadas-vim.dtb
+dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-libretech-cc.dtb
+dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-libretech-cc-v2.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-gxl-s905x-vero4k.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905w-jethome-jethub-j80.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905w-p281.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905w-tx3-mini.dtb
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-vero4k.dts b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-vero4k.dts
new file mode 100644
index 000000000000..b325cd75a792
--- /dev/null
+++ b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-vero4k.dts
@@ -0,0 +1,202 @@ 
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (c) 2024 Christian Hewitt <christianshewitt@gmail.com>
+ */
+
+/dts-v1/;
+
+#include "meson-gxl-s905x-p212.dtsi"
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/leds/common.h>
+#include <dt-bindings/sound/meson-aiu.h>
+
+/ {
+	compatible = "osmc,vero4k", "amlogic,s905x", "amlogic,meson-gxl";
+	model = "OSMC Vero 4K";
+
+	reserved-memory {
+		/* 32 MiB reserved for ARM Trusted Firmware (BL32) */
+		secmon_reserved_bl32: secmon@5300000 {
+			reg = <0x0 0x05300000 0x0 0x2000000>;
+			no-map;
+		};
+	};
+
+	gpio-keys-polled {
+		compatible = "gpio-keys-polled";
+		poll-interval = <20>;
+
+		button {
+			label = "power";
+			linux,code = <KEY_POWER>;
+			gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_HIGH>;
+		};
+	};
+
+	leds {
+		compatible = "gpio-leds";
+
+		led-standby {
+			color = <LED_COLOR_ID_RED>;
+			function = LED_FUNCTION_POWER;
+			gpios = <&gpio GPIODV_24 GPIO_ACTIVE_LOW>;
+			default-state = "off";
+			panic-indicator;
+		};
+	};
+
+	dio2133: analog-amplifier {
+		compatible = "simple-audio-amplifier";
+		sound-name-prefix = "AU2";
+		VCC-supply = <&hdmi_5v>;
+		enable-gpios = <&gpio GPIOH_5 GPIO_ACTIVE_HIGH>;
+	};
+
+	spdif_dit: audio-codec-0 {
+		#sound-dai-cells = <0>;
+		compatible = "linux,spdif-dit";
+		sound-name-prefix = "DIT";
+	};
+
+	cvbs-connector {
+		compatible = "composite-video-connector";
+
+		port {
+			cvbs_connector_in: endpoint {
+				remote-endpoint = <&cvbs_vdac_out>;
+			};
+		};
+	};
+
+	hdmi-connector {
+		compatible = "hdmi-connector";
+		type = "a";
+
+		port {
+			hdmi_connector_in: endpoint {
+				remote-endpoint = <&hdmi_tx_tmds_out>;
+			};
+		};
+	};
+
+	sound {
+		compatible = "amlogic,gx-sound-card";
+		model = "VERO4K";
+		audio-aux-devs = <&dio2133>;
+		audio-widgets = "Line", "Lineout";
+		audio-routing = "AU2 INL", "ACODEC LOLP",
+				"AU2 INR", "ACODEC LORP",
+				"AU2 INL", "ACODEC LOLN",
+				"AU2 INR", "ACODEC LORN",
+				"Lineout", "AU2 OUTL",
+				"Lineout", "AU2 OUTR";
+
+		dai-link-0 {
+			sound-dai = <&aiu AIU_CPU CPU_I2S_FIFO>;
+		};
+
+		dai-link-1 {
+			sound-dai = <&aiu AIU_CPU CPU_SPDIF_FIFO>;
+		};
+
+		dai-link-2 {
+			sound-dai = <&aiu AIU_CPU CPU_I2S_ENCODER>;
+			dai-format = "i2s";
+			mclk-fs = <256>;
+
+			codec-0 {
+				sound-dai = <&aiu AIU_HDMI CTRL_I2S>;
+			};
+
+			codec-1 {
+				sound-dai = <&aiu AIU_ACODEC CTRL_I2S>;
+			};
+		};
+
+		dai-link-3 {
+			sound-dai = <&aiu AIU_CPU CPU_SPDIF_ENCODER>;
+
+			codec-0 {
+				sound-dai = <&spdif_dit>;
+			};
+		};
+
+		dai-link-4 {
+			sound-dai = <&aiu AIU_HDMI CTRL_OUT>;
+
+			codec-0 {
+				sound-dai = <&hdmi_tx>;
+			};
+		};
+
+		dai-link-5 {
+			sound-dai = <&aiu AIU_ACODEC CTRL_OUT>;
+
+			codec-0 {
+				sound-dai = <&acodec>;
+			};
+		};
+	};
+};
+
+&acodec {
+	AVDD-supply = <&vddio_ao18>;
+	status = "okay";
+};
+
+&aiu {
+	status = "okay";
+	pinctrl-0 = <&spdif_out_h_pins>;
+	pinctrl-names = "default";
+};
+
+&cec_AO {
+	status = "okay";
+	pinctrl-0 = <&ao_cec_pins>;
+	pinctrl-names = "default";
+	hdmi-phandle = <&hdmi_tx>;
+};
+
+&clkc {
+	assigned-clocks = <&clkc CLKID_MPLL0>,
+			  <&clkc CLKID_MPLL1>,
+			  <&clkc CLKID_MPLL2>;
+	assigned-clock-parents = <0>, <0>, <0>;
+	assigned-clock-rates = <294912000>,
+			       <270950400>,
+			       <393216000>;
+};
+
+&cvbs_vdac_port {
+	cvbs_vdac_out: endpoint {
+		remote-endpoint = <&cvbs_connector_in>;
+	};
+};
+
+&ethmac {
+	phy-mode = "rmii";
+	phy-handle = <&internal_phy>;
+};
+
+&hdmi_tx {
+	status = "okay";
+	pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>;
+	pinctrl-names = "default";
+	hdmi-supply = <&hdmi_5v>;
+};
+
+&hdmi_tx_tmds_port {
+	hdmi_tx_tmds_out: endpoint {
+		remote-endpoint = <&hdmi_connector_in>;
+	};
+};
+
+&internal_phy {
+	pinctrl-0 = <&eth_link_led_pins>, <&eth_act_led_pins>;
+	pinctrl-names = "default";
+};
+
+/* This UART is brought out to the DB9 connector */
+&uart_AO {
+	status = "okay";
+};