Merge tag 'kconfig-v5.1' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy...
[sfrench/cifs-2.6.git] / arch / arm64 / boot / dts / amlogic / meson-gxm-nexbox-a1.dts
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
14 / {
15         compatible = "nexbox,a1", "amlogic,s912", "amlogic,meson-gxm";
16         model = "NEXBOX A1";
17
18         aliases {
19                 serial0 = &uart_AO;
20                 ethernet0 = &ethmac;
21         };
22
23         chosen {
24                 stdout-path = "serial0:115200n8";
25         };
26
27         memory@0 {
28                 device_type = "memory";
29                 reg = <0x0 0x0 0x0 0x80000000>;
30         };
31
32         vddio_boot: regulator-vddio-boot {
33                 compatible = "regulator-fixed";
34                 regulator-name = "VDDIO_BOOT";
35                 regulator-min-microvolt = <1800000>;
36                 regulator-max-microvolt = <1800000>;
37         };
38
39         vddao_3v3: regulator-vddao-3v3 {
40                 compatible = "regulator-fixed";
41                 regulator-name = "VDDAO_3V3";
42                 regulator-min-microvolt = <3300000>;
43                 regulator-max-microvolt = <3300000>;
44         };
45
46         vcc_3v3: regulator-vcc-3v3 {
47                 compatible = "regulator-fixed";
48                 regulator-name = "VCC_3V3";
49                 regulator-min-microvolt = <3300000>;
50                 regulator-max-microvolt = <3300000>;
51         };
52
53         emmc_pwrseq: emmc-pwrseq {
54                 compatible = "mmc-pwrseq-emmc";
55                 reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>;
56         };
57
58         cvbs-connector {
59                 compatible = "composite-video-connector";
60
61                 port {
62                         cvbs_connector_in: endpoint {
63                                 remote-endpoint = <&cvbs_vdac_out>;
64                         };
65                 };
66         };
67
68         hdmi-connector {
69                 compatible = "hdmi-connector";
70                 type = "a";
71
72                 port {
73                         hdmi_connector_in: endpoint {
74                                 remote-endpoint = <&hdmi_tx_tmds_out>;
75                         };
76                 };
77         };
78 };
79
80 &cec_AO {
81         status = "okay";
82         pinctrl-0 = <&ao_cec_pins>;
83         pinctrl-names = "default";
84         hdmi-phandle = <&hdmi_tx>;
85 };
86
87 &cvbs_vdac_port {
88         cvbs_vdac_out: endpoint {
89                 remote-endpoint = <&cvbs_connector_in>;
90         };
91 };
92
93 &ethmac {
94         status = "okay";
95
96         pinctrl-0 = <&eth_pins>;
97         pinctrl-names = "default";
98
99         /* Select external PHY by default */
100         phy-handle = <&external_phy>;
101
102         amlogic,tx-delay-ns = <2>;
103
104         snps,reset-gpio = <&gpio GPIOZ_14 0>;
105         snps,reset-delays-us = <0 10000 1000000>;
106         snps,reset-active-low;
107
108         /* External PHY is in RGMII */
109         phy-mode = "rgmii";
110 };
111
112 &external_mdio {
113         external_phy: ethernet-phy@0 {
114                 compatible = "ethernet-phy-id001c.c916", "ethernet-phy-ieee802.3-c22";
115                 reg = <0>;
116                 max-speed = <1000>;
117         };
118 };
119
120 &hdmi_tx {
121         status = "okay";
122         pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>;
123         pinctrl-names = "default";
124 };
125
126 &hdmi_tx_tmds_port {
127         hdmi_tx_tmds_out: endpoint {
128                 remote-endpoint = <&hdmi_connector_in>;
129         };
130 };
131
132 &ir {
133         status = "okay";
134         pinctrl-0 = <&remote_input_ao_pins>;
135         pinctrl-names = "default";
136 };
137
138 /* SD card */
139 &sd_emmc_b {
140         status = "okay";
141         pinctrl-0 = <&sdcard_pins>;
142         pinctrl-1 = <&sdcard_clk_gate_pins>;
143         pinctrl-names = "default", "clk-gate";
144
145         bus-width = <4>;
146         cap-sd-highspeed;
147         max-frequency = <100000000>;
148         disable-wp;
149
150         cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_LOW>;
151
152         vmmc-supply = <&vddao_3v3>;
153         vqmmc-supply = <&vddio_boot>;
154 };
155
156 /* eMMC */
157 &sd_emmc_c {
158         status = "okay";
159         pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>;
160         pinctrl-1 = <&emmc_clk_gate_pins>;
161         pinctrl-names = "default", "clk-gate";
162
163         bus-width = <8>;
164         cap-mmc-highspeed;
165         max-frequency = <200000000>;
166         non-removable;
167         disable-wp;
168         mmc-ddr-1_8v;
169         mmc-hs200-1_8v;
170
171         mmc-pwrseq = <&emmc_pwrseq>;
172         vmmc-supply = <&vcc_3v3>;
173         vqmmc-supply = <&vddio_boot>;
174 };
175
176 &uart_AO {
177         status = "okay";
178         pinctrl-0 = <&uart_ao_a_pins>;
179         pinctrl-names = "default";
180 };