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" 13*c7f5675bSChristian 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 28*c7f5675bSChristian Hewitt spdif_dit: audio-codec-0 { 29*c7f5675bSChristian Hewitt #sound-dai-cells = <0>; 30*c7f5675bSChristian Hewitt compatible = "linux,spdif-dit"; 31*c7f5675bSChristian Hewitt status = "okay"; 32*c7f5675bSChristian Hewitt sound-name-prefix = "DIT"; 33*c7f5675bSChristian Hewitt }; 34*c7f5675bSChristian Hewitt 35f51b4545SNeil Armstrong memory@0 { 36f51b4545SNeil Armstrong device_type = "memory"; 37f51b4545SNeil Armstrong reg = <0x0 0x0 0x0 0x80000000>; 38f51b4545SNeil Armstrong }; 39f51b4545SNeil Armstrong 40f51b4545SNeil Armstrong vddio_boot: regulator-vddio-boot { 41f51b4545SNeil Armstrong compatible = "regulator-fixed"; 42f51b4545SNeil Armstrong regulator-name = "VDDIO_BOOT"; 43f51b4545SNeil Armstrong regulator-min-microvolt = <1800000>; 44f51b4545SNeil Armstrong regulator-max-microvolt = <1800000>; 45f51b4545SNeil Armstrong }; 46f51b4545SNeil Armstrong 47f51b4545SNeil Armstrong vddao_3v3: regulator-vddao-3v3 { 48f51b4545SNeil Armstrong compatible = "regulator-fixed"; 49f51b4545SNeil Armstrong regulator-name = "VDDAO_3V3"; 50f51b4545SNeil Armstrong regulator-min-microvolt = <3300000>; 51f51b4545SNeil Armstrong regulator-max-microvolt = <3300000>; 52f51b4545SNeil Armstrong }; 53f51b4545SNeil Armstrong 54f51b4545SNeil Armstrong vcc_3v3: regulator-vcc-3v3 { 55f51b4545SNeil Armstrong compatible = "regulator-fixed"; 56f51b4545SNeil Armstrong regulator-name = "VCC_3V3"; 57f51b4545SNeil Armstrong regulator-min-microvolt = <3300000>; 58f51b4545SNeil Armstrong regulator-max-microvolt = <3300000>; 59f51b4545SNeil Armstrong }; 60f51b4545SNeil Armstrong 61f51b4545SNeil Armstrong emmc_pwrseq: emmc-pwrseq { 62f51b4545SNeil Armstrong compatible = "mmc-pwrseq-emmc"; 63f51b4545SNeil Armstrong reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>; 64f51b4545SNeil Armstrong }; 65fafdbdf7SNeil Armstrong 66fafdbdf7SNeil Armstrong cvbs-connector { 67fafdbdf7SNeil Armstrong compatible = "composite-video-connector"; 68fafdbdf7SNeil Armstrong 69fafdbdf7SNeil Armstrong port { 70fafdbdf7SNeil Armstrong cvbs_connector_in: endpoint { 71fafdbdf7SNeil Armstrong remote-endpoint = <&cvbs_vdac_out>; 72fafdbdf7SNeil Armstrong }; 73fafdbdf7SNeil Armstrong }; 74fafdbdf7SNeil Armstrong }; 756939db7eSNeil Armstrong 766939db7eSNeil Armstrong hdmi-connector { 776939db7eSNeil Armstrong compatible = "hdmi-connector"; 786939db7eSNeil Armstrong type = "a"; 796939db7eSNeil Armstrong 806939db7eSNeil Armstrong port { 816939db7eSNeil Armstrong hdmi_connector_in: endpoint { 826939db7eSNeil Armstrong remote-endpoint = <&hdmi_tx_tmds_out>; 836939db7eSNeil Armstrong }; 846939db7eSNeil Armstrong }; 856939db7eSNeil Armstrong }; 86*c7f5675bSChristian Hewitt 87*c7f5675bSChristian Hewitt sound { 88*c7f5675bSChristian Hewitt compatible = "amlogic,gx-sound-card"; 89*c7f5675bSChristian Hewitt model = "NEXBOX-A1"; 90*c7f5675bSChristian Hewitt assigned-clocks = <&clkc CLKID_MPLL0>, 91*c7f5675bSChristian Hewitt <&clkc CLKID_MPLL1>, 92*c7f5675bSChristian Hewitt <&clkc CLKID_MPLL2>; 93*c7f5675bSChristian Hewitt assigned-clock-parents = <0>, <0>, <0>; 94*c7f5675bSChristian Hewitt assigned-clock-rates = <294912000>, 95*c7f5675bSChristian Hewitt <270950400>, 96*c7f5675bSChristian Hewitt <393216000>; 97*c7f5675bSChristian Hewitt 98*c7f5675bSChristian Hewitt dai-link-0 { 99*c7f5675bSChristian Hewitt sound-dai = <&aiu AIU_CPU CPU_I2S_FIFO>; 100*c7f5675bSChristian Hewitt }; 101*c7f5675bSChristian Hewitt 102*c7f5675bSChristian Hewitt dai-link-1 { 103*c7f5675bSChristian Hewitt sound-dai = <&aiu AIU_CPU CPU_SPDIF_FIFO>; 104*c7f5675bSChristian Hewitt }; 105*c7f5675bSChristian Hewitt 106*c7f5675bSChristian Hewitt dai-link-2 { 107*c7f5675bSChristian Hewitt sound-dai = <&aiu AIU_CPU CPU_I2S_ENCODER>; 108*c7f5675bSChristian Hewitt dai-format = "i2s"; 109*c7f5675bSChristian Hewitt mclk-fs = <256>; 110*c7f5675bSChristian Hewitt 111*c7f5675bSChristian Hewitt codec-0 { 112*c7f5675bSChristian Hewitt sound-dai = <&aiu AIU_HDMI CTRL_I2S>; 113*c7f5675bSChristian Hewitt }; 114*c7f5675bSChristian Hewitt }; 115*c7f5675bSChristian Hewitt 116*c7f5675bSChristian Hewitt dai-link-3 { 117*c7f5675bSChristian Hewitt sound-dai = <&aiu AIU_CPU CPU_SPDIF_ENCODER>; 118*c7f5675bSChristian Hewitt 119*c7f5675bSChristian Hewitt codec-0 { 120*c7f5675bSChristian Hewitt sound-dai = <&spdif_dit>; 121*c7f5675bSChristian Hewitt }; 122*c7f5675bSChristian Hewitt }; 123*c7f5675bSChristian Hewitt 124*c7f5675bSChristian Hewitt dai-link-4 { 125*c7f5675bSChristian Hewitt sound-dai = <&aiu AIU_HDMI CTRL_OUT>; 126*c7f5675bSChristian Hewitt 127*c7f5675bSChristian Hewitt codec-0 { 128*c7f5675bSChristian Hewitt sound-dai = <&hdmi_tx>; 129*c7f5675bSChristian Hewitt }; 130*c7f5675bSChristian Hewitt }; 131*c7f5675bSChristian Hewitt }; 132*c7f5675bSChristian Hewitt}; 133*c7f5675bSChristian Hewitt 134*c7f5675bSChristian Hewitt&aiu { 135*c7f5675bSChristian Hewitt status = "okay"; 136*c7f5675bSChristian Hewitt pinctrl-0 = <&spdif_out_h_pins>; 137*c7f5675bSChristian Hewitt pinctrl-names = "default"; 138f51b4545SNeil Armstrong}; 139f51b4545SNeil Armstrong 140b16c71c9SNeil Armstrong&cec_AO { 141b16c71c9SNeil Armstrong status = "okay"; 142b16c71c9SNeil Armstrong pinctrl-0 = <&ao_cec_pins>; 143b16c71c9SNeil Armstrong pinctrl-names = "default"; 144b16c71c9SNeil Armstrong hdmi-phandle = <&hdmi_tx>; 145b16c71c9SNeil Armstrong}; 146b16c71c9SNeil Armstrong 147a5e27015SAndreas Färber&cvbs_vdac_port { 148a5e27015SAndreas Färber cvbs_vdac_out: endpoint { 149a5e27015SAndreas Färber remote-endpoint = <&cvbs_connector_in>; 150a5e27015SAndreas Färber }; 151a5e27015SAndreas Färber}; 152a5e27015SAndreas Färber 153a5e27015SAndreas Färberðmac { 154f51b4545SNeil Armstrong status = "okay"; 155a5e27015SAndreas Färber 156a5e27015SAndreas Färber pinctrl-0 = <ð_pins>; 157f51b4545SNeil Armstrong pinctrl-names = "default"; 158a5e27015SAndreas Färber 159a5e27015SAndreas Färber /* Select external PHY by default */ 160a5e27015SAndreas Färber phy-handle = <&external_phy>; 161a5e27015SAndreas Färber 162a5e27015SAndreas Färber amlogic,tx-delay-ns = <2>; 163a5e27015SAndreas Färber 164a5e27015SAndreas Färber /* External PHY is in RGMII */ 165a5e27015SAndreas Färber phy-mode = "rgmii"; 166a5e27015SAndreas Färber}; 167a5e27015SAndreas Färber 168a5e27015SAndreas Färber&external_mdio { 169a5e27015SAndreas Färber external_phy: ethernet-phy@0 { 170890265c9SMartin Blumenstingl /* Realtek RTL8211F (0x001cc916) */ 171a5e27015SAndreas Färber reg = <0>; 172a5e27015SAndreas Färber max-speed = <1000>; 173f29cabf2SMartin Blumenstingl 174f29cabf2SMartin Blumenstingl reset-assert-us = <10000>; 175c183c406SStefan Agner reset-deassert-us = <80000>; 176f29cabf2SMartin Blumenstingl reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>; 177a5e27015SAndreas Färber }; 178a5e27015SAndreas Färber}; 179a5e27015SAndreas Färber 180a5e27015SAndreas Färber&hdmi_tx { 181a5e27015SAndreas Färber status = "okay"; 182a5e27015SAndreas Färber pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>; 183a5e27015SAndreas Färber pinctrl-names = "default"; 184a5e27015SAndreas Färber}; 185a5e27015SAndreas Färber 186a5e27015SAndreas Färber&hdmi_tx_tmds_port { 187a5e27015SAndreas Färber hdmi_tx_tmds_out: endpoint { 188a5e27015SAndreas Färber remote-endpoint = <&hdmi_connector_in>; 189a5e27015SAndreas Färber }; 190f51b4545SNeil Armstrong}; 191f51b4545SNeil Armstrong 192f51b4545SNeil Armstrong&ir { 193f51b4545SNeil Armstrong status = "okay"; 194f51b4545SNeil Armstrong pinctrl-0 = <&remote_input_ao_pins>; 195f51b4545SNeil Armstrong pinctrl-names = "default"; 196f51b4545SNeil Armstrong}; 197f51b4545SNeil Armstrong 198f51b4545SNeil Armstrong/* SD card */ 199f51b4545SNeil Armstrong&sd_emmc_b { 200f51b4545SNeil Armstrong status = "okay"; 201f51b4545SNeil Armstrong pinctrl-0 = <&sdcard_pins>; 20267e7607fSJerome Brunet pinctrl-1 = <&sdcard_clk_gate_pins>; 20367e7607fSJerome Brunet pinctrl-names = "default", "clk-gate"; 204f51b4545SNeil Armstrong 205f51b4545SNeil Armstrong bus-width = <4>; 206f51b4545SNeil Armstrong cap-sd-highspeed; 207adc52bf7SJerome Brunet max-frequency = <50000000>; 208f51b4545SNeil Armstrong disable-wp; 209f51b4545SNeil Armstrong 210f29200c8SLoys Ollivier cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_LOW>; 211f51b4545SNeil Armstrong 212f51b4545SNeil Armstrong vmmc-supply = <&vddao_3v3>; 213f51b4545SNeil Armstrong vqmmc-supply = <&vddio_boot>; 214f51b4545SNeil Armstrong}; 215f51b4545SNeil Armstrong 216f51b4545SNeil Armstrong/* eMMC */ 217f51b4545SNeil Armstrong&sd_emmc_c { 218f51b4545SNeil Armstrong status = "okay"; 219ab36be66SNeil Armstrong pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>; 22067e7607fSJerome Brunet pinctrl-1 = <&emmc_clk_gate_pins>; 22167e7607fSJerome Brunet pinctrl-names = "default", "clk-gate"; 222f51b4545SNeil Armstrong 223f51b4545SNeil Armstrong bus-width = <8>; 224f51b4545SNeil Armstrong cap-mmc-highspeed; 225f51b4545SNeil Armstrong max-frequency = <200000000>; 226f51b4545SNeil Armstrong non-removable; 227f51b4545SNeil Armstrong disable-wp; 228f51b4545SNeil Armstrong mmc-ddr-1_8v; 229f51b4545SNeil Armstrong mmc-hs200-1_8v; 230f51b4545SNeil Armstrong 231f51b4545SNeil Armstrong mmc-pwrseq = <&emmc_pwrseq>; 232f51b4545SNeil Armstrong vmmc-supply = <&vcc_3v3>; 233f51b4545SNeil Armstrong vqmmc-supply = <&vddio_boot>; 234f51b4545SNeil Armstrong}; 235f51b4545SNeil Armstrong 236a5e27015SAndreas Färber&uart_AO { 237f51b4545SNeil Armstrong status = "okay"; 238a5e27015SAndreas Färber pinctrl-0 = <&uart_ao_a_pins>; 239f51b4545SNeil Armstrong pinctrl-names = "default"; 2406939db7eSNeil Armstrong}; 241e5e4df2dSNeil Armstrong 2422f9139c2SMartin Blumenstingl&usb { 243e5e4df2dSNeil Armstrong status = "okay"; 2442f9139c2SMartin Blumenstingl dr_mode = "host"; 245e5e4df2dSNeil Armstrong}; 246