1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT) 1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2 // Copyright (c) 2023 ARM Ltd. 2 // Copyright (c) 2023 ARM Ltd. 3 3 4 /dts-v1/; 4 /dts-v1/; 5 5 6 #include "sun50i-a64.dtsi" 6 #include "sun50i-a64.dtsi" 7 #include "sun50i-a64-cpu-opp.dtsi" 7 #include "sun50i-a64-cpu-opp.dtsi" 8 8 9 #include <dt-bindings/gpio/gpio.h> 9 #include <dt-bindings/gpio/gpio.h> 10 10 11 / { 11 / { 12 model = "Remix Mini PC"; 12 model = "Remix Mini PC"; 13 compatible = "jide,remix-mini-pc", "al 13 compatible = "jide,remix-mini-pc", "allwinner,sun50i-h64", 14 "allwinner,sun50i-a64"; 14 "allwinner,sun50i-a64"; 15 15 16 aliases { 16 aliases { 17 ethernet1 = &rtl8723bs; 17 ethernet1 = &rtl8723bs; 18 serial0 = &uart0; 18 serial0 = &uart0; 19 }; 19 }; 20 20 21 chosen { 21 chosen { 22 stdout-path = "serial0:115200n 22 stdout-path = "serial0:115200n8"; 23 }; 23 }; 24 24 25 hdmi-connector { 25 hdmi-connector { 26 compatible = "hdmi-connector"; 26 compatible = "hdmi-connector"; 27 type = "a"; 27 type = "a"; 28 28 29 port { 29 port { 30 hdmi_con_in: endpoint 30 hdmi_con_in: endpoint { 31 remote-endpoin 31 remote-endpoint = <&hdmi_out_con>; 32 }; 32 }; 33 }; 33 }; 34 }; 34 }; 35 35 36 reg_vcc5v: regulator-5v { 36 reg_vcc5v: regulator-5v { 37 /* board wide 5V supply direct 37 /* board wide 5V supply directly from the DC input */ 38 compatible = "regulator-fixed" 38 compatible = "regulator-fixed"; 39 regulator-name = "vcc-5v"; 39 regulator-name = "vcc-5v"; 40 regulator-min-microvolt = <500 40 regulator-min-microvolt = <5000000>; 41 regulator-max-microvolt = <500 41 regulator-max-microvolt = <5000000>; 42 regulator-always-on; 42 regulator-always-on; 43 }; 43 }; 44 44 45 wifi_pwrseq: pwrseq { 45 wifi_pwrseq: pwrseq { 46 compatible = "mmc-pwrseq-simpl 46 compatible = "mmc-pwrseq-simple"; 47 reset-gpios = <&r_pio 0 2 GPIO 47 reset-gpios = <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* PL2 */ 48 post-power-on-delay-ms = <200> 48 post-power-on-delay-ms = <200>; 49 }; 49 }; 50 }; 50 }; 51 51 52 &codec { 52 &codec { 53 status = "okay"; 53 status = "okay"; 54 }; 54 }; 55 55 56 &codec_analog { 56 &codec_analog { 57 cpvdd-supply = <®_eldo1>; 57 cpvdd-supply = <®_eldo1>; 58 status = "okay"; 58 status = "okay"; 59 }; 59 }; 60 60 61 &cpu0 { 61 &cpu0 { 62 cpu-supply = <®_dcdc2>; 62 cpu-supply = <®_dcdc2>; 63 }; 63 }; 64 64 65 &cpu1 { 65 &cpu1 { 66 cpu-supply = <®_dcdc2>; 66 cpu-supply = <®_dcdc2>; 67 }; 67 }; 68 68 69 &cpu2 { 69 &cpu2 { 70 cpu-supply = <®_dcdc2>; 70 cpu-supply = <®_dcdc2>; 71 }; 71 }; 72 72 73 &cpu3 { 73 &cpu3 { 74 cpu-supply = <®_dcdc2>; 74 cpu-supply = <®_dcdc2>; 75 }; 75 }; 76 76 77 &dai { 77 &dai { 78 status = "okay"; 78 status = "okay"; 79 }; 79 }; 80 80 81 &de { 81 &de { 82 status = "okay"; 82 status = "okay"; 83 }; 83 }; 84 84 85 &ehci0 { 85 &ehci0 { 86 status = "okay"; 86 status = "okay"; 87 }; 87 }; 88 88 89 &ehci1 { 89 &ehci1 { 90 status = "okay"; 90 status = "okay"; 91 }; 91 }; 92 92 93 &hdmi { 93 &hdmi { 94 hvcc-supply = <®_dldo1>; 94 hvcc-supply = <®_dldo1>; 95 status = "okay"; 95 status = "okay"; 96 }; 96 }; 97 97 98 &hdmi_out { 98 &hdmi_out { 99 hdmi_out_con: endpoint { 99 hdmi_out_con: endpoint { 100 remote-endpoint = <&hdmi_con_i 100 remote-endpoint = <&hdmi_con_in>; 101 }; 101 }; 102 }; 102 }; 103 103 104 /* Connects to the AC200 chip */ 104 /* Connects to the AC200 chip */ 105 &i2c0 { 105 &i2c0 { 106 pinctrl-names = "default"; 106 pinctrl-names = "default"; 107 pinctrl-0 = <&i2c0_pins>; 107 pinctrl-0 = <&i2c0_pins>; 108 status = "okay"; 108 status = "okay"; 109 }; 109 }; 110 110 111 &i2c0_pins { 111 &i2c0_pins { 112 bias-pull-up; 112 bias-pull-up; 113 }; 113 }; 114 114 115 &mmc0 { 115 &mmc0 { 116 pinctrl-names = "default"; 116 pinctrl-names = "default"; 117 pinctrl-0 = <&mmc0_pins>; 117 pinctrl-0 = <&mmc0_pins>; 118 vmmc-supply = <®_dcdc1>; 118 vmmc-supply = <®_dcdc1>; 119 cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; 119 cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; 120 disable-wp; 120 disable-wp; 121 bus-width = <4>; 121 bus-width = <4>; 122 status = "okay"; 122 status = "okay"; 123 }; 123 }; 124 124 125 &mmc1 { 125 &mmc1 { 126 pinctrl-names = "default"; 126 pinctrl-names = "default"; 127 pinctrl-0 = <&mmc1_pins>; 127 pinctrl-0 = <&mmc1_pins>; 128 vmmc-supply = <®_aldo1>; 128 vmmc-supply = <®_aldo1>; 129 vqmmc-supply = <®_dldo4>; 129 vqmmc-supply = <®_dldo4>; 130 mmc-pwrseq = <&wifi_pwrseq>; 130 mmc-pwrseq = <&wifi_pwrseq>; 131 bus-width = <4>; 131 bus-width = <4>; 132 non-removable; 132 non-removable; 133 status = "okay"; 133 status = "okay"; 134 134 135 rtl8723bs: wifi@1 { 135 rtl8723bs: wifi@1 { 136 reg = <1>; 136 reg = <1>; 137 interrupt-parent = <&r_pio>; 137 interrupt-parent = <&r_pio>; 138 interrupts = <0 3 IRQ_TYPE_LEV 138 interrupts = <0 3 IRQ_TYPE_LEVEL_LOW>; /* PL3 */ 139 interrupt-names = "host-wake"; 139 interrupt-names = "host-wake"; 140 }; 140 }; 141 }; 141 }; 142 142 143 &mmc2 { 143 &mmc2 { 144 pinctrl-names = "default"; 144 pinctrl-names = "default"; 145 pinctrl-0 = <&mmc2_pins>, <&mmc2_ds_pi 145 pinctrl-0 = <&mmc2_pins>, <&mmc2_ds_pin>; 146 vmmc-supply = <®_dcdc1>; 146 vmmc-supply = <®_dcdc1>; 147 vqmmc-supply = <®_eldo1>; 147 vqmmc-supply = <®_eldo1>; 148 bus-width = <8>; 148 bus-width = <8>; 149 non-removable; 149 non-removable; 150 mmc-hs200-1_8v; 150 mmc-hs200-1_8v; 151 mmc-hs400-1_8v; 151 mmc-hs400-1_8v; 152 cap-mmc-hw-reset; 152 cap-mmc-hw-reset; 153 status = "okay"; 153 status = "okay"; 154 }; 154 }; 155 155 156 &ohci0 { 156 &ohci0 { 157 status = "okay"; 157 status = "okay"; 158 }; 158 }; 159 159 160 &ohci1 { 160 &ohci1 { 161 status = "okay"; 161 status = "okay"; 162 }; 162 }; 163 163 164 &pio { 164 &pio { 165 vcc-pb-supply = <®_dcdc1>; 165 vcc-pb-supply = <®_dcdc1>; 166 vcc-pc-supply = <®_dcdc1>; 166 vcc-pc-supply = <®_dcdc1>; 167 vcc-pd-supply = <®_dcdc1>; 167 vcc-pd-supply = <®_dcdc1>; 168 vcc-pe-supply = <®_dcdc1>; 168 vcc-pe-supply = <®_dcdc1>; 169 vcc-pf-supply = <®_dcdc1>; 169 vcc-pf-supply = <®_dcdc1>; 170 vcc-pg-supply = <®_dldo4>; 170 vcc-pg-supply = <®_dldo4>; 171 vcc-ph-supply = <®_dcdc1>; 171 vcc-ph-supply = <®_dcdc1>; 172 }; 172 }; 173 173 174 &r_ir { 174 &r_ir { 175 status = "okay"; 175 status = "okay"; 176 }; 176 }; 177 177 178 &r_pio { 178 &r_pio { 179 /* 179 /* 180 * We cannot add that supply for now s 180 * We cannot add that supply for now since it would create a circular 181 * dependency between pinctrl, the reg 181 * dependency between pinctrl, the regulator and the RSB Bus. 182 * 182 * 183 * vcc-pl-supply = <®_aldo2>; 183 * vcc-pl-supply = <®_aldo2>; 184 */ 184 */ 185 }; 185 }; 186 186 187 &r_rsb { 187 &r_rsb { 188 status = "okay"; 188 status = "okay"; 189 189 190 axp803: pmic@3a3 { 190 axp803: pmic@3a3 { 191 compatible = "x-powers,axp803" 191 compatible = "x-powers,axp803"; 192 reg = <0x3a3>; 192 reg = <0x3a3>; 193 interrupt-parent = <&r_intc>; 193 interrupt-parent = <&r_intc>; 194 interrupts = <GIC_SPI 32 IRQ_T 194 interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_LOW>; 195 x-powers,drive-vbus-en; 195 x-powers,drive-vbus-en; 196 196 197 vin1-supply = <®_vcc5v>; 197 vin1-supply = <®_vcc5v>; 198 vin2-supply = <®_vcc5v>; 198 vin2-supply = <®_vcc5v>; 199 vin3-supply = <®_vcc5v>; 199 vin3-supply = <®_vcc5v>; 200 vin5-supply = <®_vcc5v>; 200 vin5-supply = <®_vcc5v>; 201 vin6-supply = <®_vcc5v>; 201 vin6-supply = <®_vcc5v>; 202 aldoin-supply = <®_vcc5v>; 202 aldoin-supply = <®_vcc5v>; 203 dldoin-supply = <®_vcc5v>; 203 dldoin-supply = <®_vcc5v>; 204 eldoin-supply = <®_vcc5v>; 204 eldoin-supply = <®_vcc5v>; 205 fldoin-supply = <®_vcc5v>; 205 fldoin-supply = <®_vcc5v>; 206 drivevbus-supply = <®_vcc5v 206 drivevbus-supply = <®_vcc5v>; 207 ips-supply = <®_vcc5v>; 207 ips-supply = <®_vcc5v>; 208 208 209 status = "okay"; 209 status = "okay"; 210 }; 210 }; 211 }; 211 }; 212 212 213 #include "axp803.dtsi" 213 #include "axp803.dtsi" 214 214 215 &ac_power_supply { 215 &ac_power_supply { 216 status = "okay"; 216 status = "okay"; 217 }; 217 }; 218 218 219 ®_dcdc1 { 219 ®_dcdc1 { 220 regulator-always-on; 220 regulator-always-on; 221 regulator-min-microvolt = <3300000>; 221 regulator-min-microvolt = <3300000>; 222 regulator-max-microvolt = <3300000>; 222 regulator-max-microvolt = <3300000>; 223 regulator-name = "vcc-3v3"; 223 regulator-name = "vcc-3v3"; 224 }; 224 }; 225 225 226 ®_dcdc2 { 226 ®_dcdc2 { 227 regulator-always-on; 227 regulator-always-on; 228 regulator-min-microvolt = <1040000>; 228 regulator-min-microvolt = <1040000>; 229 regulator-max-microvolt = <1300000>; 229 regulator-max-microvolt = <1300000>; 230 regulator-name = "vdd-cpux"; 230 regulator-name = "vdd-cpux"; 231 }; 231 }; 232 232 233 /* DCDC3 is polyphased with DCDC2 */ 233 /* DCDC3 is polyphased with DCDC2 */ 234 234 235 ®_dcdc5 { 235 ®_dcdc5 { 236 regulator-always-on; 236 regulator-always-on; 237 regulator-min-microvolt = <1500000>; 237 regulator-min-microvolt = <1500000>; 238 regulator-max-microvolt = <1500000>; 238 regulator-max-microvolt = <1500000>; 239 regulator-name = "vcc-dram"; 239 regulator-name = "vcc-dram"; 240 }; 240 }; 241 241 242 /* Deviates from the reset default of 1.1V. */ 242 /* Deviates from the reset default of 1.1V. */ 243 ®_dcdc6 { 243 ®_dcdc6 { 244 regulator-always-on; 244 regulator-always-on; 245 regulator-min-microvolt = <1200000>; 245 regulator-min-microvolt = <1200000>; 246 regulator-max-microvolt = <1200000>; 246 regulator-max-microvolt = <1200000>; 247 regulator-name = "vdd-sys"; 247 regulator-name = "vdd-sys"; 248 }; 248 }; 249 249 250 ®_aldo1 { 250 ®_aldo1 { 251 regulator-min-microvolt = <3300000>; 251 regulator-min-microvolt = <3300000>; 252 regulator-max-microvolt = <3300000>; 252 regulator-max-microvolt = <3300000>; 253 regulator-name = "vcc-wifi"; 253 regulator-name = "vcc-wifi"; 254 }; 254 }; 255 255 256 ®_aldo2 { 256 ®_aldo2 { 257 /* Specifying R_PIO consumer would cre 257 /* Specifying R_PIO consumer would create circular dependency. */ 258 regulator-always-on; 258 regulator-always-on; 259 regulator-min-microvolt = <3300000>; 259 regulator-min-microvolt = <3300000>; 260 regulator-max-microvolt = <3300000>; 260 regulator-max-microvolt = <3300000>; 261 regulator-name = "vcc-pl"; 261 regulator-name = "vcc-pl"; 262 }; 262 }; 263 263 264 ®_aldo3 { 264 ®_aldo3 { 265 regulator-always-on; 265 regulator-always-on; 266 regulator-min-microvolt = <3000000>; 266 regulator-min-microvolt = <3000000>; 267 regulator-max-microvolt = <3000000>; 267 regulator-max-microvolt = <3000000>; 268 regulator-name = "vcc-pll-avcc"; 268 regulator-name = "vcc-pll-avcc"; 269 }; 269 }; 270 270 271 /* AC200 power supply */ 271 /* AC200 power supply */ 272 ®_dldo1 { 272 ®_dldo1 { 273 regulator-always-on; 273 regulator-always-on; 274 regulator-min-microvolt = <3300000>; 274 regulator-min-microvolt = <3300000>; 275 regulator-max-microvolt = <3300000>; 275 regulator-max-microvolt = <3300000>; 276 regulator-name = "vcc-ave-33"; 276 regulator-name = "vcc-ave-33"; 277 }; 277 }; 278 278 279 ®_dldo4 { 279 ®_dldo4 { 280 regulator-min-microvolt = <3300000>; 280 regulator-min-microvolt = <3300000>; 281 regulator-max-microvolt = <3300000>; 281 regulator-max-microvolt = <3300000>; 282 regulator-name = "vcc-wifi-io"; 282 regulator-name = "vcc-wifi-io"; 283 }; 283 }; 284 284 285 ®_drivevbus { 285 ®_drivevbus { 286 regulator-name = "usb0-vbus"; 286 regulator-name = "usb0-vbus"; 287 status = "okay"; 287 status = "okay"; 288 }; 288 }; 289 289 290 ®_eldo1 { 290 ®_eldo1 { 291 regulator-always-on; 291 regulator-always-on; 292 regulator-min-microvolt = <1800000>; 292 regulator-min-microvolt = <1800000>; 293 regulator-max-microvolt = <1800000>; 293 regulator-max-microvolt = <1800000>; 294 regulator-name = "vcc-cpvdd-dram-emmc" 294 regulator-name = "vcc-cpvdd-dram-emmc"; 295 }; 295 }; 296 296 297 /* Supplies the arisc management core, needed 297 /* Supplies the arisc management core, needed by TF-A to power off cores. */ 298 ®_fldo2 { 298 ®_fldo2 { 299 regulator-always-on; 299 regulator-always-on; 300 regulator-min-microvolt = <1100000>; 300 regulator-min-microvolt = <1100000>; 301 regulator-max-microvolt = <1100000>; 301 regulator-max-microvolt = <1100000>; 302 regulator-name = "vdd-cpus"; 302 regulator-name = "vdd-cpus"; 303 }; 303 }; 304 304 305 ®_rtc_ldo { 305 ®_rtc_ldo { 306 regulator-name = "vcc-rtc"; 306 regulator-name = "vcc-rtc"; 307 }; 307 }; 308 308 309 &simplefb_hdmi { 309 &simplefb_hdmi { 310 vcc-hdmi-supply = <®_dcdc1>; 310 vcc-hdmi-supply = <®_dcdc1>; 311 }; 311 }; 312 312 313 &sound { 313 &sound { 314 simple-audio-card,aux-devs = <&codec_a 314 simple-audio-card,aux-devs = <&codec_analog>; 315 simple-audio-card,widgets = "Microphon 315 simple-audio-card,widgets = "Microphone", "Microphone Jack", 316 "Headphone 316 "Headphone", "Headphone Jack"; 317 simple-audio-card,routing = 317 simple-audio-card,routing = 318 "Left DAC", "DACL", 318 "Left DAC", "DACL", 319 "Right DAC", "DACR", 319 "Right DAC", "DACR", 320 "Headphone Jack", "HP" 320 "Headphone Jack", "HP", 321 "ADCL", "Left ADC", 321 "ADCL", "Left ADC", 322 "ADCR", "Right ADC", 322 "ADCR", "Right ADC", 323 "MIC2", "Microphone Ja 323 "MIC2", "Microphone Jack"; 324 status = "okay"; 324 status = "okay"; 325 }; 325 }; 326 326 327 /* On the (unpopulated) UART pads. */ 327 /* On the (unpopulated) UART pads. */ 328 &uart0 { 328 &uart0 { 329 pinctrl-names = "default"; 329 pinctrl-names = "default"; 330 pinctrl-0 = <&uart0_pb_pins>; 330 pinctrl-0 = <&uart0_pb_pins>; 331 status = "okay"; 331 status = "okay"; 332 }; 332 }; 333 333 334 &uart1 { 334 &uart1 { 335 pinctrl-names = "default"; 335 pinctrl-names = "default"; 336 pinctrl-0 = <&uart1_pins>, <&uart1_rts 336 pinctrl-0 = <&uart1_pins>, <&uart1_rts_cts_pins>; 337 uart-has-rtscts; 337 uart-has-rtscts; 338 status = "okay"; 338 status = "okay"; 339 339 340 bluetooth { 340 bluetooth { 341 compatible = "realtek,rtl8723b 341 compatible = "realtek,rtl8723bs-bt"; 342 enable-gpios = <&r_pio 0 4 GPI 342 enable-gpios = <&r_pio 0 4 GPIO_ACTIVE_HIGH>; /* PL4 */ 343 max-speed = <1500000>; 343 max-speed = <1500000>; 344 }; 344 }; 345 }; 345 }; 346 346 347 &usb_otg { 347 &usb_otg { 348 dr_mode = "host"; 348 dr_mode = "host"; 349 status = "okay"; 349 status = "okay"; 350 }; 350 }; 351 351 352 &usbphy { 352 &usbphy { 353 usb0_vbus-supply = <®_drivevbus>; 353 usb0_vbus-supply = <®_drivevbus>; 354 usb1_vbus-supply = <®_drivevbus>; 354 usb1_vbus-supply = <®_drivevbus>; 355 status = "okay"; 355 status = "okay"; 356 }; 356 };
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.