forked from Xilinx/u-boot-xlnx
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
rockchip: rk3188: Add Radxa Rock board
The Rock is a RK3188 based single board computer by Radxa. Currently it still relies on the proprietary DDR init and cannot use the generic SPL, but at least is able to boot a linux kernel and system up to a regular login prompt. Signed-off-by: Heiko Stuebner <[email protected]> Reviewed-by: Simon Glass <[email protected]> Tested-by: Kever Yang <[email protected]> Acked-by: Simon Glass <[email protected]> Fix sort order in defconfig, enable CONFIG_SPL_TINY_MEMSET: Signed-off-by: Simon Glass <[email protected]>
- Loading branch information
Showing
9 changed files
with
510 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
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,382 @@ | ||
/* | ||
* Copyright (c) 2013 Heiko Stuebner <[email protected]> | ||
* | ||
* SPDX-License-Identifier: GPL-2.0+ or X11 | ||
*/ | ||
|
||
/dts-v1/; | ||
#include <dt-bindings/input/input.h> | ||
#include "rk3188.dtsi" | ||
|
||
/ { | ||
model = "Radxa Rock"; | ||
compatible = "radxa,rock", "rockchip,rk3188"; | ||
|
||
chosen { | ||
/* stdout-path = &uart2; */ | ||
stdout-path = "serial2:115200n8"; | ||
}; | ||
|
||
config { | ||
u-boot,dm-pre-reloc; | ||
u-boot,boot-led = "rock:red:power"; | ||
}; | ||
|
||
memory { | ||
device_type = "memory"; | ||
reg = <0x60000000 0x80000000>; | ||
}; | ||
|
||
gpio-keys { | ||
compatible = "gpio-keys"; | ||
autorepeat; | ||
|
||
power { | ||
gpios = <&gpio0 4 GPIO_ACTIVE_LOW>; | ||
linux,code = <KEY_POWER>; | ||
label = "GPIO Key Power"; | ||
linux,input-type = <1>; | ||
wakeup-source; | ||
debounce-interval = <100>; | ||
}; | ||
}; | ||
|
||
gpio-leds { | ||
compatible = "gpio-leds"; | ||
|
||
green { | ||
label = "rock:green:user1"; | ||
gpios = <&gpio0 12 GPIO_ACTIVE_LOW>; | ||
default-state = "off"; | ||
}; | ||
|
||
blue { | ||
label = "rock:blue:user2"; | ||
gpios = <&gpio0 14 GPIO_ACTIVE_LOW>; | ||
default-state = "off"; | ||
}; | ||
|
||
sleep { | ||
label = "rock:red:power"; | ||
gpios = <&gpio0 15 0>; | ||
default-state = "off"; | ||
}; | ||
}; | ||
|
||
sound { | ||
compatible = "simple-audio-card"; | ||
simple-audio-card,name = "SPDIF"; | ||
|
||
simple-audio-card,dai-link@1 { /* S/PDIF - S/PDIF */ | ||
cpu { sound-dai = <&spdif>; }; | ||
codec { sound-dai = <&spdif_out>; }; | ||
}; | ||
}; | ||
|
||
spdif_out: spdif-out { | ||
compatible = "linux,spdif-dit"; | ||
#sound-dai-cells = <0>; | ||
}; | ||
|
||
ir_recv: gpio-ir-receiver { | ||
compatible = "gpio-ir-receiver"; | ||
gpios = <&gpio0 10 1>; | ||
pinctrl-names = "default"; | ||
pinctrl-0 = <&ir_recv_pin>; | ||
}; | ||
|
||
vcc_otg: usb-otg-regulator { | ||
compatible = "regulator-fixed"; | ||
enable-active-high; | ||
gpio = <&gpio2 31 GPIO_ACTIVE_HIGH>; | ||
pinctrl-names = "default"; | ||
pinctrl-0 = <&otg_vbus_drv>; | ||
regulator-name = "otg-vbus"; | ||
regulator-min-microvolt = <5000000>; | ||
regulator-max-microvolt = <5000000>; | ||
regulator-always-on; | ||
regulator-boot-on; | ||
}; | ||
|
||
vcc_sd0: sdmmc-regulator { | ||
compatible = "regulator-fixed"; | ||
regulator-name = "sdmmc-supply"; | ||
regulator-min-microvolt = <3300000>; | ||
regulator-max-microvolt = <3300000>; | ||
gpio = <&gpio3 1 GPIO_ACTIVE_LOW>; | ||
startup-delay-us = <100000>; | ||
vin-supply = <&vcc_io>; | ||
}; | ||
|
||
vcc_host: usb-host-regulator { | ||
compatible = "regulator-fixed"; | ||
enable-active-high; | ||
gpio = <&gpio0 3 GPIO_ACTIVE_HIGH>; | ||
pinctrl-names = "default"; | ||
pinctrl-0 = <&host_vbus_drv>; | ||
regulator-name = "host-pwr"; | ||
regulator-min-microvolt = <5000000>; | ||
regulator-max-microvolt = <5000000>; | ||
regulator-always-on; | ||
regulator-boot-on; | ||
}; | ||
|
||
vsys: vsys-regulator { | ||
compatible = "regulator-fixed"; | ||
regulator-name = "vsys"; | ||
regulator-min-microvolt = <5000000>; | ||
regulator-max-microvolt = <5000000>; | ||
regulator-boot-on; | ||
}; | ||
}; | ||
|
||
&dmc { | ||
rockchip,pctl-timing = <0x12c 0xc8 0x1f4 0x1e 0x4e 0x4 0x69 0x6 | ||
0x3 0x0 0x6 0x5 0xc 0x10 0x6 0x4 | ||
0x4 0x5 0x4 0x200 0x3 0xa 0x40 0x0 | ||
0x1 0x5 0x5 0x3 0xc 0x1e 0x100 0x0 | ||
0x4 0x0>; | ||
rockchip,phy-timing = <0x208c6690 0x690878 0x10022a00 | ||
0x220 0x40 0x0 0x0>; | ||
rockchip,sdram-params = <0x24716310 0 2 300000000 3 9 0>; | ||
}; | ||
|
||
&emac { | ||
status = "okay"; | ||
|
||
pinctrl-names = "default"; | ||
pinctrl-0 = <&emac_xfer>, <&emac_mdio>, <&phy_int>; | ||
|
||
phy = <&phy0>; | ||
phy-supply = <&vcc_rmii>; | ||
|
||
phy0: ethernet-phy@0 { | ||
reg = <0>; | ||
interrupt-parent = <&gpio3>; | ||
interrupts = <26 IRQ_TYPE_LEVEL_LOW>; | ||
}; | ||
}; | ||
|
||
&cpu0 { | ||
cpu0-supply = <&vdd_arm>; | ||
}; | ||
|
||
&i2c1 { | ||
status = "okay"; | ||
clock-frequency = <400000>; | ||
|
||
rtc@51 { | ||
compatible = "haoyu,hym8563"; | ||
reg = <0x51>; | ||
interrupt-parent = <&gpio0>; | ||
interrupts = <13 IRQ_TYPE_EDGE_FALLING>; | ||
pinctrl-names = "default"; | ||
pinctrl-0 = <&rtc_int>; | ||
#clock-cells = <0>; | ||
clock-output-names = "xin32k"; | ||
}; | ||
|
||
act8846: act8846@5a { | ||
compatible = "active-semi,act8846"; | ||
reg = <0x5a>; | ||
status = "okay"; | ||
system-power-controller; | ||
|
||
pinctrl-names = "default"; | ||
pinctrl-0 = <&act8846_dvs0_ctl>; | ||
|
||
vp1-supply = <&vsys>; | ||
vp2-supply = <&vsys>; | ||
vp3-supply = <&vsys>; | ||
vp4-supply = <&vsys>; | ||
inl1-supply = <&vcc_io>; | ||
inl2-supply = <&vsys>; | ||
inl3-supply = <&vsys>; | ||
|
||
regulators { | ||
vcc_ddr: REG1 { | ||
regulator-name = "VCC_DDR"; | ||
regulator-min-microvolt = <1200000>; | ||
regulator-max-microvolt = <1200000>; | ||
regulator-always-on; | ||
}; | ||
|
||
vdd_log: REG2 { | ||
regulator-name = "VDD_LOG"; | ||
regulator-min-microvolt = <1000000>; | ||
regulator-max-microvolt = <1000000>; | ||
regulator-always-on; | ||
}; | ||
|
||
vdd_arm: REG3 { | ||
regulator-name = "VDD_ARM"; | ||
regulator-min-microvolt = <875000>; | ||
regulator-max-microvolt = <1350000>; | ||
regulator-always-on; | ||
}; | ||
|
||
vcc_io: REG4 { | ||
regulator-name = "VCC_IO"; | ||
regulator-min-microvolt = <3300000>; | ||
regulator-max-microvolt = <3300000>; | ||
regulator-always-on; | ||
}; | ||
|
||
vdd_10: REG5 { | ||
regulator-name = "VDD_10"; | ||
regulator-min-microvolt = <1000000>; | ||
regulator-max-microvolt = <1000000>; | ||
regulator-always-on; | ||
}; | ||
|
||
vdd_hdmi: REG6 { | ||
regulator-name = "VDD_HDMI"; | ||
regulator-min-microvolt = <2500000>; | ||
regulator-max-microvolt = <2500000>; | ||
regulator-always-on; | ||
}; | ||
|
||
vcc18: REG7 { | ||
regulator-name = "VCC_18"; | ||
regulator-min-microvolt = <1800000>; | ||
regulator-max-microvolt = <1800000>; | ||
regulator-always-on; | ||
}; | ||
|
||
vcca_33: REG8 { | ||
regulator-name = "VCCA_33"; | ||
regulator-min-microvolt = <3300000>; | ||
regulator-max-microvolt = <3300000>; | ||
regulator-always-on; | ||
}; | ||
|
||
vcc_rmii: REG9 { | ||
regulator-name = "VCC_RMII"; | ||
regulator-min-microvolt = <3300000>; | ||
regulator-max-microvolt = <3300000>; | ||
}; | ||
|
||
vccio_wl: REG10 { | ||
regulator-name = "VCCIO_WL"; | ||
regulator-min-microvolt = <3300000>; | ||
regulator-max-microvolt = <3300000>; | ||
regulator-always-on; | ||
}; | ||
|
||
vcc_18: REG11 { | ||
regulator-name = "VCC18_IO"; | ||
regulator-min-microvolt = <1800000>; | ||
regulator-max-microvolt = <1800000>; | ||
regulator-always-on; | ||
}; | ||
|
||
vcc28: REG12 { | ||
regulator-name = "VCC_28"; | ||
regulator-min-microvolt = <2800000>; | ||
regulator-max-microvolt = <2800000>; | ||
regulator-always-on; | ||
}; | ||
}; | ||
}; | ||
}; | ||
|
||
&mmc0 { | ||
num-slots = <1>; | ||
status = "okay"; | ||
pinctrl-names = "default"; | ||
pinctrl-0 = <&sd0_clk>, <&sd0_cmd>, <&sd0_cd>, <&sd0_bus4>; | ||
vmmc-supply = <&vcc_sd0>; | ||
|
||
bus-width = <4>; | ||
cap-mmc-highspeed; | ||
cap-sd-highspeed; | ||
disable-wp; | ||
}; | ||
|
||
&pwm1 { | ||
status = "okay"; | ||
}; | ||
|
||
&pwm2 { | ||
status = "okay"; | ||
}; | ||
|
||
&pwm3 { | ||
status = "okay"; | ||
}; | ||
|
||
&pinctrl { | ||
pcfg_output_low: pcfg-output-low { | ||
output-low; | ||
}; | ||
|
||
act8846 { | ||
act8846_dvs0_ctl: act8846-dvs0-ctl { | ||
rockchip,pins = <RK_GPIO3 27 RK_FUNC_GPIO &pcfg_output_low>; | ||
}; | ||
}; | ||
|
||
hym8563 { | ||
rtc_int: rtc-int { | ||
rockchip,pins = <RK_GPIO0 0 RK_FUNC_GPIO &pcfg_pull_up>; | ||
}; | ||
}; | ||
|
||
lan8720a { | ||
phy_int: phy-int { | ||
rockchip,pins = <RK_GPIO3 26 RK_FUNC_GPIO &pcfg_pull_up>; | ||
}; | ||
}; | ||
|
||
ir-receiver { | ||
ir_recv_pin: ir-recv-pin { | ||
rockchip,pins = <RK_GPIO0 10 RK_FUNC_GPIO &pcfg_pull_none>; | ||
}; | ||
}; | ||
|
||
usb { | ||
host_vbus_drv: host-vbus-drv { | ||
rockchip,pins = <0 3 RK_FUNC_GPIO &pcfg_pull_none>; | ||
}; | ||
otg_vbus_drv: otg-vbus-drv { | ||
rockchip,pins = <2 31 RK_FUNC_GPIO &pcfg_pull_none>; | ||
}; | ||
}; | ||
}; | ||
|
||
&spdif { | ||
status = "okay"; | ||
}; | ||
|
||
&uart0 { | ||
status = "okay"; | ||
}; | ||
|
||
&uart1 { | ||
status = "okay"; | ||
}; | ||
|
||
&uart2 { | ||
status = "okay"; | ||
u-boot,dm-spl; | ||
}; | ||
|
||
&uart3 { | ||
status = "okay"; | ||
}; | ||
|
||
&usbphy { | ||
status = "okay"; | ||
}; | ||
|
||
&usb_host { | ||
status = "okay"; | ||
}; | ||
|
||
&usb_otg { | ||
status = "okay"; | ||
}; | ||
|
||
&wdt { | ||
status = "okay"; | ||
}; |
Oops, something went wrong.