1114abfe1SNeil Armstrong// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2f51b4545SNeil Armstrong/* 3f51b4545SNeil Armstrong * Copyright (c) 2016 BayLibre, SAS. 4f51b4545SNeil Armstrong * Author: Neil Armstrong <narmstrong@baylibre.com> 5f51b4545SNeil Armstrong * 6f51b4545SNeil Armstrong * Copyright (c) 2016 Endless Computers, Inc. 7f51b4545SNeil Armstrong * Author: Carlo Caione <carlo@endlessm.com> 8f51b4545SNeil Armstrong */ 9f51b4545SNeil Armstrong 10f51b4545SNeil Armstrong/dts-v1/; 11f51b4545SNeil Armstrong 12f51b4545SNeil Armstrong#include "meson-gxm.dtsi" 13c7f5675bSChristian Hewitt#include <dt-bindings/sound/meson-aiu.h> 14f51b4545SNeil Armstrong 15f51b4545SNeil Armstrong/ { 16f51b4545SNeil Armstrong compatible = "nexbox,a1", "amlogic,s912", "amlogic,meson-gxm"; 17f51b4545SNeil Armstrong model = "NEXBOX A1"; 18f51b4545SNeil Armstrong 19f51b4545SNeil Armstrong aliases { 20f51b4545SNeil Armstrong serial0 = &uart_AO; 21059a58fcSJorge Ramirez-Ortiz ethernet0 = ðmac; 22f51b4545SNeil Armstrong }; 23f51b4545SNeil Armstrong 24f51b4545SNeil Armstrong chosen { 25f51b4545SNeil Armstrong stdout-path = "serial0:115200n8"; 26f51b4545SNeil Armstrong }; 27f51b4545SNeil Armstrong 28c7f5675bSChristian Hewitt spdif_dit: audio-codec-0 { 29c7f5675bSChristian Hewitt #sound-dai-cells = <0>; 30c7f5675bSChristian Hewitt compatible = "linux,spdif-dit"; 31c7f5675bSChristian Hewitt sound-name-prefix = "DIT"; 32c7f5675bSChristian Hewitt }; 33c7f5675bSChristian Hewitt 34f51b4545SNeil Armstrong memory@0 { 35f51b4545SNeil Armstrong device_type = "memory"; 36f51b4545SNeil Armstrong reg = <0x0 0x0 0x0 0x80000000>; 37f51b4545SNeil Armstrong }; 38f51b4545SNeil Armstrong 39f51b4545SNeil Armstrong vddio_boot: regulator-vddio-boot { 40f51b4545SNeil Armstrong compatible = "regulator-fixed"; 41f51b4545SNeil Armstrong regulator-name = "VDDIO_BOOT"; 42f51b4545SNeil Armstrong regulator-min-microvolt = <1800000>; 43f51b4545SNeil Armstrong regulator-max-microvolt = <1800000>; 44f51b4545SNeil Armstrong }; 45f51b4545SNeil Armstrong 46f51b4545SNeil Armstrong vddao_3v3: regulator-vddao-3v3 { 47f51b4545SNeil Armstrong compatible = "regulator-fixed"; 48f51b4545SNeil Armstrong regulator-name = "VDDAO_3V3"; 49f51b4545SNeil Armstrong regulator-min-microvolt = <3300000>; 50f51b4545SNeil Armstrong regulator-max-microvolt = <3300000>; 51f51b4545SNeil Armstrong }; 52f51b4545SNeil Armstrong 53f51b4545SNeil Armstrong vcc_3v3: regulator-vcc-3v3 { 54f51b4545SNeil Armstrong compatible = "regulator-fixed"; 55f51b4545SNeil Armstrong regulator-name = "VCC_3V3"; 56f51b4545SNeil Armstrong regulator-min-microvolt = <3300000>; 57f51b4545SNeil Armstrong regulator-max-microvolt = <3300000>; 58f51b4545SNeil Armstrong }; 59f51b4545SNeil Armstrong 60f51b4545SNeil Armstrong emmc_pwrseq: emmc-pwrseq { 61f51b4545SNeil Armstrong compatible = "mmc-pwrseq-emmc"; 62f51b4545SNeil Armstrong reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>; 63f51b4545SNeil Armstrong }; 64fafdbdf7SNeil Armstrong 65fafdbdf7SNeil Armstrong cvbs-connector { 66fafdbdf7SNeil Armstrong compatible = "composite-video-connector"; 67fafdbdf7SNeil Armstrong 68fafdbdf7SNeil Armstrong port { 69fafdbdf7SNeil Armstrong cvbs_connector_in: endpoint { 70fafdbdf7SNeil Armstrong remote-endpoint = <&cvbs_vdac_out>; 71fafdbdf7SNeil Armstrong }; 72fafdbdf7SNeil Armstrong }; 73fafdbdf7SNeil Armstrong }; 746939db7eSNeil Armstrong 756939db7eSNeil Armstrong hdmi-connector { 766939db7eSNeil Armstrong compatible = "hdmi-connector"; 776939db7eSNeil Armstrong type = "a"; 786939db7eSNeil Armstrong 796939db7eSNeil Armstrong port { 806939db7eSNeil Armstrong hdmi_connector_in: endpoint { 816939db7eSNeil Armstrong remote-endpoint = <&hdmi_tx_tmds_out>; 826939db7eSNeil Armstrong }; 836939db7eSNeil Armstrong }; 846939db7eSNeil Armstrong }; 85c7f5675bSChristian Hewitt 86c7f5675bSChristian Hewitt sound { 87c7f5675bSChristian Hewitt compatible = "amlogic,gx-sound-card"; 88c7f5675bSChristian Hewitt model = "NEXBOX-A1"; 89*9b5d2511SNeil Armstrong clocks = <&clkc CLKID_MPLL0>, 90*9b5d2511SNeil Armstrong <&clkc CLKID_MPLL1>, 91*9b5d2511SNeil Armstrong <&clkc CLKID_MPLL2>; 92*9b5d2511SNeil Armstrong 93c7f5675bSChristian Hewitt assigned-clocks = <&clkc CLKID_MPLL0>, 94c7f5675bSChristian Hewitt <&clkc CLKID_MPLL1>, 95c7f5675bSChristian Hewitt <&clkc CLKID_MPLL2>; 96c7f5675bSChristian Hewitt assigned-clock-parents = <0>, <0>, <0>; 97c7f5675bSChristian Hewitt assigned-clock-rates = <294912000>, 98c7f5675bSChristian Hewitt <270950400>, 99c7f5675bSChristian Hewitt <393216000>; 100c7f5675bSChristian Hewitt 101c7f5675bSChristian Hewitt dai-link-0 { 102c7f5675bSChristian Hewitt sound-dai = <&aiu AIU_CPU CPU_I2S_FIFO>; 103c7f5675bSChristian Hewitt }; 104c7f5675bSChristian Hewitt 105c7f5675bSChristian Hewitt dai-link-1 { 106c7f5675bSChristian Hewitt sound-dai = <&aiu AIU_CPU CPU_SPDIF_FIFO>; 107c7f5675bSChristian Hewitt }; 108c7f5675bSChristian Hewitt 109c7f5675bSChristian Hewitt dai-link-2 { 110c7f5675bSChristian Hewitt sound-dai = <&aiu AIU_CPU CPU_I2S_ENCODER>; 111c7f5675bSChristian Hewitt dai-format = "i2s"; 112c7f5675bSChristian Hewitt mclk-fs = <256>; 113c7f5675bSChristian Hewitt 114c7f5675bSChristian Hewitt codec-0 { 115c7f5675bSChristian Hewitt sound-dai = <&aiu AIU_HDMI CTRL_I2S>; 116c7f5675bSChristian Hewitt }; 117c7f5675bSChristian Hewitt }; 118c7f5675bSChristian Hewitt 119c7f5675bSChristian Hewitt dai-link-3 { 120c7f5675bSChristian Hewitt sound-dai = <&aiu AIU_CPU CPU_SPDIF_ENCODER>; 121c7f5675bSChristian Hewitt 122c7f5675bSChristian Hewitt codec-0 { 123c7f5675bSChristian Hewitt sound-dai = <&spdif_dit>; 124c7f5675bSChristian Hewitt }; 125c7f5675bSChristian Hewitt }; 126c7f5675bSChristian Hewitt 127c7f5675bSChristian Hewitt dai-link-4 { 128c7f5675bSChristian Hewitt sound-dai = <&aiu AIU_HDMI CTRL_OUT>; 129c7f5675bSChristian Hewitt 130c7f5675bSChristian Hewitt codec-0 { 131c7f5675bSChristian Hewitt sound-dai = <&hdmi_tx>; 132c7f5675bSChristian Hewitt }; 133c7f5675bSChristian Hewitt }; 134c7f5675bSChristian Hewitt }; 135c7f5675bSChristian Hewitt}; 136c7f5675bSChristian Hewitt 137c7f5675bSChristian Hewitt&aiu { 138c7f5675bSChristian Hewitt status = "okay"; 139c7f5675bSChristian Hewitt pinctrl-0 = <&spdif_out_h_pins>; 140c7f5675bSChristian Hewitt pinctrl-names = "default"; 141f51b4545SNeil Armstrong}; 142f51b4545SNeil Armstrong 143b16c71c9SNeil Armstrong&cec_AO { 144b16c71c9SNeil Armstrong status = "okay"; 145b16c71c9SNeil Armstrong pinctrl-0 = <&ao_cec_pins>; 146b16c71c9SNeil Armstrong pinctrl-names = "default"; 147b16c71c9SNeil Armstrong hdmi-phandle = <&hdmi_tx>; 148b16c71c9SNeil Armstrong}; 149b16c71c9SNeil Armstrong 150a5e27015SAndreas Färber&cvbs_vdac_port { 151a5e27015SAndreas Färber cvbs_vdac_out: endpoint { 152a5e27015SAndreas Färber remote-endpoint = <&cvbs_connector_in>; 153a5e27015SAndreas Färber }; 154a5e27015SAndreas Färber}; 155a5e27015SAndreas Färber 156a5e27015SAndreas Färberðmac { 157f51b4545SNeil Armstrong status = "okay"; 158a5e27015SAndreas Färber 159a5e27015SAndreas Färber pinctrl-0 = <ð_pins>; 160f51b4545SNeil Armstrong pinctrl-names = "default"; 161a5e27015SAndreas Färber 162a5e27015SAndreas Färber /* Select external PHY by default */ 163a5e27015SAndreas Färber phy-handle = <&external_phy>; 164a5e27015SAndreas Färber 165a5e27015SAndreas Färber amlogic,tx-delay-ns = <2>; 166a5e27015SAndreas Färber 167a5e27015SAndreas Färber /* External PHY is in RGMII */ 168a5e27015SAndreas Färber phy-mode = "rgmii"; 169a5e27015SAndreas Färber}; 170a5e27015SAndreas Färber 171a5e27015SAndreas Färber&external_mdio { 172a5e27015SAndreas Färber external_phy: ethernet-phy@0 { 173890265c9SMartin Blumenstingl /* Realtek RTL8211F (0x001cc916) */ 174a5e27015SAndreas Färber reg = <0>; 175a5e27015SAndreas Färber max-speed = <1000>; 176f29cabf2SMartin Blumenstingl 177f29cabf2SMartin Blumenstingl reset-assert-us = <10000>; 178c183c406SStefan Agner reset-deassert-us = <80000>; 179f29cabf2SMartin Blumenstingl reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>; 180a5e27015SAndreas Färber }; 181a5e27015SAndreas Färber}; 182a5e27015SAndreas Färber 183a5e27015SAndreas Färber&hdmi_tx { 184a5e27015SAndreas Färber status = "okay"; 185a5e27015SAndreas Färber pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>; 186a5e27015SAndreas Färber pinctrl-names = "default"; 187a5e27015SAndreas Färber}; 188a5e27015SAndreas Färber 189a5e27015SAndreas Färber&hdmi_tx_tmds_port { 190a5e27015SAndreas Färber hdmi_tx_tmds_out: endpoint { 191a5e27015SAndreas Färber remote-endpoint = <&hdmi_connector_in>; 192a5e27015SAndreas Färber }; 193f51b4545SNeil Armstrong}; 194f51b4545SNeil Armstrong 195f51b4545SNeil Armstrong&ir { 196f51b4545SNeil Armstrong status = "okay"; 197f51b4545SNeil Armstrong pinctrl-0 = <&remote_input_ao_pins>; 198f51b4545SNeil Armstrong pinctrl-names = "default"; 199f51b4545SNeil Armstrong}; 200f51b4545SNeil Armstrong 201f51b4545SNeil Armstrong/* SD card */ 202f51b4545SNeil Armstrong&sd_emmc_b { 203f51b4545SNeil Armstrong status = "okay"; 204f51b4545SNeil Armstrong pinctrl-0 = <&sdcard_pins>; 20567e7607fSJerome Brunet pinctrl-1 = <&sdcard_clk_gate_pins>; 20667e7607fSJerome Brunet pinctrl-names = "default", "clk-gate"; 207f51b4545SNeil Armstrong 208f51b4545SNeil Armstrong bus-width = <4>; 209f51b4545SNeil Armstrong cap-sd-highspeed; 210adc52bf7SJerome Brunet max-frequency = <50000000>; 211f51b4545SNeil Armstrong disable-wp; 212f51b4545SNeil Armstrong 213f29200c8SLoys Ollivier cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_LOW>; 214f51b4545SNeil Armstrong 215f51b4545SNeil Armstrong vmmc-supply = <&vddao_3v3>; 216f51b4545SNeil Armstrong vqmmc-supply = <&vddio_boot>; 217f51b4545SNeil Armstrong}; 218f51b4545SNeil Armstrong 219f51b4545SNeil Armstrong/* eMMC */ 220f51b4545SNeil Armstrong&sd_emmc_c { 221f51b4545SNeil Armstrong status = "okay"; 222ab36be66SNeil Armstrong pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>; 22367e7607fSJerome Brunet pinctrl-1 = <&emmc_clk_gate_pins>; 22467e7607fSJerome Brunet pinctrl-names = "default", "clk-gate"; 225f51b4545SNeil Armstrong 226f51b4545SNeil Armstrong bus-width = <8>; 227f51b4545SNeil Armstrong cap-mmc-highspeed; 228f51b4545SNeil Armstrong max-frequency = <200000000>; 229f51b4545SNeil Armstrong non-removable; 230f51b4545SNeil Armstrong disable-wp; 231f51b4545SNeil Armstrong mmc-ddr-1_8v; 232f51b4545SNeil Armstrong mmc-hs200-1_8v; 233f51b4545SNeil Armstrong 234f51b4545SNeil Armstrong mmc-pwrseq = <&emmc_pwrseq>; 235f51b4545SNeil Armstrong vmmc-supply = <&vcc_3v3>; 236f51b4545SNeil Armstrong vqmmc-supply = <&vddio_boot>; 237f51b4545SNeil Armstrong}; 238f51b4545SNeil Armstrong 239a5e27015SAndreas Färber&uart_AO { 240f51b4545SNeil Armstrong status = "okay"; 241a5e27015SAndreas Färber pinctrl-0 = <&uart_ao_a_pins>; 242f51b4545SNeil Armstrong pinctrl-names = "default"; 2436939db7eSNeil Armstrong}; 244e5e4df2dSNeil Armstrong 2452f9139c2SMartin Blumenstingl&usb { 246e5e4df2dSNeil Armstrong status = "okay"; 2472f9139c2SMartin Blumenstingl dr_mode = "host"; 248e5e4df2dSNeil Armstrong}; 249