arm: dts: rockchip: add rk3066a-mk808.dts
authorJohan Jonker <jbx6244@gmail.com>
Sat, 16 Apr 2022 15:09:45 +0000 (17:09 +0200)
committerKever Yang <kever.yang@rock-chips.com>
Mon, 18 Apr 2022 03:25:13 +0000 (11:25 +0800)
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>
arch/arm/dts/Makefile
arch/arm/dts/rk3066a-mk808-u-boot.dtsi [new file with mode: 0644]
arch/arm/dts/rk3066a-mk808.dts [new file with mode: 0644]

index df7b4ad..2a0efd8 100644 (file)
@@ -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 (file)
index 0000000..e0aa929
--- /dev/null
@@ -0,0 +1,49 @@
+// 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;
+       u-boot,spl-fifo-mode;
+};
+
+&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 (file)
index 0000000..667d57a
--- /dev/null
@@ -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";
+};