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