
On 2022/4/4 22:19, Johan Jonker wrote:
MK808 is a RK3066-based board with 1 USB host and 1 USB OTG port, HDMI and a micro-SD card slot. It also includes on-board NAND and 1GB of SDRAM. Add rk3066a-mk808.dts. Move U-boot specific things in a rk3066a-mk808-u-boot.dtsi file.
Signed-off-by: Johan Jonker jbx6244@gmail.com
Reviewed-by: Kever Yang kever.yang@rock-chips.com
Thanks, - Kever
Changed V9: add led config move dtb-$() in Makefile
Changed V8: update dts
arch/arm/dts/Makefile | 3 + arch/arm/dts/rk3066a-mk808-u-boot.dtsi | 48 ++++++ arch/arm/dts/rk3066a-mk808.dts | 216 +++++++++++++++++++++++++ 3 files changed, 267 insertions(+) create mode 100644 arch/arm/dts/rk3066a-mk808-u-boot.dtsi create mode 100644 arch/arm/dts/rk3066a-mk808.dts
diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile index 99dc7bc777..e8657bed09 100644 --- a/arch/arm/dts/Makefile +++ b/arch/arm/dts/Makefile @@ -90,6 +90,9 @@ dtb-$(CONFIG_ROCKCHIP_PX30) += \ dtb-$(CONFIG_ROCKCHIP_RK3036) += \ rk3036-sdk.dtb
+dtb-$(CONFIG_ROCKCHIP_RK3066) += \
- rk3066a-mk808.dtb
- dtb-$(CONFIG_ROCKCHIP_RK3128) += \ rk3128-evb.dtb
diff --git a/arch/arm/dts/rk3066a-mk808-u-boot.dtsi b/arch/arm/dts/rk3066a-mk808-u-boot.dtsi new file mode 100644 index 0000000000..3ea5fd9511 --- /dev/null +++ b/arch/arm/dts/rk3066a-mk808-u-boot.dtsi @@ -0,0 +1,48 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+#include "rk3066a-u-boot.dtsi"
+/ {
- config {
u-boot,boot-led = "mk808:blue:power";
- };
+};
+&cru {
- u-boot,dm-pre-reloc;
+};
+&dmc {
- compatible = "rockchip,rk3066-dmc", "syscon";
- 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>;
+};
+&mmc0 {
- fifo-mode;
- max-frequency = <4000000>;
- u-boot,dm-spl;
+};
+&mmc1 {
- status = "disabled";
+};
+&noc {
- compatible = "rockchip,rk3066-noc", "syscon";
+};
+&timer2 {
- clock-frequency = <24000000>;
- u-boot,dm-pre-reloc;
+};
+&uart2 {
- u-boot,dm-pre-reloc;
+}; diff --git a/arch/arm/dts/rk3066a-mk808.dts b/arch/arm/dts/rk3066a-mk808.dts new file mode 100644 index 0000000000..667d57a4ff --- /dev/null +++ b/arch/arm/dts/rk3066a-mk808.dts @@ -0,0 +1,216 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/*
- Copyright (c) 2016 Paweł Jarosz paweljarosz3691@gmail.com
- */
+/dts-v1/; +#include <dt-bindings/input/input.h> +#include "rk3066a.dtsi"
+/ {
- model = "Rikomagic MK808";
- compatible = "rikomagic,mk808", "rockchip,rk3066a";
- aliases {
mmc0 = &mmc0;
mmc1 = &mmc1;
- };
- chosen {
stdout-path = "serial2:115200n8";
- };
- memory@60000000 {
reg = <0x60000000 0x40000000>;
device_type = "memory";
- };
- adc-keys {
compatible = "adc-keys";
io-channels = <&saradc 1>;
io-channel-names = "buttons";
keyup-threshold-microvolt = <2500000>;
poll-interval = <100>;
recovery {
label = "recovery";
linux,code = <KEY_VENDOR>;
press-threshold-microvolt = <0>;
};
- };
- gpio-leds {
compatible = "gpio-leds";
blue_led: led-0 {
label = "mk808:blue:power";
gpios = <&gpio0 RK_PA3 GPIO_ACTIVE_HIGH>;
default-state = "off";
linux,default-trigger = "default-on";
};
- };
- hdmi_con {
compatible = "hdmi-connector";
type = "c";
port {
hdmi_con_in: endpoint {
remote-endpoint = <&hdmi_out_con>;
};
};
- };
- vcc_2v5: vcc-2v5 {
compatible = "regulator-fixed";
regulator-name = "vcc_2v5";
regulator-min-microvolt = <2500000>;
regulator-max-microvolt = <2500000>;
- };
- vcc_io: vcc-io {
compatible = "regulator-fixed";
regulator-name = "vcc_io";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
- };
- vcc_host: usb-host-regulator {
compatible = "regulator-fixed";
enable-active-high;
gpio = <&gpio0 RK_PA6 GPIO_ACTIVE_HIGH>;
pinctrl-0 = <&host_drv>;
pinctrl-names = "default";
regulator-always-on;
regulator-name = "host-pwr";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
startup-delay-us = <100000>;
vin-supply = <&vcc_io>;
- };
- vcc_otg: usb-otg-regulator {
compatible = "regulator-fixed";
enable-active-high;
gpio = <&gpio0 RK_PA5 GPIO_ACTIVE_HIGH>;
pinctrl-0 = <&otg_drv>;
pinctrl-names = "default";
regulator-always-on;
regulator-name = "vcc_otg";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
startup-delay-us = <100000>;
vin-supply = <&vcc_io>;
- };
- vcc_sd: sdmmc-regulator {
compatible = "regulator-fixed";
gpio = <&gpio3 RK_PA7 GPIO_ACTIVE_LOW>;
pinctrl-0 = <&sdmmc_pwr>;
pinctrl-names = "default";
regulator-name = "vcc_sd";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
startup-delay-us = <100000>;
vin-supply = <&vcc_io>;
- };
- vcc_wifi: sdio-regulator {
compatible = "regulator-fixed";
enable-active-high;
gpio = <&gpio3 RK_PD0 GPIO_ACTIVE_HIGH>;
pinctrl-0 = <&wifi_pwr>;
pinctrl-names = "default";
regulator-name = "vcc_wifi";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
startup-delay-us = <100000>;
vin-supply = <&vcc_io>;
- };
+};
+&hdmi {
- status = "okay";
+};
+&hdmi_in_vop1 {
- status = "disabled";
+};
+&hdmi_out {
- hdmi_out_con: endpoint {
remote-endpoint = <&hdmi_con_in>;
- };
+};
+&mmc0 {
- bus-width = <4>;
- cap-mmc-highspeed;
- cap-sd-highspeed;
- vmmc-supply = <&vcc_sd>;
- status = "okay";
+};
+&mmc1 {
- bus-width = <4>;
- non-removable;
- pinctrl-0 = <&sd1_clk &sd1_cmd &sd1_bus4>;
- pinctrl-names = "default";
- vmmc-supply = <&vcc_wifi>;
- status = "okay";
+};
+&pinctrl {
- usb-host {
host_drv: host-drv {
rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_default>;
};
- };
- usb-otg {
otg_drv: otg-drv {
rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_default>;
};
- };
- sdmmc {
sdmmc_pwr: sdmmc-pwr {
rockchip,pins = <3 RK_PA7 RK_FUNC_GPIO &pcfg_pull_default>;
};
- };
- sdio {
wifi_pwr: wifi-pwr {
rockchip,pins = <3 RK_PD0 RK_FUNC_GPIO &pcfg_pull_none>;
};
- };
+};
+&saradc {
- vref-supply = <&vcc_2v5>;
- status = "okay";
+};
+&uart2 {
- status = "okay";
+};
+&usb_host {
- status = "okay";
+};
+&usb_otg {
- status = "okay";
+};
+&usbphy {
- status = "okay";
+};
+&vop0 {
- status = "okay";
+};
+&wdt {
- status = "okay";
+};