1// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2/* 3 * Copyright (c) 2019 Akash Gajjar <akash@openedev.com> 4 * Copyright (c) 2019 Jagan Teki <jagan@openedev.com> 5 * Copyright (C) 2024 TheSnowfield <thesnowfield@sakurapi.org> 6 * Copyright (C) 2025 Hsun Lai <i@chainsx.cn> 7 */ 8 9/dts-v1/; 10#include "rk3308.dtsi" 11#include <dt-bindings/leds/common.h> 12 13/ { 14 model = "Sakura Pi RK3308B"; 15 compatible = "sakurapi,rk3308-sakurapi-rk3308b", "rockchip,rk3308"; 16 17 aliases { 18 mmc0 = &emmc; 19 mmc1 = &sdmmc; 20 mmc2 = &sdio; 21 }; 22 23 chosen { 24 stdout-path = "serial2:1500000n8"; 25 }; 26 27 vcc5v0_sys: regulator-vcc5v0-sys { 28 compatible = "regulator-fixed"; 29 regulator-name = "vcc5v0_sys"; 30 regulator-always-on; 31 regulator-boot-on; 32 regulator-min-microvolt = <5000000>; 33 regulator-max-microvolt = <5000000>; 34 }; 35 36 vdd_core: regulator-vdd-core { 37 compatible = "pwm-regulator"; 38 pwms = <&pwm0 0 5000 1>; 39 regulator-name = "vdd_core"; 40 regulator-min-microvolt = <827000>; 41 regulator-max-microvolt = <1340000>; 42 regulator-settling-time-up-us = <250>; 43 regulator-always-on; 44 regulator-boot-on; 45 pwm-supply = <&vcc5v0_sys>; 46 }; 47 48 vdd_log: regulator-vdd-log { 49 compatible = "regulator-fixed"; 50 regulator-name = "vdd_log"; 51 regulator-always-on; 52 regulator-boot-on; 53 regulator-min-microvolt = <1050000>; 54 regulator-max-microvolt = <1050000>; 55 vin-supply = <&vcc5v0_sys>; 56 }; 57 58 vcc_ddr: regulator-vcc-ddr { 59 compatible = "regulator-fixed"; 60 regulator-name = "vcc_ddr"; 61 regulator-always-on; 62 regulator-boot-on; 63 regulator-min-microvolt = <1500000>; 64 regulator-max-microvolt = <1500000>; 65 vin-supply = <&vcc5v0_sys>; 66 }; 67 68 vcc_1v8: regulator-vcc-1v8 { 69 compatible = "regulator-fixed"; 70 regulator-name = "vcc_1v8"; 71 regulator-always-on; 72 regulator-boot-on; 73 regulator-min-microvolt = <1800000>; 74 regulator-max-microvolt = <1800000>; 75 vin-supply = <&vcc_io>; 76 }; 77 78 vcc_io: regulator-vcc-io { 79 compatible = "regulator-fixed"; 80 regulator-name = "vcc_io"; 81 regulator-always-on; 82 regulator-boot-on; 83 regulator-min-microvolt = <3300000>; 84 regulator-max-microvolt = <3300000>; 85 vin-supply = <&vcc5v0_sys>; 86 }; 87 88 vcc_phy: regulator-vcc-phy-regulator { 89 compatible = "regulator-fixed"; 90 regulator-name = "vcc_phy"; 91 regulator-always-on; 92 regulator-boot-on; 93 }; 94 95 vcc5v0_otg: regulator-vcc5v0-otg { 96 compatible = "regulator-fixed"; 97 enable-active-high; 98 gpio = <&gpio0 RK_PC5 GPIO_ACTIVE_HIGH>; 99 pinctrl-names = "default"; 100 pinctrl-0 = <&otg_vbus_drv>; 101 regulator-name = "vcc5v0_otg"; 102 regulator-always-on; 103 vin-supply = <&vcc5v0_sys>; 104 }; 105 106 sdio_pwrseq: sdio-pwrseq { 107 compatible = "mmc-pwrseq-simple"; 108 pinctrl-0 = <&wifi_enable_h>; 109 pinctrl-names = "default"; 110 /* 111 * On the module itself this is one of these (depending 112 * on the actual card populated): 113 * - SDIO_RESET_L_WL_REG_ON 114 * - PDN (power down when low) 115 */ 116 reset-gpios = <&gpio0 RK_PA2 GPIO_ACTIVE_LOW>; 117 }; 118}; 119 120&cpu0 { 121 cpu-supply = <&vdd_core>; 122}; 123 124&emmc { 125 bus-width = <8>; 126 cap-mmc-highspeed; 127 non-removable; 128 status = "okay"; 129}; 130 131&i2c1 { 132 status = "okay"; 133}; 134 135&pinctrl { 136 pinctrl-names = "default"; 137 pinctrl-0 = <&rtc_32k>; 138 139 bluetooth { 140 bt_reg_on: bt-reg-on { 141 rockchip,pins = <4 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>; 142 }; 143 144 bt_wake_host: bt-wake-host { 145 rockchip,pins = <4 RK_PB4 RK_FUNC_GPIO &pcfg_pull_none>; 146 }; 147 148 host_wake_bt: host-wake-bt { 149 rockchip,pins = <4 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>; 150 }; 151 }; 152 153 sdio-pwrseq { 154 wifi_enable_h: wifi-enable-h { 155 rockchip,pins = <0 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>; 156 }; 157 }; 158 159 usb { 160 otg_vbus_drv: otg-vbus-drv { 161 rockchip,pins = <0 RK_PC5 RK_FUNC_GPIO &pcfg_pull_none>; 162 }; 163 }; 164 165 wifi { 166 wifi_host_wake: wifi-host-wake { 167 rockchip,pins = <0 RK_PA0 RK_FUNC_GPIO &pcfg_pull_down>; 168 }; 169 }; 170}; 171 172&pwm0 { 173 status = "okay"; 174 pinctrl-0 = <&pwm0_pin_pull_down>; 175}; 176 177&pwm3 { 178 status = "okay"; 179}; 180 181&saradc { 182 vref-supply = <&vcc_1v8>; 183 status = "okay"; 184}; 185 186&sdio { 187 #address-cells = <1>; 188 #size-cells = <0>; 189 cap-sd-highspeed; 190 cap-sdio-irq; 191 keep-power-in-suspend; 192 mmc-pwrseq = <&sdio_pwrseq>; 193 non-removable; 194 no-mmc; 195 no-sd; 196 status = "okay"; 197 198 brcmf: wifi@1 { 199 compatible = "brcm,bcm43455-fmac", "brcm,bcm4329-fmac"; 200 reg = <1>; 201 interrupt-parent = <&gpio0>; 202 interrupts = <RK_PA3 GPIO_ACTIVE_HIGH>; 203 interrupt-names = "host-wake"; 204 pinctrl-names = "default"; 205 pinctrl-0 = <&wifi_host_wake>; 206 }; 207}; 208 209&sdmmc { 210 cap-mmc-highspeed; 211 cap-sd-highspeed; 212 disable-wp; 213 pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_det &sdmmc_bus4>; 214 card-detect-delay = <800>; 215 status = "okay"; 216}; 217 218&uart2 { 219 pinctrl-names = "default"; 220 pinctrl-0 = <&uart2m0_xfer>; 221 status = "okay"; 222}; 223 224&uart4 { 225 pinctrl-names = "default"; 226 uart-has-rtscts; 227 status = "okay"; 228 229 bluetooth { 230 compatible = "brcm,bcm4345c5"; 231 clocks = <&cru SCLK_RTC32K>; 232 clock-names = "lpo"; 233 pinctrl-names = "default"; 234 pinctrl-0 = <&host_wake_bt &bt_wake_host &bt_reg_on>; 235 device-wakeup-gpios = <&gpio4 RK_PB4 GPIO_ACTIVE_HIGH>; 236 host-wakeup-gpios = <&gpio4 RK_PB2 GPIO_ACTIVE_HIGH>; 237 shutdown-gpios = <&gpio4 RK_PB3 GPIO_ACTIVE_HIGH>; 238 max-speed = <1500000>; 239 }; 240}; 241 242&u2phy { 243 status = "okay"; 244}; 245 246&u2phy_otg { 247 status = "okay"; 248}; 249 250&u2phy_host { 251 status = "okay"; 252}; 253 254&usb20_otg { 255 dr_mode = "peripheral"; 256 status = "okay"; 257}; 258 259&usb_host_ehci { 260 status = "okay"; 261}; 262 263&usb_host_ohci { 264 status = "okay"; 265}; 266