0001 // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
0002 /*
0003 * Copyright (c) 2016 Andreas Färber
0004 * Copyright (c) 2016 BayLibre, Inc.
0005 * Author: Neil Armstrong <narmstrong@kernel.org>
0006 */
0007
0008 /dts-v1/;
0009
0010 #include "meson-gxl-s905x.dtsi"
0011
0012 / {
0013 compatible = "nexbox,a95x", "amlogic,s905x", "amlogic,meson-gxl";
0014 model = "NEXBOX A95X (S905X)";
0015
0016 aliases {
0017 serial0 = &uart_AO;
0018 ethernet0 = ðmac;
0019 };
0020
0021 chosen {
0022 stdout-path = "serial0:115200n8";
0023 };
0024
0025 memory@0 {
0026 device_type = "memory";
0027 reg = <0x0 0x0 0x0 0x80000000>;
0028 };
0029
0030 vddio_card: gpio-regulator {
0031 compatible = "regulator-gpio";
0032
0033 regulator-name = "VDDIO_CARD";
0034 regulator-min-microvolt = <1800000>;
0035 regulator-max-microvolt = <3300000>;
0036
0037 gpios = <&gpio_ao GPIOAO_5 GPIO_ACTIVE_HIGH>;
0038 gpios-states = <1>;
0039
0040 /* Based on P200 schematics, signal CARD_1.8V/3.3V_CTR */
0041 states = <1800000 0>,
0042 <3300000 1>;
0043 };
0044
0045 vddio_boot: regulator-vddio_boot {
0046 compatible = "regulator-fixed";
0047 regulator-name = "VDDIO_BOOT";
0048 regulator-min-microvolt = <1800000>;
0049 regulator-max-microvolt = <1800000>;
0050 };
0051
0052 vddao_3v3: regulator-vddao_3v3 {
0053 compatible = "regulator-fixed";
0054 regulator-name = "VDDAO_3V3";
0055 regulator-min-microvolt = <3300000>;
0056 regulator-max-microvolt = <3300000>;
0057 };
0058
0059 vcc_3v3: regulator-vcc_3v3 {
0060 compatible = "regulator-fixed";
0061 regulator-name = "VCC_3V3";
0062 regulator-min-microvolt = <3300000>;
0063 regulator-max-microvolt = <3300000>;
0064 };
0065
0066 emmc_pwrseq: emmc-pwrseq {
0067 compatible = "mmc-pwrseq-emmc";
0068 reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>;
0069 };
0070
0071 wifi32k: wifi32k {
0072 compatible = "pwm-clock";
0073 #clock-cells = <0>;
0074 clock-frequency = <32768>;
0075 pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */
0076 };
0077
0078 sdio_pwrseq: sdio-pwrseq {
0079 compatible = "mmc-pwrseq-simple";
0080 reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>;
0081 clocks = <&wifi32k>;
0082 clock-names = "ext_clock";
0083 };
0084
0085 cvbs-connector {
0086 compatible = "composite-video-connector";
0087
0088 port {
0089 cvbs_connector_in: endpoint {
0090 remote-endpoint = <&cvbs_vdac_out>;
0091 };
0092 };
0093 };
0094
0095 hdmi-connector {
0096 compatible = "hdmi-connector";
0097 type = "a";
0098
0099 port {
0100 hdmi_connector_in: endpoint {
0101 remote-endpoint = <&hdmi_tx_tmds_out>;
0102 };
0103 };
0104 };
0105 };
0106
0107 &cec_AO {
0108 status = "okay";
0109 pinctrl-0 = <&ao_cec_pins>;
0110 pinctrl-names = "default";
0111 hdmi-phandle = <&hdmi_tx>;
0112 };
0113
0114 &cvbs_vdac_port {
0115 cvbs_vdac_out: endpoint {
0116 remote-endpoint = <&cvbs_connector_in>;
0117 };
0118 };
0119
0120 ðmac {
0121 status = "okay";
0122 phy-mode = "rmii";
0123 phy-handle = <&internal_phy>;
0124 };
0125
0126 &hdmi_tx {
0127 status = "okay";
0128 pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>;
0129 pinctrl-names = "default";
0130 };
0131
0132 &hdmi_tx_tmds_port {
0133 hdmi_tx_tmds_out: endpoint {
0134 remote-endpoint = <&hdmi_connector_in>;
0135 };
0136 };
0137
0138 &ir {
0139 status = "okay";
0140 pinctrl-0 = <&remote_input_ao_pins>;
0141 pinctrl-names = "default";
0142 };
0143
0144 &pwm_ef {
0145 status = "okay";
0146 pinctrl-0 = <&pwm_e_pins>;
0147 pinctrl-names = "default";
0148 clocks = <&clkc CLKID_FCLK_DIV4>;
0149 clock-names = "clkin0";
0150 };
0151
0152 /* Wireless SDIO Module */
0153 &sd_emmc_a {
0154 status = "okay";
0155 pinctrl-0 = <&sdio_pins>;
0156 pinctrl-1 = <&sdio_clk_gate_pins>;
0157 pinctrl-names = "default", "clk-gate";
0158 #address-cells = <1>;
0159 #size-cells = <0>;
0160
0161 bus-width = <4>;
0162 cap-sd-highspeed;
0163 max-frequency = <100000000>;
0164
0165 non-removable;
0166 disable-wp;
0167
0168 /* WiFi firmware requires power to be kept while in suspend */
0169 keep-power-in-suspend;
0170
0171 mmc-pwrseq = <&sdio_pwrseq>;
0172
0173 vmmc-supply = <&vddao_3v3>;
0174 vqmmc-supply = <&vddio_boot>;
0175 };
0176
0177 /* SD card */
0178 &sd_emmc_b {
0179 status = "okay";
0180 pinctrl-0 = <&sdcard_pins>;
0181 pinctrl-1 = <&sdcard_clk_gate_pins>;
0182 pinctrl-names = "default", "clk-gate";
0183
0184 bus-width = <4>;
0185 cap-sd-highspeed;
0186 max-frequency = <50000000>;
0187 disable-wp;
0188
0189 cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_LOW>;
0190
0191 vmmc-supply = <&vddao_3v3>;
0192 vqmmc-supply = <&vddio_card>;
0193 };
0194
0195 /* eMMC */
0196 &sd_emmc_c {
0197 status = "okay";
0198 pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>;
0199 pinctrl-1 = <&emmc_clk_gate_pins>;
0200 pinctrl-names = "default", "clk-gate";
0201
0202 bus-width = <8>;
0203 cap-mmc-highspeed;
0204 max-frequency = <200000000>;
0205 non-removable;
0206 disable-wp;
0207 mmc-ddr-1_8v;
0208 mmc-hs200-1_8v;
0209
0210 mmc-pwrseq = <&emmc_pwrseq>;
0211 vmmc-supply = <&vcc_3v3>;
0212 vqmmc-supply = <&vddio_boot>;
0213 };
0214
0215 &uart_AO {
0216 status = "okay";
0217 pinctrl-0 = <&uart_ao_a_pins>;
0218 pinctrl-names = "default";
0219 };
0220
0221 &usb {
0222 status = "okay";
0223 dr_mode = "host";
0224 };