1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT) 1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2 /* 2 /* 3 * Copyright (c) 2016 Andreas Färber 3 * Copyright (c) 2016 Andreas Färber 4 * Copyright (c) 2016 BayLibre, Inc. 4 * Copyright (c) 2016 BayLibre, Inc. 5 * Author: Neil Armstrong <narmstrong@kernel.or 5 * Author: Neil Armstrong <narmstrong@kernel.org> 6 */ 6 */ 7 7 8 /dts-v1/; 8 /dts-v1/; 9 9 10 #include "meson-gxl-s905x.dtsi" 10 #include "meson-gxl-s905x.dtsi" 11 11 12 / { 12 / { 13 compatible = "nexbox,a95x", "amlogic,s 13 compatible = "nexbox,a95x", "amlogic,s905x", "amlogic,meson-gxl"; 14 model = "NEXBOX A95X (S905X)"; 14 model = "NEXBOX A95X (S905X)"; 15 15 16 aliases { 16 aliases { 17 serial0 = &uart_AO; 17 serial0 = &uart_AO; 18 ethernet0 = ðmac; 18 ethernet0 = ðmac; 19 }; 19 }; 20 20 21 chosen { 21 chosen { 22 stdout-path = "serial0:115200n 22 stdout-path = "serial0:115200n8"; 23 }; 23 }; 24 24 25 memory@0 { 25 memory@0 { 26 device_type = "memory"; 26 device_type = "memory"; 27 reg = <0x0 0x0 0x0 0x80000000> 27 reg = <0x0 0x0 0x0 0x80000000>; 28 }; 28 }; 29 29 30 vddio_card: gpio-regulator { 30 vddio_card: gpio-regulator { 31 compatible = "regulator-gpio"; 31 compatible = "regulator-gpio"; 32 32 33 regulator-name = "VDDIO_CARD"; 33 regulator-name = "VDDIO_CARD"; 34 regulator-min-microvolt = <180 34 regulator-min-microvolt = <1800000>; 35 regulator-max-microvolt = <330 35 regulator-max-microvolt = <3300000>; 36 36 37 gpios = <&gpio_ao GPIOAO_5 GPI 37 gpios = <&gpio_ao GPIOAO_5 GPIO_ACTIVE_HIGH>; 38 gpios-states = <1>; 38 gpios-states = <1>; 39 39 40 /* Based on P200 schematics, s 40 /* Based on P200 schematics, signal CARD_1.8V/3.3V_CTR */ 41 states = <1800000 0>, 41 states = <1800000 0>, 42 <3300000 1>; 42 <3300000 1>; 43 }; 43 }; 44 44 45 vddio_boot: regulator-vddio-boot { 45 vddio_boot: regulator-vddio-boot { 46 compatible = "regulator-fixed" 46 compatible = "regulator-fixed"; 47 regulator-name = "VDDIO_BOOT"; 47 regulator-name = "VDDIO_BOOT"; 48 regulator-min-microvolt = <180 48 regulator-min-microvolt = <1800000>; 49 regulator-max-microvolt = <180 49 regulator-max-microvolt = <1800000>; 50 }; 50 }; 51 51 52 vddao_3v3: regulator-vddao-3v3 { 52 vddao_3v3: regulator-vddao-3v3 { 53 compatible = "regulator-fixed" 53 compatible = "regulator-fixed"; 54 regulator-name = "VDDAO_3V3"; 54 regulator-name = "VDDAO_3V3"; 55 regulator-min-microvolt = <330 55 regulator-min-microvolt = <3300000>; 56 regulator-max-microvolt = <330 56 regulator-max-microvolt = <3300000>; 57 }; 57 }; 58 58 59 vcc_3v3: regulator-vcc-3v3 { 59 vcc_3v3: regulator-vcc-3v3 { 60 compatible = "regulator-fixed" 60 compatible = "regulator-fixed"; 61 regulator-name = "VCC_3V3"; 61 regulator-name = "VCC_3V3"; 62 regulator-min-microvolt = <330 62 regulator-min-microvolt = <3300000>; 63 regulator-max-microvolt = <330 63 regulator-max-microvolt = <3300000>; 64 }; 64 }; 65 65 66 emmc_pwrseq: emmc-pwrseq { 66 emmc_pwrseq: emmc-pwrseq { 67 compatible = "mmc-pwrseq-emmc" 67 compatible = "mmc-pwrseq-emmc"; 68 reset-gpios = <&gpio BOOT_9 GP 68 reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>; 69 }; 69 }; 70 70 71 wifi32k: wifi32k { 71 wifi32k: wifi32k { 72 compatible = "pwm-clock"; 72 compatible = "pwm-clock"; 73 #clock-cells = <0>; 73 #clock-cells = <0>; 74 clock-frequency = <32768>; 74 clock-frequency = <32768>; 75 pwms = <&pwm_ef 0 30518 0>; /* 75 pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */ 76 }; 76 }; 77 77 78 sdio_pwrseq: sdio-pwrseq { 78 sdio_pwrseq: sdio-pwrseq { 79 compatible = "mmc-pwrseq-simpl 79 compatible = "mmc-pwrseq-simple"; 80 reset-gpios = <&gpio GPIOX_6 G 80 reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>; 81 clocks = <&wifi32k>; 81 clocks = <&wifi32k>; 82 clock-names = "ext_clock"; 82 clock-names = "ext_clock"; 83 }; 83 }; 84 84 85 cvbs-connector { 85 cvbs-connector { 86 compatible = "composite-video- 86 compatible = "composite-video-connector"; 87 87 88 port { 88 port { 89 cvbs_connector_in: end 89 cvbs_connector_in: endpoint { 90 remote-endpoin 90 remote-endpoint = <&cvbs_vdac_out>; 91 }; 91 }; 92 }; 92 }; 93 }; 93 }; 94 94 95 hdmi-connector { 95 hdmi-connector { 96 compatible = "hdmi-connector"; 96 compatible = "hdmi-connector"; 97 type = "a"; 97 type = "a"; 98 98 99 port { 99 port { 100 hdmi_connector_in: end 100 hdmi_connector_in: endpoint { 101 remote-endpoin 101 remote-endpoint = <&hdmi_tx_tmds_out>; 102 }; 102 }; 103 }; 103 }; 104 }; 104 }; 105 }; 105 }; 106 106 107 &cec_AO { 107 &cec_AO { 108 status = "okay"; 108 status = "okay"; 109 pinctrl-0 = <&ao_cec_pins>; 109 pinctrl-0 = <&ao_cec_pins>; 110 pinctrl-names = "default"; 110 pinctrl-names = "default"; 111 hdmi-phandle = <&hdmi_tx>; 111 hdmi-phandle = <&hdmi_tx>; 112 }; 112 }; 113 113 114 &cvbs_vdac_port { 114 &cvbs_vdac_port { 115 cvbs_vdac_out: endpoint { 115 cvbs_vdac_out: endpoint { 116 remote-endpoint = <&cvbs_conne 116 remote-endpoint = <&cvbs_connector_in>; 117 }; 117 }; 118 }; 118 }; 119 119 120 ðmac { 120 ðmac { 121 status = "okay"; 121 status = "okay"; 122 phy-mode = "rmii"; 122 phy-mode = "rmii"; 123 phy-handle = <&internal_phy>; 123 phy-handle = <&internal_phy>; 124 }; 124 }; 125 125 126 &hdmi_tx { 126 &hdmi_tx { 127 status = "okay"; 127 status = "okay"; 128 pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i 128 pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>; 129 pinctrl-names = "default"; 129 pinctrl-names = "default"; 130 }; 130 }; 131 131 132 &hdmi_tx_tmds_port { 132 &hdmi_tx_tmds_port { 133 hdmi_tx_tmds_out: endpoint { 133 hdmi_tx_tmds_out: endpoint { 134 remote-endpoint = <&hdmi_conne 134 remote-endpoint = <&hdmi_connector_in>; 135 }; 135 }; 136 }; 136 }; 137 137 138 &ir { 138 &ir { 139 status = "okay"; 139 status = "okay"; 140 pinctrl-0 = <&remote_input_ao_pins>; 140 pinctrl-0 = <&remote_input_ao_pins>; 141 pinctrl-names = "default"; 141 pinctrl-names = "default"; 142 }; 142 }; 143 143 144 &pwm_ef { 144 &pwm_ef { 145 status = "okay"; 145 status = "okay"; 146 pinctrl-0 = <&pwm_e_pins>; 146 pinctrl-0 = <&pwm_e_pins>; 147 pinctrl-names = "default"; 147 pinctrl-names = "default"; 148 clocks = <&clkc CLKID_FCLK_DIV4>; 148 clocks = <&clkc CLKID_FCLK_DIV4>; 149 clock-names = "clkin0"; 149 clock-names = "clkin0"; 150 }; 150 }; 151 151 152 /* Wireless SDIO Module */ 152 /* Wireless SDIO Module */ 153 &sd_emmc_a { 153 &sd_emmc_a { 154 status = "okay"; 154 status = "okay"; 155 pinctrl-0 = <&sdio_pins>; 155 pinctrl-0 = <&sdio_pins>; 156 pinctrl-1 = <&sdio_clk_gate_pins>; 156 pinctrl-1 = <&sdio_clk_gate_pins>; 157 pinctrl-names = "default", "clk-gate"; 157 pinctrl-names = "default", "clk-gate"; 158 #address-cells = <1>; 158 #address-cells = <1>; 159 #size-cells = <0>; 159 #size-cells = <0>; 160 160 161 bus-width = <4>; 161 bus-width = <4>; 162 cap-sd-highspeed; 162 cap-sd-highspeed; 163 max-frequency = <100000000>; 163 max-frequency = <100000000>; 164 164 165 non-removable; 165 non-removable; 166 disable-wp; 166 disable-wp; 167 167 168 /* WiFi firmware requires power to be 168 /* WiFi firmware requires power to be kept while in suspend */ 169 keep-power-in-suspend; 169 keep-power-in-suspend; 170 170 171 mmc-pwrseq = <&sdio_pwrseq>; 171 mmc-pwrseq = <&sdio_pwrseq>; 172 172 173 vmmc-supply = <&vddao_3v3>; 173 vmmc-supply = <&vddao_3v3>; 174 vqmmc-supply = <&vddio_boot>; 174 vqmmc-supply = <&vddio_boot>; 175 }; 175 }; 176 176 177 /* SD card */ 177 /* SD card */ 178 &sd_emmc_b { 178 &sd_emmc_b { 179 status = "okay"; 179 status = "okay"; 180 pinctrl-0 = <&sdcard_pins>; 180 pinctrl-0 = <&sdcard_pins>; 181 pinctrl-1 = <&sdcard_clk_gate_pins>; 181 pinctrl-1 = <&sdcard_clk_gate_pins>; 182 pinctrl-names = "default", "clk-gate"; 182 pinctrl-names = "default", "clk-gate"; 183 183 184 bus-width = <4>; 184 bus-width = <4>; 185 cap-sd-highspeed; 185 cap-sd-highspeed; 186 max-frequency = <50000000>; 186 max-frequency = <50000000>; 187 disable-wp; 187 disable-wp; 188 188 189 cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_L 189 cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_LOW>; 190 190 191 vmmc-supply = <&vddao_3v3>; 191 vmmc-supply = <&vddao_3v3>; 192 vqmmc-supply = <&vddio_card>; 192 vqmmc-supply = <&vddio_card>; 193 }; 193 }; 194 194 195 /* eMMC */ 195 /* eMMC */ 196 &sd_emmc_c { 196 &sd_emmc_c { 197 status = "okay"; 197 status = "okay"; 198 pinctrl-0 = <&emmc_pins>, <&emmc_ds_pi 198 pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>; 199 pinctrl-1 = <&emmc_clk_gate_pins>; 199 pinctrl-1 = <&emmc_clk_gate_pins>; 200 pinctrl-names = "default", "clk-gate"; 200 pinctrl-names = "default", "clk-gate"; 201 201 202 bus-width = <8>; 202 bus-width = <8>; 203 cap-mmc-highspeed; 203 cap-mmc-highspeed; 204 max-frequency = <200000000>; 204 max-frequency = <200000000>; 205 non-removable; 205 non-removable; 206 disable-wp; 206 disable-wp; 207 mmc-ddr-1_8v; 207 mmc-ddr-1_8v; 208 mmc-hs200-1_8v; 208 mmc-hs200-1_8v; 209 209 210 mmc-pwrseq = <&emmc_pwrseq>; 210 mmc-pwrseq = <&emmc_pwrseq>; 211 vmmc-supply = <&vcc_3v3>; 211 vmmc-supply = <&vcc_3v3>; 212 vqmmc-supply = <&vddio_boot>; 212 vqmmc-supply = <&vddio_boot>; 213 }; 213 }; 214 214 215 &uart_AO { 215 &uart_AO { 216 status = "okay"; 216 status = "okay"; 217 pinctrl-0 = <&uart_ao_a_pins>; 217 pinctrl-0 = <&uart_ao_a_pins>; 218 pinctrl-names = "default"; 218 pinctrl-names = "default"; 219 }; 219 }; 220 220 221 &usb { 221 &usb { 222 status = "okay"; 222 status = "okay"; 223 dr_mode = "host"; 223 dr_mode = "host"; 224 }; 224 };
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.