Skip to content

Commit

Permalink
rockchip: rk3188: Add Radxa Rock board
Browse files Browse the repository at this point in the history
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
mmind authored and sjg20 committed Apr 5, 2017
1 parent ab4458b commit 4719768
Show file tree
Hide file tree
Showing 9 changed files with 510 additions and 0 deletions.
1 change: 1 addition & 0 deletions arch/arm/dts/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ dtb-$(CONFIG_EXYNOS5) += exynos5250-arndale.dtb \
dtb-$(CONFIG_EXYNOS7420) += exynos7420-espresso7420.dtb
dtb-$(CONFIG_ARCH_ROCKCHIP) += \
rk3036-sdk.dtb \
rk3188-radxarock.dtb \
rk3288-firefly.dtb \
rk3288-veyron-jerry.dtb \
rk3288-veyron-mickey.dtb \
Expand Down
382 changes: 382 additions & 0 deletions arch/arm/dts/rk3188-radxarock.dts
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";
};
Loading

0 comments on commit 4719768

Please sign in to comment.