1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT) << 2 /* 1 /* 3 * Copyright (c) 2016 Andreas Färber 2 * Copyright (c) 2016 Andreas Färber 4 * Copyright (c) 2016 BayLibre, Inc. 3 * Copyright (c) 2016 BayLibre, Inc. 5 * Author: Neil Armstrong <narmstrong@kernel.or 4 * Author: Neil Armstrong <narmstrong@kernel.org> >> 5 * >> 6 * This file is dual-licensed: you can use it either under the terms >> 7 * of the GPL or the X11 license, at your option. Note that this dual >> 8 * licensing only applies to this file, and not this project as a >> 9 * whole. >> 10 * >> 11 * a) This library is free software; you can redistribute it and/or >> 12 * modify it under the terms of the GNU General Public License as >> 13 * published by the Free Software Foundation; either version 2 of the >> 14 * License, or (at your option) any later version. >> 15 * >> 16 * This library is distributed in the hope that it will be useful, >> 17 * but WITHOUT ANY WARRANTY; without even the implied warranty of >> 18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the >> 19 * GNU General Public License for more details. >> 20 * >> 21 * Or, alternatively, >> 22 * >> 23 * b) Permission is hereby granted, free of charge, to any person >> 24 * obtaining a copy of this software and associated documentation >> 25 * files (the "Software"), to deal in the Software without >> 26 * restriction, including without limitation the rights to use, >> 27 * copy, modify, merge, publish, distribute, sublicense, and/or >> 28 * sell copies of the Software, and to permit persons to whom the >> 29 * Software is furnished to do so, subject to the following >> 30 * conditions: >> 31 * >> 32 * The above copyright notice and this permission notice shall be >> 33 * included in all copies or substantial portions of the Software. >> 34 * >> 35 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >> 36 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES >> 37 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND >> 38 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT >> 39 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, >> 40 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING >> 41 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR >> 42 * OTHER DEALINGS IN THE SOFTWARE. 6 */ 43 */ 7 44 8 /dts-v1/; 45 /dts-v1/; 9 46 10 #include "meson-gxl-s905x.dtsi" 47 #include "meson-gxl-s905x.dtsi" 11 48 12 / { 49 / { 13 compatible = "nexbox,a95x", "amlogic,s 50 compatible = "nexbox,a95x", "amlogic,s905x", "amlogic,meson-gxl"; 14 model = "NEXBOX A95X (S905X)"; 51 model = "NEXBOX A95X (S905X)"; 15 52 16 aliases { 53 aliases { 17 serial0 = &uart_AO; 54 serial0 = &uart_AO; 18 ethernet0 = ðmac; << 19 }; 55 }; 20 56 21 chosen { 57 chosen { 22 stdout-path = "serial0:115200n 58 stdout-path = "serial0:115200n8"; 23 }; 59 }; 24 60 25 memory@0 { 61 memory@0 { 26 device_type = "memory"; 62 device_type = "memory"; 27 reg = <0x0 0x0 0x0 0x80000000> 63 reg = <0x0 0x0 0x0 0x80000000>; 28 }; 64 }; 29 65 30 vddio_card: gpio-regulator { 66 vddio_card: gpio-regulator { 31 compatible = "regulator-gpio"; 67 compatible = "regulator-gpio"; 32 68 33 regulator-name = "VDDIO_CARD"; 69 regulator-name = "VDDIO_CARD"; 34 regulator-min-microvolt = <180 70 regulator-min-microvolt = <1800000>; 35 regulator-max-microvolt = <330 71 regulator-max-microvolt = <3300000>; 36 72 37 gpios = <&gpio_ao GPIOAO_5 GPI 73 gpios = <&gpio_ao GPIOAO_5 GPIO_ACTIVE_HIGH>; 38 gpios-states = <1>; 74 gpios-states = <1>; 39 75 40 /* Based on P200 schematics, s 76 /* Based on P200 schematics, signal CARD_1.8V/3.3V_CTR */ 41 states = <1800000 0>, !! 77 states = <1800000 0 42 <3300000 1>; !! 78 3300000 1>; 43 }; 79 }; 44 80 45 vddio_boot: regulator-vddio-boot { !! 81 vddio_boot: regulator-vddio_boot { 46 compatible = "regulator-fixed" 82 compatible = "regulator-fixed"; 47 regulator-name = "VDDIO_BOOT"; 83 regulator-name = "VDDIO_BOOT"; 48 regulator-min-microvolt = <180 84 regulator-min-microvolt = <1800000>; 49 regulator-max-microvolt = <180 85 regulator-max-microvolt = <1800000>; 50 }; 86 }; 51 87 52 vddao_3v3: regulator-vddao-3v3 { !! 88 vddao_3v3: regulator-vddao_3v3 { 53 compatible = "regulator-fixed" 89 compatible = "regulator-fixed"; 54 regulator-name = "VDDAO_3V3"; 90 regulator-name = "VDDAO_3V3"; 55 regulator-min-microvolt = <330 91 regulator-min-microvolt = <3300000>; 56 regulator-max-microvolt = <330 92 regulator-max-microvolt = <3300000>; 57 }; 93 }; 58 94 59 vcc_3v3: regulator-vcc-3v3 { !! 95 vcc_3v3: regulator-vcc_3v3 { 60 compatible = "regulator-fixed" 96 compatible = "regulator-fixed"; 61 regulator-name = "VCC_3V3"; 97 regulator-name = "VCC_3V3"; 62 regulator-min-microvolt = <330 98 regulator-min-microvolt = <3300000>; 63 regulator-max-microvolt = <330 99 regulator-max-microvolt = <3300000>; 64 }; 100 }; 65 101 66 emmc_pwrseq: emmc-pwrseq { 102 emmc_pwrseq: emmc-pwrseq { 67 compatible = "mmc-pwrseq-emmc" 103 compatible = "mmc-pwrseq-emmc"; 68 reset-gpios = <&gpio BOOT_9 GP 104 reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>; 69 }; 105 }; 70 106 71 wifi32k: wifi32k { 107 wifi32k: wifi32k { 72 compatible = "pwm-clock"; 108 compatible = "pwm-clock"; 73 #clock-cells = <0>; 109 #clock-cells = <0>; 74 clock-frequency = <32768>; 110 clock-frequency = <32768>; 75 pwms = <&pwm_ef 0 30518 0>; /* 111 pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */ 76 }; 112 }; 77 113 78 sdio_pwrseq: sdio-pwrseq { 114 sdio_pwrseq: sdio-pwrseq { 79 compatible = "mmc-pwrseq-simpl 115 compatible = "mmc-pwrseq-simple"; 80 reset-gpios = <&gpio GPIOX_6 G 116 reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>; 81 clocks = <&wifi32k>; 117 clocks = <&wifi32k>; 82 clock-names = "ext_clock"; 118 clock-names = "ext_clock"; 83 }; 119 }; 84 120 85 cvbs-connector { 121 cvbs-connector { 86 compatible = "composite-video- 122 compatible = "composite-video-connector"; 87 123 88 port { 124 port { 89 cvbs_connector_in: end 125 cvbs_connector_in: endpoint { 90 remote-endpoin 126 remote-endpoint = <&cvbs_vdac_out>; 91 }; 127 }; 92 }; 128 }; 93 }; 129 }; 94 130 95 hdmi-connector { 131 hdmi-connector { 96 compatible = "hdmi-connector"; 132 compatible = "hdmi-connector"; 97 type = "a"; 133 type = "a"; 98 134 99 port { 135 port { 100 hdmi_connector_in: end 136 hdmi_connector_in: endpoint { 101 remote-endpoin 137 remote-endpoint = <&hdmi_tx_tmds_out>; 102 }; 138 }; 103 }; 139 }; 104 }; 140 }; 105 }; 141 }; 106 142 107 &cec_AO { 143 &cec_AO { 108 status = "okay"; 144 status = "okay"; 109 pinctrl-0 = <&ao_cec_pins>; 145 pinctrl-0 = <&ao_cec_pins>; 110 pinctrl-names = "default"; 146 pinctrl-names = "default"; 111 hdmi-phandle = <&hdmi_tx>; 147 hdmi-phandle = <&hdmi_tx>; 112 }; 148 }; 113 149 114 &cvbs_vdac_port { 150 &cvbs_vdac_port { 115 cvbs_vdac_out: endpoint { 151 cvbs_vdac_out: endpoint { 116 remote-endpoint = <&cvbs_conne 152 remote-endpoint = <&cvbs_connector_in>; 117 }; 153 }; 118 }; 154 }; 119 155 120 ðmac { 156 ðmac { 121 status = "okay"; 157 status = "okay"; 122 phy-mode = "rmii"; 158 phy-mode = "rmii"; 123 phy-handle = <&internal_phy>; 159 phy-handle = <&internal_phy>; 124 }; 160 }; 125 161 126 &hdmi_tx { 162 &hdmi_tx { 127 status = "okay"; 163 status = "okay"; 128 pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i 164 pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>; 129 pinctrl-names = "default"; 165 pinctrl-names = "default"; 130 }; 166 }; 131 167 132 &hdmi_tx_tmds_port { 168 &hdmi_tx_tmds_port { 133 hdmi_tx_tmds_out: endpoint { 169 hdmi_tx_tmds_out: endpoint { 134 remote-endpoint = <&hdmi_conne 170 remote-endpoint = <&hdmi_connector_in>; 135 }; 171 }; 136 }; 172 }; 137 173 138 &ir { 174 &ir { 139 status = "okay"; 175 status = "okay"; 140 pinctrl-0 = <&remote_input_ao_pins>; 176 pinctrl-0 = <&remote_input_ao_pins>; 141 pinctrl-names = "default"; 177 pinctrl-names = "default"; 142 }; 178 }; 143 179 144 &pwm_ef { 180 &pwm_ef { 145 status = "okay"; 181 status = "okay"; 146 pinctrl-0 = <&pwm_e_pins>; 182 pinctrl-0 = <&pwm_e_pins>; 147 pinctrl-names = "default"; 183 pinctrl-names = "default"; 148 clocks = <&clkc CLKID_FCLK_DIV4>; 184 clocks = <&clkc CLKID_FCLK_DIV4>; 149 clock-names = "clkin0"; 185 clock-names = "clkin0"; 150 }; 186 }; 151 187 152 /* Wireless SDIO Module */ 188 /* Wireless SDIO Module */ 153 &sd_emmc_a { 189 &sd_emmc_a { 154 status = "okay"; 190 status = "okay"; 155 pinctrl-0 = <&sdio_pins>; 191 pinctrl-0 = <&sdio_pins>; 156 pinctrl-1 = <&sdio_clk_gate_pins>; 192 pinctrl-1 = <&sdio_clk_gate_pins>; 157 pinctrl-names = "default", "clk-gate"; 193 pinctrl-names = "default", "clk-gate"; 158 #address-cells = <1>; 194 #address-cells = <1>; 159 #size-cells = <0>; 195 #size-cells = <0>; 160 196 161 bus-width = <4>; 197 bus-width = <4>; 162 cap-sd-highspeed; 198 cap-sd-highspeed; 163 max-frequency = <100000000>; 199 max-frequency = <100000000>; 164 200 165 non-removable; 201 non-removable; 166 disable-wp; 202 disable-wp; 167 203 168 /* WiFi firmware requires power to be << 169 keep-power-in-suspend; << 170 << 171 mmc-pwrseq = <&sdio_pwrseq>; 204 mmc-pwrseq = <&sdio_pwrseq>; 172 205 173 vmmc-supply = <&vddao_3v3>; 206 vmmc-supply = <&vddao_3v3>; 174 vqmmc-supply = <&vddio_boot>; 207 vqmmc-supply = <&vddio_boot>; 175 }; 208 }; 176 209 177 /* SD card */ 210 /* SD card */ 178 &sd_emmc_b { 211 &sd_emmc_b { 179 status = "okay"; 212 status = "okay"; 180 pinctrl-0 = <&sdcard_pins>; 213 pinctrl-0 = <&sdcard_pins>; 181 pinctrl-1 = <&sdcard_clk_gate_pins>; 214 pinctrl-1 = <&sdcard_clk_gate_pins>; 182 pinctrl-names = "default", "clk-gate"; 215 pinctrl-names = "default", "clk-gate"; 183 216 184 bus-width = <4>; 217 bus-width = <4>; 185 cap-sd-highspeed; 218 cap-sd-highspeed; 186 max-frequency = <50000000>; !! 219 max-frequency = <100000000>; 187 disable-wp; 220 disable-wp; 188 221 189 cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_L !! 222 cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_HIGH>; >> 223 cd-inverted; 190 224 191 vmmc-supply = <&vddao_3v3>; 225 vmmc-supply = <&vddao_3v3>; 192 vqmmc-supply = <&vddio_card>; 226 vqmmc-supply = <&vddio_card>; 193 }; 227 }; 194 228 195 /* eMMC */ 229 /* eMMC */ 196 &sd_emmc_c { 230 &sd_emmc_c { 197 status = "okay"; 231 status = "okay"; 198 pinctrl-0 = <&emmc_pins>, <&emmc_ds_pi !! 232 pinctrl-0 = <&emmc_pins>; 199 pinctrl-1 = <&emmc_clk_gate_pins>; 233 pinctrl-1 = <&emmc_clk_gate_pins>; 200 pinctrl-names = "default", "clk-gate"; 234 pinctrl-names = "default", "clk-gate"; 201 235 202 bus-width = <8>; 236 bus-width = <8>; 203 cap-mmc-highspeed; 237 cap-mmc-highspeed; 204 max-frequency = <200000000>; 238 max-frequency = <200000000>; 205 non-removable; 239 non-removable; 206 disable-wp; 240 disable-wp; 207 mmc-ddr-1_8v; 241 mmc-ddr-1_8v; 208 mmc-hs200-1_8v; 242 mmc-hs200-1_8v; 209 243 210 mmc-pwrseq = <&emmc_pwrseq>; 244 mmc-pwrseq = <&emmc_pwrseq>; 211 vmmc-supply = <&vcc_3v3>; 245 vmmc-supply = <&vcc_3v3>; 212 vqmmc-supply = <&vddio_boot>; 246 vqmmc-supply = <&vddio_boot>; 213 }; 247 }; 214 248 215 &uart_AO { 249 &uart_AO { 216 status = "okay"; 250 status = "okay"; 217 pinctrl-0 = <&uart_ao_a_pins>; 251 pinctrl-0 = <&uart_ao_a_pins>; 218 pinctrl-names = "default"; 252 pinctrl-names = "default"; 219 }; << 220 << 221 &usb { << 222 status = "okay"; << 223 dr_mode = "host"; << 224 }; 253 };
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.