1// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2// Copyright (C) 2019 Clément Péron <peron.clem@gmail.com> 3 4/dts-v1/; 5 6#include "sun50i-h6.dtsi" 7#include "sun50i-h6-cpu-opp.dtsi" 8 9#include <dt-bindings/gpio/gpio.h> 10 11/ { 12 model = "Beelink GS1"; 13 compatible = "azw,beelink-gs1", "allwinner,sun50i-h6"; 14 15 aliases { 16 ethernet0 = &emac; 17 serial0 = &uart0; 18 }; 19 20 chosen { 21 stdout-path = "serial0:115200n8"; 22 }; 23 24 connector { 25 compatible = "hdmi-connector"; 26 type = "a"; 27 ddc-en-gpios = <&pio 7 2 GPIO_ACTIVE_HIGH>; /* PH2 */ 28 29 port { 30 hdmi_con_in: endpoint { 31 remote-endpoint = <&hdmi_out_con>; 32 }; 33 }; 34 }; 35 36 ext_osc32k: ext_osc32k_clk { 37 #clock-cells = <0>; 38 compatible = "fixed-clock"; 39 clock-frequency = <32768>; 40 clock-output-names = "ext_osc32k"; 41 }; 42 43 leds { 44 compatible = "gpio-leds"; 45 46 led { 47 label = "beelink:white:power"; 48 gpios = <&r_pio 0 4 GPIO_ACTIVE_HIGH>; /* PL4 */ 49 default-state = "on"; 50 }; 51 }; 52 53 reg_vcc5v: vcc5v { 54 /* board wide 5V supply directly from the DC jack */ 55 compatible = "regulator-fixed"; 56 regulator-name = "vcc-5v"; 57 regulator-min-microvolt = <5000000>; 58 regulator-max-microvolt = <5000000>; 59 regulator-always-on; 60 }; 61 62 sound-spdif { 63 compatible = "simple-audio-card"; 64 simple-audio-card,name = "sun50i-h6-spdif"; 65 66 simple-audio-card,cpu { 67 sound-dai = <&spdif>; 68 }; 69 70 simple-audio-card,codec { 71 sound-dai = <&spdif_out>; 72 }; 73 }; 74 75 spdif_out: spdif-out { 76 #sound-dai-cells = <0>; 77 compatible = "linux,spdif-dit"; 78 }; 79}; 80 81&cpu0 { 82 cpu-supply = <®_dcdca>; 83}; 84 85&de { 86 status = "okay"; 87}; 88 89&dwc3 { 90 status = "okay"; 91}; 92 93&ehci0 { 94 status = "okay"; 95}; 96 97&emac { 98 pinctrl-names = "default"; 99 pinctrl-0 = <&ext_rgmii_pins>; 100 phy-mode = "rgmii-id"; 101 phy-handle = <&ext_rgmii_phy>; 102 phy-supply = <®_aldo2>; 103 status = "okay"; 104}; 105 106&gpu { 107 mali-supply = <®_dcdcc>; 108 status = "okay"; 109}; 110 111&hdmi { 112 status = "okay"; 113}; 114 115&hdmi_out { 116 hdmi_out_con: endpoint { 117 remote-endpoint = <&hdmi_con_in>; 118 }; 119}; 120 121&mdio { 122 ext_rgmii_phy: ethernet-phy@1 { 123 compatible = "ethernet-phy-ieee802.3-c22"; 124 reg = <1>; 125 }; 126}; 127 128&mmc0 { 129 vmmc-supply = <®_cldo1>; 130 cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; 131 bus-width = <4>; 132 status = "okay"; 133}; 134 135&mmc2 { 136 vmmc-supply = <®_cldo1>; 137 vqmmc-supply = <®_bldo2>; 138 non-removable; 139 cap-mmc-hw-reset; 140 bus-width = <8>; 141 status = "okay"; 142}; 143 144&ohci0 { 145 status = "okay"; 146}; 147 148&pio { 149 vcc-pd-supply = <®_cldo1>; 150 vcc-pg-supply = <®_aldo1>; 151}; 152 153&r_ir { 154 linux,rc-map-name = "rc-beelink-gs1"; 155 status = "okay"; 156}; 157 158&r_pio { 159 /* 160 * FIXME: We can't add that supply for now since it would 161 * create a circular dependency between pinctrl, the regulator 162 * and the RSB Bus. 163 * 164 * vcc-pl-supply = <®_aldo1>; 165 */ 166 vcc-pm-supply = <®_aldo1>; 167}; 168 169&r_rsb { 170 status = "okay"; 171 172 axp805: pmic@745 { 173 compatible = "x-powers,axp805", "x-powers,axp806"; 174 reg = <0x745>; 175 interrupt-parent = <&r_intc>; 176 interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_LOW>; 177 interrupt-controller; 178 #interrupt-cells = <1>; 179 x-powers,self-working-mode; 180 vina-supply = <®_vcc5v>; 181 vinb-supply = <®_vcc5v>; 182 vinc-supply = <®_vcc5v>; 183 vind-supply = <®_vcc5v>; 184 vine-supply = <®_vcc5v>; 185 aldoin-supply = <®_vcc5v>; 186 bldoin-supply = <®_vcc5v>; 187 cldoin-supply = <®_vcc5v>; 188 189 regulators { 190 reg_aldo1: aldo1 { 191 regulator-always-on; 192 regulator-min-microvolt = <3300000>; 193 regulator-max-microvolt = <3300000>; 194 regulator-name = "vcc-pl"; 195 }; 196 197 reg_aldo2: aldo2 { 198 regulator-min-microvolt = <3300000>; 199 regulator-max-microvolt = <3300000>; 200 regulator-name = "vcc-ac200"; 201 regulator-enable-ramp-delay = <100000>; 202 }; 203 204 reg_aldo3: aldo3 { 205 regulator-always-on; 206 regulator-min-microvolt = <3300000>; 207 regulator-max-microvolt = <3300000>; 208 regulator-name = "vcc25-dram"; 209 }; 210 211 reg_bldo1: bldo1 { 212 regulator-always-on; 213 regulator-min-microvolt = <1800000>; 214 regulator-max-microvolt = <1800000>; 215 regulator-name = "vcc-bias-pll"; 216 }; 217 218 reg_bldo2: bldo2 { 219 regulator-always-on; 220 regulator-min-microvolt = <1800000>; 221 regulator-max-microvolt = <1800000>; 222 regulator-name = "vcc-efuse-pcie-hdmi-io"; 223 }; 224 225 reg_bldo3: bldo3 { 226 regulator-always-on; 227 regulator-min-microvolt = <1800000>; 228 regulator-max-microvolt = <1800000>; 229 regulator-name = "vcc-dcxoio"; 230 }; 231 232 bldo4 { 233 /* unused */ 234 }; 235 236 reg_cldo1: cldo1 { 237 regulator-always-on; 238 regulator-min-microvolt = <3300000>; 239 regulator-max-microvolt = <3300000>; 240 regulator-name = "vcc-3v3"; 241 }; 242 243 reg_cldo2: cldo2 { 244 regulator-min-microvolt = <3300000>; 245 regulator-max-microvolt = <3300000>; 246 regulator-name = "vcc-wifi-1"; 247 }; 248 249 reg_cldo3: cldo3 { 250 regulator-min-microvolt = <3300000>; 251 regulator-max-microvolt = <3300000>; 252 regulator-name = "vcc-wifi-2"; 253 }; 254 255 reg_dcdca: dcdca { 256 regulator-always-on; 257 regulator-min-microvolt = <810000>; 258 regulator-max-microvolt = <1160000>; 259 regulator-ramp-delay = <2500>; 260 regulator-name = "vdd-cpu"; 261 }; 262 263 reg_dcdcc: dcdcc { 264 regulator-enable-ramp-delay = <32000>; 265 regulator-min-microvolt = <810000>; 266 regulator-max-microvolt = <1080000>; 267 regulator-ramp-delay = <2500>; 268 regulator-name = "vdd-gpu"; 269 }; 270 271 reg_dcdcd: dcdcd { 272 regulator-always-on; 273 regulator-min-microvolt = <960000>; 274 regulator-max-microvolt = <960000>; 275 regulator-name = "vdd-sys"; 276 }; 277 278 reg_dcdce: dcdce { 279 regulator-always-on; 280 regulator-min-microvolt = <1200000>; 281 regulator-max-microvolt = <1200000>; 282 regulator-name = "vcc-dram"; 283 }; 284 285 sw { 286 /* unused */ 287 }; 288 }; 289 }; 290}; 291 292&spdif { 293 status = "okay"; 294}; 295 296&uart0 { 297 pinctrl-names = "default"; 298 pinctrl-0 = <&uart0_ph_pins>; 299 status = "okay"; 300}; 301 302&usb2otg { 303 dr_mode = "host"; 304 status = "okay"; 305}; 306 307&usb2phy { 308 usb0_vbus-supply = <®_vcc5v>; 309 status = "okay"; 310}; 311 312&usb3phy { 313 status = "okay"; 314}; 315