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 clocks = <&clkc CLKID_MPLL0>, 90 <&clkc CLKID_MPLL1>, 91 <&clkc CLKID_MPLL2>; 92 93 assigned-clocks = <&clkc CLKID_MPLL0>, 94 <&clkc CLKID_MPLL1>, 95 <&clkc CLKID_MPLL2>; 96 assigned-clock-parents = <0>, <0>, <0>; 97 assigned-clock-rates = <294912000>, 98 <270950400>, 99 <393216000>; 100 101 dai-link-0 { 102 sound-dai = <&aiu AIU_CPU CPU_I2S_FIFO>; 103 }; 104 105 dai-link-1 { 106 sound-dai = <&aiu AIU_CPU CPU_SPDIF_FIFO>; 107 }; 108 109 dai-link-2 { 110 sound-dai = <&aiu AIU_CPU CPU_I2S_ENCODER>; 111 dai-format = "i2s"; 112 mclk-fs = <256>; 113 114 codec-0 { 115 sound-dai = <&aiu AIU_HDMI CTRL_I2S>; 116 }; 117 }; 118 119 dai-link-3 { 120 sound-dai = <&aiu AIU_CPU CPU_SPDIF_ENCODER>; 121 122 codec-0 { 123 sound-dai = <&spdif_dit>; 124 }; 125 }; 126 127 dai-link-4 { 128 sound-dai = <&aiu AIU_HDMI CTRL_OUT>; 129 130 codec-0 { 131 sound-dai = <&hdmi_tx>; 132 }; 133 }; 134 }; 135}; 136 137&aiu { 138 status = "okay"; 139 pinctrl-0 = <&spdif_out_h_pins>; 140 pinctrl-names = "default"; 141}; 142 143&cec_AO { 144 status = "okay"; 145 pinctrl-0 = <&ao_cec_pins>; 146 pinctrl-names = "default"; 147 hdmi-phandle = <&hdmi_tx>; 148}; 149 150&cvbs_vdac_port { 151 cvbs_vdac_out: endpoint { 152 remote-endpoint = <&cvbs_connector_in>; 153 }; 154}; 155 156ðmac { 157 status = "okay"; 158 159 pinctrl-0 = <ð_pins>; 160 pinctrl-names = "default"; 161 162 /* Select external PHY by default */ 163 phy-handle = <&external_phy>; 164 165 amlogic,tx-delay-ns = <2>; 166 167 /* External PHY is in RGMII */ 168 phy-mode = "rgmii"; 169}; 170 171&external_mdio { 172 external_phy: ethernet-phy@0 { 173 /* Realtek RTL8211F (0x001cc916) */ 174 reg = <0>; 175 max-speed = <1000>; 176 177 reset-assert-us = <10000>; 178 reset-deassert-us = <80000>; 179 reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>; 180 }; 181}; 182 183&hdmi_tx { 184 status = "okay"; 185 pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>; 186 pinctrl-names = "default"; 187}; 188 189&hdmi_tx_tmds_port { 190 hdmi_tx_tmds_out: endpoint { 191 remote-endpoint = <&hdmi_connector_in>; 192 }; 193}; 194 195&ir { 196 status = "okay"; 197 pinctrl-0 = <&remote_input_ao_pins>; 198 pinctrl-names = "default"; 199}; 200 201/* SD card */ 202&sd_emmc_b { 203 status = "okay"; 204 pinctrl-0 = <&sdcard_pins>; 205 pinctrl-1 = <&sdcard_clk_gate_pins>; 206 pinctrl-names = "default", "clk-gate"; 207 208 bus-width = <4>; 209 cap-sd-highspeed; 210 max-frequency = <50000000>; 211 disable-wp; 212 213 cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_LOW>; 214 215 vmmc-supply = <&vddao_3v3>; 216 vqmmc-supply = <&vddio_boot>; 217}; 218 219/* eMMC */ 220&sd_emmc_c { 221 status = "okay"; 222 pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>; 223 pinctrl-1 = <&emmc_clk_gate_pins>; 224 pinctrl-names = "default", "clk-gate"; 225 226 bus-width = <8>; 227 cap-mmc-highspeed; 228 max-frequency = <200000000>; 229 non-removable; 230 disable-wp; 231 mmc-ddr-1_8v; 232 mmc-hs200-1_8v; 233 234 mmc-pwrseq = <&emmc_pwrseq>; 235 vmmc-supply = <&vcc_3v3>; 236 vqmmc-supply = <&vddio_boot>; 237}; 238 239&uart_AO { 240 status = "okay"; 241 pinctrl-0 = <&uart_ao_a_pins>; 242 pinctrl-names = "default"; 243}; 244 245&usb { 246 status = "okay"; 247 dr_mode = "host"; 248}; 249