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