-
Notifications
You must be signed in to change notification settings - Fork 22
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
arm64: dts: rockchip: Add Radxa ROCK S0
Radxa ROCK S0 is a single-board computer based on the Rockchip RK3308B SoC in an ultra-compact form factor. Add initial support for eMMC, SD-card, Ethernet, WiFi/BT and USB. Signed-off-by: Jonas Karlman <jonas@kwiboo.se> Link: https://lore.kernel.org/r/20240521212247.1240226-3-jonas@kwiboo.se Signed-off-by: Heiko Stuebner <heiko@sntech.de> [ upstream commit: adeb5d2a4ba47910238b3c4f5fd960cc0c26a98b ] (cherry picked from commit e291d457b0378f2cb3d3ebb597032ca862cdb973) Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
- Loading branch information
Showing
1 changed file
with
293 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,293 @@ | ||
// SPDX-License-Identifier: (GPL-2.0+ OR MIT) | ||
|
||
/dts-v1/; | ||
|
||
#include <dt-bindings/leds/common.h> | ||
#include "rk3308.dtsi" | ||
|
||
/ { | ||
model = "Radxa ROCK S0"; | ||
compatible = "radxa,rock-s0", "rockchip,rk3308"; | ||
|
||
aliases { | ||
ethernet0 = &gmac; | ||
mmc0 = &emmc; | ||
mmc1 = &sdmmc; | ||
mmc2 = &sdio; | ||
}; | ||
|
||
chosen { | ||
stdout-path = "serial0:1500000n8"; | ||
}; | ||
|
||
leds { | ||
compatible = "gpio-leds"; | ||
pinctrl-names = "default"; | ||
pinctrl-0 = <&pwr_led>; | ||
|
||
led-green { | ||
color = <LED_COLOR_ID_GREEN>; | ||
default-state = "on"; | ||
function = LED_FUNCTION_HEARTBEAT; | ||
gpios = <&gpio0 RK_PB6 GPIO_ACTIVE_HIGH>; | ||
linux,default-trigger = "heartbeat"; | ||
}; | ||
}; | ||
|
||
vdd_log: regulator-1v04-vdd-log { | ||
compatible = "regulator-fixed"; | ||
regulator-name = "vdd_log"; | ||
regulator-always-on; | ||
regulator-boot-on; | ||
regulator-min-microvolt = <1040000>; | ||
regulator-max-microvolt = <1040000>; | ||
vin-supply = <&vcc5v0_sys>; | ||
}; | ||
|
||
vcc_ddr: regulator-1v5-vcc-ddr { | ||
compatible = "regulator-fixed"; | ||
regulator-name = "vcc_ddr"; | ||
regulator-always-on; | ||
regulator-boot-on; | ||
regulator-min-microvolt = <1500000>; | ||
regulator-max-microvolt = <1500000>; | ||
vin-supply = <&vcc5v0_sys>; | ||
}; | ||
|
||
vcc_1v8: regulator-1v8-vcc { | ||
compatible = "regulator-fixed"; | ||
regulator-name = "vcc_1v8"; | ||
regulator-always-on; | ||
regulator-boot-on; | ||
regulator-min-microvolt = <1800000>; | ||
regulator-max-microvolt = <1800000>; | ||
vin-supply = <&vcc_io>; | ||
}; | ||
|
||
vcc_io: regulator-3v3-vcc-io { | ||
compatible = "regulator-fixed"; | ||
regulator-name = "vcc_io"; | ||
regulator-always-on; | ||
regulator-boot-on; | ||
regulator-min-microvolt = <3300000>; | ||
regulator-max-microvolt = <3300000>; | ||
vin-supply = <&vcc5v0_sys>; | ||
}; | ||
|
||
vcc5v0_sys: regulator-5v0-vcc-sys { | ||
compatible = "regulator-fixed"; | ||
regulator-name = "vcc5v0_sys"; | ||
regulator-always-on; | ||
regulator-boot-on; | ||
regulator-min-microvolt = <5000000>; | ||
regulator-max-microvolt = <5000000>; | ||
}; | ||
|
||
vdd_core: regulator-vdd-core { | ||
compatible = "pwm-regulator"; | ||
pwms = <&pwm0 0 5000 1>; | ||
pwm-supply = <&vcc5v0_sys>; | ||
regulator-name = "vdd_core"; | ||
regulator-always-on; | ||
regulator-boot-on; | ||
regulator-min-microvolt = <827000>; | ||
regulator-max-microvolt = <1340000>; | ||
regulator-settling-time-up-us = <250>; | ||
}; | ||
|
||
sdio_pwrseq: sdio-pwrseq { | ||
compatible = "mmc-pwrseq-simple"; | ||
pinctrl-names = "default"; | ||
pinctrl-0 = <&wifi_reg_on>; | ||
reset-gpios = <&gpio0 RK_PA2 GPIO_ACTIVE_LOW>; | ||
}; | ||
}; | ||
|
||
&cpu0 { | ||
cpu-supply = <&vdd_core>; | ||
}; | ||
|
||
&emmc { | ||
cap-mmc-highspeed; | ||
no-sd; | ||
no-sdio; | ||
non-removable; | ||
pinctrl-names = "default"; | ||
pinctrl-0 = <&emmc_bus8 &emmc_clk &emmc_cmd &emmc_pwren>; | ||
vmmc-supply = <&vcc_io>; | ||
status = "okay"; | ||
}; | ||
|
||
&gmac { | ||
clock_in_out = "output"; | ||
phy-handle = <&rtl8201f>; | ||
phy-supply = <&vcc_io>; | ||
status = "okay"; | ||
|
||
mdio { | ||
compatible = "snps,dwmac-mdio"; | ||
#address-cells = <1>; | ||
#size-cells = <0>; | ||
|
||
rtl8201f: ethernet-phy@1 { | ||
compatible = "ethernet-phy-ieee802.3-c22"; | ||
reg = <1>; | ||
pinctrl-names = "default"; | ||
pinctrl-0 = <&mac_rst>; | ||
reset-assert-us = <20000>; | ||
reset-deassert-us = <50000>; | ||
reset-gpios = <&gpio0 RK_PA7 GPIO_ACTIVE_LOW>; | ||
}; | ||
}; | ||
}; | ||
|
||
&io_domains { | ||
vccio0-supply = <&vcc_io>; | ||
vccio1-supply = <&vcc_io>; | ||
vccio2-supply = <&vcc_io>; | ||
vccio3-supply = <&vcc_io>; | ||
vccio4-supply = <&vcc_1v8>; | ||
vccio5-supply = <&vcc_io>; | ||
status = "okay"; | ||
}; | ||
|
||
&pinctrl { | ||
pinctrl-names = "default"; | ||
pinctrl-0 = <&rtc_32k>; | ||
|
||
bluetooth { | ||
bt_reg_on: bt-reg-on { | ||
rockchip,pins = <4 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>; | ||
}; | ||
|
||
bt_wake_host: bt-wake-host { | ||
rockchip,pins = <4 RK_PB4 RK_FUNC_GPIO &pcfg_pull_down>; | ||
}; | ||
|
||
host_wake_bt: host-wake-bt { | ||
rockchip,pins = <4 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>; | ||
}; | ||
}; | ||
|
||
gmac { | ||
mac_rst: mac-rst { | ||
rockchip,pins = <0 RK_PA7 RK_FUNC_GPIO &pcfg_pull_none>; | ||
}; | ||
}; | ||
|
||
leds { | ||
pwr_led: pwr-led { | ||
rockchip,pins = <0 RK_PB6 RK_FUNC_GPIO &pcfg_pull_none>; | ||
}; | ||
}; | ||
|
||
wifi { | ||
wifi_reg_on: wifi-reg-on { | ||
rockchip,pins = <0 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>; | ||
}; | ||
|
||
wifi_wake_host: wifi-wake-host { | ||
rockchip,pins = <0 RK_PA0 RK_FUNC_GPIO &pcfg_pull_down>; | ||
}; | ||
}; | ||
}; | ||
|
||
&pwm0 { | ||
pinctrl-names = "default"; | ||
pinctrl-0 = <&pwm0_pin_pull_down>; | ||
status = "okay"; | ||
}; | ||
|
||
&saradc { | ||
vref-supply = <&vcc_1v8>; | ||
status = "okay"; | ||
}; | ||
|
||
&sdio { | ||
#address-cells = <1>; | ||
#size-cells = <0>; | ||
cap-sd-highspeed; | ||
cap-sdio-irq; | ||
keep-power-in-suspend; | ||
max-frequency = <50000000>; | ||
mmc-pwrseq = <&sdio_pwrseq>; | ||
no-mmc; | ||
no-sd; | ||
non-removable; | ||
vmmc-supply = <&vcc_io>; | ||
vqmmc-supply = <&vcc_1v8>; | ||
status = "okay"; | ||
|
||
brcmf: wifi@1 { | ||
compatible = "brcm,bcm43430a1-fmac", "brcm,bcm4329-fmac"; | ||
reg = <1>; | ||
interrupt-parent = <&gpio0>; | ||
interrupts = <RK_PA0 IRQ_TYPE_LEVEL_HIGH>; | ||
interrupt-names = "host-wake"; | ||
pinctrl-names = "default"; | ||
pinctrl-0 = <&wifi_wake_host>; | ||
}; | ||
}; | ||
|
||
&sdmmc { | ||
cap-mmc-highspeed; | ||
cap-sd-highspeed; | ||
disable-wp; | ||
vmmc-supply = <&vcc_io>; | ||
status = "okay"; | ||
}; | ||
|
||
&u2phy { | ||
status = "okay"; | ||
}; | ||
|
||
&u2phy_host { | ||
status = "okay"; | ||
}; | ||
|
||
&u2phy_otg { | ||
status = "okay"; | ||
}; | ||
|
||
&uart0 { | ||
pinctrl-names = "default"; | ||
pinctrl-0 = <&uart0_xfer>; | ||
status = "okay"; | ||
}; | ||
|
||
&uart4 { | ||
uart-has-rtscts; | ||
status = "okay"; | ||
|
||
bluetooth { | ||
compatible = "brcm,bcm43430a1-bt"; | ||
clocks = <&cru SCLK_RTC32K>; | ||
clock-names = "lpo"; | ||
interrupt-parent = <&gpio4>; | ||
interrupts = <RK_PB4 IRQ_TYPE_LEVEL_HIGH>; | ||
interrupt-names = "host-wakeup"; | ||
device-wakeup-gpios = <&gpio4 RK_PB2 GPIO_ACTIVE_HIGH>; | ||
shutdown-gpios = <&gpio4 RK_PB3 GPIO_ACTIVE_HIGH>; | ||
pinctrl-names = "default"; | ||
pinctrl-0 = <&bt_reg_on &bt_wake_host &host_wake_bt>; | ||
vbat-supply = <&vcc_io>; | ||
vddio-supply = <&vcc_1v8>; | ||
}; | ||
}; | ||
|
||
&usb_host_ehci { | ||
status = "okay"; | ||
}; | ||
|
||
&usb_host_ohci { | ||
status = "okay"; | ||
}; | ||
|
||
&usb20_otg { | ||
dr_mode = "peripheral"; | ||
status = "okay"; | ||
}; | ||
|
||
&wdt { | ||
status = "okay"; | ||
}; |