1061 lines
22 KiB
Diff
1061 lines
22 KiB
Diff
From c4ef14ce4c3290377aae77ee04c0134523a64abf Mon Sep 17 00:00:00 2001
|
|
From: Alex Bee <knaerzche@gmail.com>
|
|
Date: Mon, 14 Dec 2020 16:42:05 +0100
|
|
Subject: [PATCH] ARM: dts: add RK3066a rbox devicetrees
|
|
|
|
Signed-off-by: Alex Bee <knaerzche@gmail.com>
|
|
---
|
|
.../boot/dts/rk3066a-rbox-ammery-stick.dts | 456 ++++++++++++++
|
|
arch/arm/boot/dts/rk3066a-rbox-minix-x5.dts | 579 ++++++++++++++++++
|
|
2 files changed, 1035 insertions(+)
|
|
create mode 100644 arch/arm/boot/dts/rk3066a-rbox-ammery-stick.dts
|
|
create mode 100644 arch/arm/boot/dts/rk3066a-rbox-minix-x5.dts
|
|
|
|
diff --git a/arch/arm/boot/dts/rk3066a-rbox-ammery-stick.dts b/arch/arm/boot/dts/rk3066a-rbox-ammery-stick.dts
|
|
new file mode 100644
|
|
index 000000000000..ddb8459a760c
|
|
--- /dev/null
|
|
+++ b/arch/arm/boot/dts/rk3066a-rbox-ammery-stick.dts
|
|
@@ -0,0 +1,456 @@
|
|
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
|
+/*
|
|
+ * Copyright (c) 2020 Alex Bee <knaerzche@gmail.com>
|
|
+ */
|
|
+
|
|
+/dts-v1/;
|
|
+#include "rk3066a.dtsi"
|
|
+
|
|
+/ {
|
|
+ model = "RK3066a ammery HDMI stick";
|
|
+ compatible = "rockchip,rk3066a";
|
|
+
|
|
+ memory@60000000 {
|
|
+ device_type = "memory";
|
|
+ reg = <0x60000000 0x40000000>;
|
|
+ };
|
|
+
|
|
+ /*
|
|
+ * We have to set this high voltage for all gpu-freqs
|
|
+ * in order to get 1,6 GHz CPU rate working at all times
|
|
+ */
|
|
+ gpu_opp_table: opp-table2 {
|
|
+ compatible = "operating-points-v2";
|
|
+
|
|
+ opp-100000000 {
|
|
+ opp-hz = /bits/ 64 <100000000>;
|
|
+ opp-microvolt = <1300000>;
|
|
+ };
|
|
+
|
|
+ opp-200000000 {
|
|
+ opp-hz = /bits/ 64 <200000000>;
|
|
+ opp-microvolt = <1300000>;
|
|
+ };
|
|
+ opp-400000000 {
|
|
+ opp-hz = /bits/ 64 <400000000>;
|
|
+ opp-microvolt = <1300000>;
|
|
+ };
|
|
+ };
|
|
+
|
|
+ hdmi_con {
|
|
+ compatible = "hdmi-connector";
|
|
+ type = "a";
|
|
+
|
|
+ port {
|
|
+ hdmi_con_in: endpoint {
|
|
+ remote-endpoint = <&hdmi_out_con>;
|
|
+ };
|
|
+ };
|
|
+ };
|
|
+
|
|
+ sdio_pwrseq: sdio-pwrseq {
|
|
+ compatible = "mmc-pwrseq-simple";
|
|
+ clocks = <&xin32k>;
|
|
+ clock-names = "ext_clock";
|
|
+ pinctrl-names = "default";
|
|
+ pinctrl-0 = <&wifi_reg_on>;
|
|
+ reset-gpios = <&gpio3 RK_PD0 GPIO_ACTIVE_LOW>;
|
|
+ };
|
|
+
|
|
+ vdd_log: vdd-log {
|
|
+ compatible = "pwm-regulator";
|
|
+ pwms = <&pwm3 0 5000>;
|
|
+ regulator-name = "vdd_log";
|
|
+ regulator-min-microvolt = <890000>;
|
|
+ regulator-max-microvolt = <1400000>;
|
|
+ regulator-ramp-delay = <4000>;
|
|
+ pwm-dutycycle-range = <100 0>;
|
|
+ vin-supply = <&vsys>;
|
|
+ regulator-always-on;
|
|
+ regulator-boot-on;
|
|
+ };
|
|
+
|
|
+ vsys: vsys-regulator {
|
|
+ compatible = "regulator-fixed";
|
|
+ regulator-name = "vsys";
|
|
+ regulator-min-microvolt = <5000000>;
|
|
+ regulator-max-microvolt = <5000000>;
|
|
+ regulator-always-on;
|
|
+ regulator-boot-on;
|
|
+ };
|
|
+
|
|
+ vcc_sd: sdmmc-regulator {
|
|
+ compatible = "regulator-fixed";
|
|
+ gpio = <&gpio3 RK_PA7 GPIO_ACTIVE_LOW>;
|
|
+ pinctrl-names = "default";
|
|
+ pinctrl-0 = <&sdmmc_pwr>;
|
|
+ regulator-name = "vcc_sd";
|
|
+ regulator-min-microvolt = <3300000>;
|
|
+ regulator-max-microvolt = <3300000>;
|
|
+ startup-delay-us = <100000>;
|
|
+ vin-supply = <&vcc_io>;
|
|
+ };
|
|
+
|
|
+ vcc_host: usb-host-regulator {
|
|
+ compatible = "regulator-fixed";
|
|
+ enable-active-high;
|
|
+ gpio = <&gpio0 RK_PA6 GPIO_ACTIVE_HIGH>;
|
|
+ pinctrl-names = "default";
|
|
+ pinctrl-0 = <&host_drv>;
|
|
+ regulator-name = "host-pwr";
|
|
+ regulator-min-microvolt = <5000000>;
|
|
+ regulator-max-microvolt = <5000000>;
|
|
+ regulator-always-on;
|
|
+ vin-supply = <&vsys>;
|
|
+ };
|
|
+
|
|
+ vcc_otg: usb-otg-regulator {
|
|
+ compatible = "regulator-fixed";
|
|
+ enable-active-high;
|
|
+ gpio = <&gpio0 RK_PA5 GPIO_ACTIVE_HIGH>;
|
|
+ pinctrl-names = "default";
|
|
+ pinctrl-0 = <&otg_drv>;
|
|
+ regulator-name = "vcc_otg";
|
|
+ regulator-min-microvolt = <5000000>;
|
|
+ regulator-max-microvolt = <5000000>;
|
|
+ regulator-always-on;
|
|
+ vin-supply = <&vsys>;
|
|
+ };
|
|
+
|
|
+ /* delivered from tps65910 pmic RTC,
|
|
+ * but there is no clock output in
|
|
+ * the driver
|
|
+ */
|
|
+ xin32k: xin-32k {
|
|
+ compatible = "fixed-clock";
|
|
+ clock-frequency = <32768>;
|
|
+ #clock-cells = <0>;
|
|
+ clock-output-names = "xin32k";
|
|
+ };
|
|
+};
|
|
+
|
|
+&cpu0_opp_table {
|
|
+ opp-1608000000 {
|
|
+ status = "okay";
|
|
+ };
|
|
+};
|
|
+
|
|
+&cpu0 {
|
|
+ cpu-supply = <&vdd_arm>;
|
|
+};
|
|
+
|
|
+&cpu1 {
|
|
+ cpu-supply = <&vdd_arm>;
|
|
+};
|
|
+
|
|
+&cru {
|
|
+ assigned-clocks = <&cru PLL_CPLL>, <&cru PLL_GPLL>,
|
|
+ <&cru ACLK_CPU>, <&cru HCLK_CPU>,
|
|
+ <&cru PCLK_CPU>, <&cru ACLK_PERI>,
|
|
+ <&cru HCLK_PERI>, <&cru PCLK_PERI>,
|
|
+ <&cru ACLK_LCDC0>, <&cru ACLK_LCDC1>;
|
|
+ assigned-clock-rates = <594000000>, <1200000000>,
|
|
+ <300000000>, <150000000>,
|
|
+ <75000000>, <300000000>,
|
|
+ <150000000>, <75000000>,
|
|
+ <297000000>, <297000000>;
|
|
+};
|
|
+
|
|
+&gpu {
|
|
+ operating-points-v2 = <&gpu_opp_table>;
|
|
+ mali-supply = <&vdd_log>;
|
|
+ status = "okay";
|
|
+};
|
|
+
|
|
+&hdmi {
|
|
+ status = "okay";
|
|
+};
|
|
+
|
|
+&hdmi_in_vop1 {
|
|
+ status = "disabled";
|
|
+};
|
|
+
|
|
+&hdmi_out {
|
|
+ hdmi_out_con: endpoint {
|
|
+ remote-endpoint = <&hdmi_con_in>;
|
|
+ };
|
|
+};
|
|
+
|
|
+&hdmi_sound {
|
|
+ status = "okay";
|
|
+};
|
|
+
|
|
+&i2c1 {
|
|
+ status = "okay";
|
|
+
|
|
+ tps: tps@2d {
|
|
+ reg = <0x2d>;
|
|
+ interrupt-parent = <&gpio6>;
|
|
+ interrupts = <RK_PA4 IRQ_TYPE_EDGE_RISING>;
|
|
+ pinctrl-names = "default";
|
|
+ pinctrl-0 = <&pmic_int &pwr_hold>;
|
|
+
|
|
+ vcc1-supply = <&vsys>;
|
|
+ vcc2-supply = <&vsys>;
|
|
+ vcc3-supply = <&vsys>;
|
|
+ vcc4-supply = <&vsys>;
|
|
+ vcc5-supply = <&vcc_io>;
|
|
+ vcc6-supply = <&vcc_io>;
|
|
+ vcc7-supply = <&vsys>;
|
|
+ vccio-supply = <&vsys>;
|
|
+
|
|
+ regulators {
|
|
+ vcc_rtc: regulator@0 {
|
|
+ regulator-name = "vcc_rtc";
|
|
+ regulator-always-on;
|
|
+ };
|
|
+
|
|
+ vcc_io: regulator@1 {
|
|
+ regulator-name = "vcc_io";
|
|
+ regulator-min-microvolt = <3300000>;
|
|
+ regulator-max-microvolt = <3300000>;
|
|
+ regulator-always-on;
|
|
+ regulator-boot-on;
|
|
+ };
|
|
+
|
|
+ vdd_arm: regulator@2 {
|
|
+ regulator-name = "vdd_arm";
|
|
+ regulator-min-microvolt = <600000>;
|
|
+ regulator-max-microvolt = <1500000>;
|
|
+ regulator-always-on;
|
|
+ regulator-boot-on;
|
|
+ };
|
|
+
|
|
+ vcc_ddr: regulator@3 {
|
|
+ regulator-name = "vcc_ddr";
|
|
+ regulator-min-microvolt = <600000>;
|
|
+ regulator-max-microvolt = <1500000>;
|
|
+ regulator-always-on;
|
|
+ regulator-boot-on;
|
|
+ };
|
|
+
|
|
+ vcc18: regulator@5 {
|
|
+ regulator-name = "vcc18";
|
|
+ regulator-min-microvolt = <1800000>;
|
|
+ regulator-max-microvolt = <1800000>;
|
|
+ regulator-always-on;
|
|
+ };
|
|
+
|
|
+ vdd_11: regulator@6 {
|
|
+ regulator-name = "vdd_11";
|
|
+ regulator-min-microvolt = <1100000>;
|
|
+ regulator-max-microvolt = <1100000>;
|
|
+ regulator-always-on;
|
|
+ };
|
|
+
|
|
+ vcc_25: regulator@7 {
|
|
+ regulator-name = "vcc_25";
|
|
+ regulator-min-microvolt = <2500000>;
|
|
+ regulator-max-microvolt = <2500000>;
|
|
+ regulator-always-on;
|
|
+ };
|
|
+
|
|
+ vccio_wl: regulator@8 {
|
|
+ regulator-name = "vccio_wl";
|
|
+ regulator-min-microvolt = <1800000>;
|
|
+ regulator-max-microvolt = <1800000>;
|
|
+ regulator-boot-on;
|
|
+ };
|
|
+
|
|
+ vcc25_hdmi: regulator@9 {
|
|
+ regulator-name = "vcc25_hdmi";
|
|
+ regulator-min-microvolt = <2500000>;
|
|
+ regulator-max-microvolt = <2500000>;
|
|
+ regulator-always-on;
|
|
+ };
|
|
+
|
|
+ vcca_33: regulator@10 {
|
|
+ regulator-name = "vcca_33";
|
|
+ regulator-min-microvolt = <3300000>;
|
|
+ regulator-max-microvolt = <3300000>;
|
|
+ regulator-boot-on;
|
|
+ regulator-always-on;
|
|
+ };
|
|
+
|
|
+ vcc_rmii: regulator@11 {
|
|
+ regulator-name = "vcc_rmii";
|
|
+ regulator-min-microvolt = <3300000>;
|
|
+ regulator-max-microvolt = <3300000>;
|
|
+ };
|
|
+
|
|
+ vcc28_cif: regulator@12 {
|
|
+ regulator-name = "vcc28_cif";
|
|
+ regulator-min-microvolt = <2800000>;
|
|
+ regulator-max-microvolt = <2800000>;
|
|
+ };
|
|
+ };
|
|
+ };
|
|
+};
|
|
+
|
|
+#include "tps65910.dtsi"
|
|
+
|
|
+&i2s0 {
|
|
+ status = "okay";
|
|
+};
|
|
+
|
|
+&mmc0 {
|
|
+ bus-width = <4>;
|
|
+ disable-wp;
|
|
+ pinctrl-names = "default";
|
|
+ pinctrl-0 = <&sd0_clk>, <&sd0_cmd>, <&sd0_cd>, <&sd0_bus4>;
|
|
+ vmmc-supply = <&vcc_sd>;
|
|
+ cap-mmc-highspeed;
|
|
+ cap-sd-highspeed;
|
|
+ status = "okay";
|
|
+};
|
|
+
|
|
+&mmc1 {
|
|
+ bus-width = <4>;
|
|
+ clock-frequency = <50000000>;
|
|
+ mmc-pwrseq = <&sdio_pwrseq>;
|
|
+ non-removable;
|
|
+ pinctrl-names = "default";
|
|
+ pinctrl-0 = <&sd1_clk>, <&sd1_cmd>, <&sd1_bus4>;
|
|
+ vmmc-supply = <&vcc_io>;
|
|
+ vqmmc-supply = <&vccio_wl>;
|
|
+ cap-mmc-highspeed;
|
|
+ cap-sd-highspeed;
|
|
+ status = "okay";
|
|
+ #address-cells = <1>;
|
|
+ #size-cells = <0>;
|
|
+
|
|
+ /*
|
|
+ * RK903 is compatible with Ampak AP6330
|
|
+ * except: 2.4 GHz channels only
|
|
+ */
|
|
+ wifi@0 {
|
|
+ reg = <0>;
|
|
+ compatible = "brcm,bcm4329-fmac";
|
|
+ interrupt-parent = <&gpio3>;
|
|
+ interrupts = <RK_PD2 IRQ_TYPE_EDGE_RISING>;
|
|
+ interrupt-names = "host-wake";
|
|
+ pinctrl-names = "default";
|
|
+ pinctrl-0 = <&wifi_host_wake>;
|
|
+ };
|
|
+};
|
|
+
|
|
+&pinctrl {
|
|
+ pcfg_output_high: pcfg-output-high {
|
|
+ output-high;
|
|
+ };
|
|
+
|
|
+ usb {
|
|
+ host_drv: host-drv {
|
|
+ rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_default>;
|
|
+ };
|
|
+
|
|
+ otg_drv: otg-drv {
|
|
+ rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_default>;
|
|
+ };
|
|
+
|
|
+ };
|
|
+
|
|
+ rk903 {
|
|
+ bt_host_wake: bt-host-wake {
|
|
+ rockchip,pins = <6 RK_PA7 RK_FUNC_GPIO &pcfg_pull_default>;
|
|
+ };
|
|
+
|
|
+ bt_reg_on: bt-reg-on {
|
|
+ rockchip,pins = <3 RK_PC7 RK_FUNC_GPIO &pcfg_pull_none>;
|
|
+ };
|
|
+
|
|
+ bt_rst: bt-rst {
|
|
+ rockchip,pins = <3 RK_PD1 RK_FUNC_GPIO &pcfg_output_high>;
|
|
+ };
|
|
+
|
|
+ bt_wake: bt-wake {
|
|
+ rockchip,pins = <3 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>;
|
|
+ };
|
|
+
|
|
+ wifi_host_wake: wifi-host-wake {
|
|
+ rockchip,pins = <3 RK_PD2 RK_FUNC_GPIO &pcfg_pull_default>;
|
|
+ };
|
|
+
|
|
+ wifi_reg_on: wifi-reg-on {
|
|
+ rockchip,pins = <3 RK_PD0 RK_FUNC_GPIO &pcfg_pull_none>;
|
|
+ };
|
|
+ };
|
|
+
|
|
+ sdmmc {
|
|
+ sdmmc_pwr: sdmmc-pwr {
|
|
+ rockchip,pins = <3 RK_PA7 RK_FUNC_GPIO &pcfg_pull_default>;
|
|
+ };
|
|
+ };
|
|
+
|
|
+ tps {
|
|
+ pmic_int: pmic-int {
|
|
+ rockchip,pins = <6 RK_PA4 RK_FUNC_GPIO &pcfg_pull_default>;
|
|
+ };
|
|
+
|
|
+ pwr_hold: pwr-hold {
|
|
+ rockchip,pins = <6 RK_PB0 RK_FUNC_GPIO &pcfg_output_high>;
|
|
+ };
|
|
+ };
|
|
+};
|
|
+
|
|
+&pwm3 {
|
|
+ status = "okay";
|
|
+};
|
|
+
|
|
+&uart0 {
|
|
+ pinctrl-names = "default";
|
|
+ pinctrl-0 = <&uart0_xfer>, <&uart0_cts>,
|
|
+ <&uart0_rts>;
|
|
+ uart-has-rtscts;
|
|
+ status = "okay";
|
|
+ #address-cells = <1>;
|
|
+ #size-cells = <0>;
|
|
+
|
|
+ /*
|
|
+ * BCM4330B2 patch is needed, .i.e. a
|
|
+ * BCM4330B1 with 26 MHz XTAL config
|
|
+ */
|
|
+ bluetooth@0 {
|
|
+ reg = <0>;
|
|
+ compatible = "brcm,bcm43438-bt";
|
|
+ clocks = <&xin32k>;
|
|
+ clock-names = "lpo";
|
|
+ host-wakeup-gpios = <&gpio6 RK_PA7 GPIO_ACTIVE_HIGH>;
|
|
+ device-wakeup-gpios = <&gpio3 RK_PC6 GPIO_ACTIVE_HIGH>;
|
|
+ shutdown-gpios = <&gpio3 RK_PC7 GPIO_ACTIVE_HIGH>;
|
|
+ pinctrl-names = "default";
|
|
+ pinctrl-0 = <&bt_host_wake>, <&bt_reg_on>,
|
|
+ <&bt_rst>, <&bt_wake>;
|
|
+ vbat-supply = <&vcc_io>;
|
|
+ vddio-supply = <&vccio_wl>;
|
|
+ };
|
|
+};
|
|
+
|
|
+&uart2 {
|
|
+ status = "okay";
|
|
+};
|
|
+
|
|
+&usb_host {
|
|
+ status = "okay";
|
|
+};
|
|
+
|
|
+&usbphy {
|
|
+ status = "okay";
|
|
+};
|
|
+
|
|
+&usb_otg {
|
|
+ status = "okay";
|
|
+};
|
|
+
|
|
+&tsadc {
|
|
+ vref-supply = <&vcc_25>;
|
|
+ status = "okay";
|
|
+};
|
|
+
|
|
+&vop0 {
|
|
+ status = "okay";
|
|
+};
|
|
+
|
|
+&wdt {
|
|
+ status = "okay";
|
|
+};
|
|
diff --git a/arch/arm/boot/dts/rk3066a-rbox-minix-x5.dts b/arch/arm/boot/dts/rk3066a-rbox-minix-x5.dts
|
|
new file mode 100644
|
|
index 000000000000..6f24f8b87b32
|
|
--- /dev/null
|
|
+++ b/arch/arm/boot/dts/rk3066a-rbox-minix-x5.dts
|
|
@@ -0,0 +1,579 @@
|
|
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
|
+/*
|
|
+ * Copyright (c) 2020 Alex Bee <knaerzche@gmail.com>
|
|
+ */
|
|
+
|
|
+/dts-v1/;
|
|
+#include <dt-bindings/input/input.h>
|
|
+#include "rk3066a.dtsi"
|
|
+
|
|
+/ {
|
|
+ model = "MiniX X5";
|
|
+ compatible = "minix,x5", "rockchip,rk3066a";
|
|
+
|
|
+ memory@60000000 {
|
|
+ device_type = "memory";
|
|
+ reg = <0x60000000 0x40000000>;
|
|
+ };
|
|
+
|
|
+ /*
|
|
+ * We have to set this high voltage for all gpu-freqs
|
|
+ * in order to get 1,6 GHz CPU rate working at all times
|
|
+ */
|
|
+ gpu_opp_table: opp-table2 {
|
|
+ compatible = "operating-points-v2";
|
|
+
|
|
+ opp-100000000 {
|
|
+ opp-hz = /bits/ 64 <100000000>;
|
|
+ opp-microvolt = <1300000>;
|
|
+ };
|
|
+
|
|
+ opp-200000000 {
|
|
+ opp-hz = /bits/ 64 <200000000>;
|
|
+ opp-microvolt = <1300000>;
|
|
+ };
|
|
+ opp-400000000 {
|
|
+ opp-hz = /bits/ 64 <400000000>;
|
|
+ opp-microvolt = <1300000>;
|
|
+ };
|
|
+ };
|
|
+
|
|
+ hdmi_con {
|
|
+ compatible = "hdmi-connector";
|
|
+ type = "a";
|
|
+
|
|
+ port {
|
|
+ hdmi_con_in: endpoint {
|
|
+ remote-endpoint = <&hdmi_out_con>;
|
|
+ };
|
|
+ };
|
|
+ };
|
|
+
|
|
+ ir-receiver {
|
|
+ compatible = "gpio-ir-receiver";
|
|
+ gpios = <&gpio6 RK_PA1 GPIO_ACTIVE_LOW>;
|
|
+ pinctrl-names = "default";
|
|
+ pinctrl-0 = <&ir_int>;
|
|
+ };
|
|
+
|
|
+ gpio-keys {
|
|
+ compatible = "gpio-keys";
|
|
+
|
|
+ power {
|
|
+ wakeup-source;
|
|
+ gpios = <&gpio6 RK_PA2 GPIO_ACTIVE_LOW>;
|
|
+ label = "GPIO Power";
|
|
+ linux,code = <KEY_POWER>;
|
|
+ pinctrl-names = "default";
|
|
+ pinctrl-0 = <&pwr_key>;
|
|
+ };
|
|
+ };
|
|
+
|
|
+ sound {
|
|
+ compatible = "simple-audio-card";
|
|
+ simple-audio-card,format = "i2s";
|
|
+ simple-audio-card,name = "rockchip,alc5631-codec";
|
|
+ simple-audio-card,mclk-fs = <256>;
|
|
+ simple-audio-card,widgets =
|
|
+ "Microphone", "Microphone Jack",
|
|
+ "Headphone", "Headphone Jack";
|
|
+ simple-audio-card,routing =
|
|
+ "MIC1", "Microphone Jack",
|
|
+ "MIC2", "Microphone Jack",
|
|
+ "Headphone Jack", "HPOL",
|
|
+ "Headphone Jack", "HPOR";
|
|
+
|
|
+ simple-audio-card,cpu {
|
|
+ sound-dai = <&i2s1>;
|
|
+ };
|
|
+
|
|
+ simple-audio-card,codec {
|
|
+ sound-dai = <&alc5631>;
|
|
+ };
|
|
+ };
|
|
+
|
|
+ spdif-sound {
|
|
+ compatible = "simple-audio-card";
|
|
+ simple-audio-card,name = "SPDIF";
|
|
+ #address-cells = <1>;
|
|
+ #size-cells = <0>;
|
|
+
|
|
+ simple-audio-card,dai-link@0 {
|
|
+ reg = <0>;
|
|
+ cpu {
|
|
+ sound-dai = <&spdif>;
|
|
+ };
|
|
+ codec {
|
|
+ sound-dai = <&spdif_dit>;
|
|
+ };
|
|
+ };
|
|
+ };
|
|
+
|
|
+ spdif_dit: spdif-dit {
|
|
+ compatible = "linux,spdif-dit";
|
|
+ #sound-dai-cells = <0>;
|
|
+ };
|
|
+
|
|
+
|
|
+ sdio_pwrseq: sdio-pwrseq {
|
|
+ compatible = "mmc-pwrseq-simple";
|
|
+ clocks = <&xin32k>;
|
|
+ clock-names = "ext_clock";
|
|
+ pinctrl-names = "default";
|
|
+ pinctrl-0 = <&wifi_reg_on>;
|
|
+ reset-gpios = <&gpio3 RK_PD0 GPIO_ACTIVE_LOW>;
|
|
+ };
|
|
+
|
|
+ vdd_log: vdd-log {
|
|
+ compatible = "pwm-regulator";
|
|
+ pwms = <&pwm3 0 5000>;
|
|
+ regulator-name = "vdd_log";
|
|
+ regulator-min-microvolt = <890000>;
|
|
+ regulator-max-microvolt = <1400000>;
|
|
+ regulator-ramp-delay = <4000>;
|
|
+ pwm-dutycycle-range = <100 0>;
|
|
+ vin-supply = <&vsys>;
|
|
+ regulator-always-on;
|
|
+ regulator-boot-on;
|
|
+ };
|
|
+
|
|
+ vsys: vsys-regulator {
|
|
+ compatible = "regulator-fixed";
|
|
+ regulator-name = "vsys";
|
|
+ regulator-min-microvolt = <5000000>;
|
|
+ regulator-max-microvolt = <5000000>;
|
|
+ regulator-always-on;
|
|
+ regulator-boot-on;
|
|
+ };
|
|
+
|
|
+ vcc_sd: sdmmc-regulator {
|
|
+ compatible = "regulator-fixed";
|
|
+ gpio = <&gpio3 RK_PA7 GPIO_ACTIVE_LOW>;
|
|
+ pinctrl-names = "default";
|
|
+ pinctrl-0 = <&sdmmc_pwr>;
|
|
+ regulator-name = "vcc_sd";
|
|
+ regulator-min-microvolt = <3300000>;
|
|
+ regulator-max-microvolt = <3300000>;
|
|
+ startup-delay-us = <100000>;
|
|
+ vin-supply = <&vcc_io>;
|
|
+ };
|
|
+
|
|
+ vcc_host: usb-host-regulator {
|
|
+ compatible = "regulator-fixed";
|
|
+ enable-active-high;
|
|
+ gpio = <&gpio0 RK_PA6 GPIO_ACTIVE_HIGH>;
|
|
+ pinctrl-names = "default";
|
|
+ pinctrl-0 = <&host_drv>;
|
|
+ regulator-name = "host-pwr";
|
|
+ regulator-min-microvolt = <5000000>;
|
|
+ regulator-max-microvolt = <5000000>;
|
|
+ regulator-always-on;
|
|
+ vin-supply = <&vsys>;
|
|
+ };
|
|
+
|
|
+ vcc_otg: usb-otg-regulator {
|
|
+ compatible = "regulator-fixed";
|
|
+ enable-active-high;
|
|
+ gpio = <&gpio0 RK_PA5 GPIO_ACTIVE_HIGH>;
|
|
+ pinctrl-names = "default";
|
|
+ pinctrl-0 = <&otg_drv>;
|
|
+ regulator-name = "vcc_otg";
|
|
+ regulator-min-microvolt = <5000000>;
|
|
+ regulator-max-microvolt = <5000000>;
|
|
+ regulator-always-on;
|
|
+ vin-supply = <&vsys>;
|
|
+ };
|
|
+
|
|
+ /* delivered from tps65910 pmic RTC,
|
|
+ * but there is no clock output in
|
|
+ * the driver
|
|
+ */
|
|
+ xin32k: xin-32k {
|
|
+ compatible = "fixed-clock";
|
|
+ clock-frequency = <32768>;
|
|
+ #clock-cells = <0>;
|
|
+ clock-output-names = "xin32k";
|
|
+ };
|
|
+};
|
|
+
|
|
+&cpu0_opp_table {
|
|
+ opp-1608000000 {
|
|
+ status = "okay";
|
|
+ };
|
|
+};
|
|
+
|
|
+&cpu0 {
|
|
+ cpu-supply = <&vdd_arm>;
|
|
+};
|
|
+
|
|
+&cpu1 {
|
|
+ cpu-supply = <&vdd_arm>;
|
|
+};
|
|
+&cru {
|
|
+ assigned-clocks = <&cru PLL_CPLL>, <&cru PLL_GPLL>,
|
|
+ <&cru ACLK_CPU>, <&cru HCLK_CPU>,
|
|
+ <&cru PCLK_CPU>, <&cru ACLK_PERI>,
|
|
+ <&cru HCLK_PERI>, <&cru PCLK_PERI>,
|
|
+ <&cru ACLK_LCDC0>, <&cru ACLK_LCDC1>;
|
|
+ assigned-clock-rates = <594000000>, <1200000000>,
|
|
+ <300000000>, <150000000>,
|
|
+ <75000000>, <300000000>,
|
|
+ <150000000>, <75000000>,
|
|
+ <297000000>, <297000000>;
|
|
+};
|
|
+
|
|
+&emac {
|
|
+ pinctrl-names = "default";
|
|
+ pinctrl-0 = <&emac_xfer>, <&emac_mdio>, <&rmii_rst>;
|
|
+ phy = <&phy0>;
|
|
+ phy-supply = <&vcc_rmii>;
|
|
+ status = "okay";
|
|
+
|
|
+ phy0: ethernet-phy@0 {
|
|
+ reg = <0>;
|
|
+ reset-gpios = <&gpio1 RK_PD6 GPIO_ACTIVE_LOW>;
|
|
+ };
|
|
+};
|
|
+
|
|
+&gpu {
|
|
+ operating-points-v2 = <&gpu_opp_table>;
|
|
+ mali-supply = <&vdd_log>;
|
|
+ status = "okay";
|
|
+};
|
|
+
|
|
+&hdmi {
|
|
+ status = "okay";
|
|
+};
|
|
+
|
|
+&hdmi_in_vop1 {
|
|
+ status = "disabled";
|
|
+};
|
|
+
|
|
+&hdmi_out {
|
|
+ hdmi_out_con: endpoint {
|
|
+ remote-endpoint = <&hdmi_con_in>;
|
|
+ };
|
|
+};
|
|
+
|
|
+&hdmi_sound {
|
|
+ status = "okay";
|
|
+};
|
|
+
|
|
+&i2c0 {
|
|
+ status = "okay";
|
|
+
|
|
+ eeprom: eeprom@50 {
|
|
+ reg = <0x50>;
|
|
+ compatible = "atmel,24c16";
|
|
+ pagesize = <16>;
|
|
+ };
|
|
+
|
|
+ alc5631: audio-codec@1a {
|
|
+ reg = <0x1a>;
|
|
+ compatible = "realtek,alc5631";
|
|
+ clocks = <&cru SCLK_I2S1>;
|
|
+ clock-names = "mclk";
|
|
+ #sound-dai-cells = <0>;
|
|
+ };
|
|
+};
|
|
+
|
|
+&i2c1 {
|
|
+ status = "okay";
|
|
+
|
|
+ tps: tps@2d {
|
|
+ reg = <0x2d>;
|
|
+ interrupt-parent = <&gpio6>;
|
|
+ interrupts = <RK_PA4 IRQ_TYPE_EDGE_RISING>;
|
|
+ pinctrl-names = "default";
|
|
+ pinctrl-0 = <&pmic_int &pwr_hold>;
|
|
+
|
|
+ vcc1-supply = <&vsys>;
|
|
+ vcc2-supply = <&vsys>;
|
|
+ vcc3-supply = <&vsys>;
|
|
+ vcc4-supply = <&vsys>;
|
|
+ vcc5-supply = <&vcc_io>;
|
|
+ vcc6-supply = <&vcc_io>;
|
|
+ vcc7-supply = <&vsys>;
|
|
+ vccio-supply = <&vsys>;
|
|
+
|
|
+ regulators {
|
|
+ vcc_rtc: regulator@0 {
|
|
+ regulator-name = "vcc_rtc";
|
|
+ regulator-always-on;
|
|
+ };
|
|
+
|
|
+ vcc_io: regulator@1 {
|
|
+ regulator-name = "vcc_io";
|
|
+ regulator-min-microvolt = <3300000>;
|
|
+ regulator-max-microvolt = <3300000>;
|
|
+ regulator-always-on;
|
|
+ regulator-boot-on;
|
|
+ };
|
|
+
|
|
+ vdd_arm: regulator@2 {
|
|
+ regulator-name = "vdd_arm";
|
|
+ regulator-min-microvolt = <600000>;
|
|
+ regulator-max-microvolt = <1500000>;
|
|
+ regulator-always-on;
|
|
+ regulator-boot-on;
|
|
+ };
|
|
+
|
|
+ vcc_ddr: regulator@3 {
|
|
+ regulator-name = "vcc_ddr";
|
|
+ regulator-min-microvolt = <600000>;
|
|
+ regulator-max-microvolt = <1500000>;
|
|
+ regulator-always-on;
|
|
+ regulator-boot-on;
|
|
+ };
|
|
+
|
|
+ vcc18: regulator@5 {
|
|
+ regulator-name = "vcc18";
|
|
+ regulator-min-microvolt = <1800000>;
|
|
+ regulator-max-microvolt = <1800000>;
|
|
+ regulator-always-on;
|
|
+ };
|
|
+
|
|
+ vdd_11: regulator@6 {
|
|
+ regulator-name = "vdd_11";
|
|
+ regulator-min-microvolt = <1100000>;
|
|
+ regulator-max-microvolt = <1100000>;
|
|
+ regulator-always-on;
|
|
+ };
|
|
+
|
|
+ vcc_25: regulator@7 {
|
|
+ regulator-name = "vcc_25";
|
|
+ regulator-min-microvolt = <2500000>;
|
|
+ regulator-max-microvolt = <2500000>;
|
|
+ regulator-always-on;
|
|
+ };
|
|
+
|
|
+ vccio_wl: regulator@8 {
|
|
+ regulator-name = "vccio_wl";
|
|
+ regulator-min-microvolt = <1800000>;
|
|
+ regulator-max-microvolt = <1800000>;
|
|
+ regulator-boot-on;
|
|
+ };
|
|
+
|
|
+ vcc25_hdmi: regulator@9 {
|
|
+ regulator-name = "vcc25_hdmi";
|
|
+ regulator-min-microvolt = <2500000>;
|
|
+ regulator-max-microvolt = <2500000>;
|
|
+ regulator-always-on;
|
|
+ };
|
|
+
|
|
+ vcca_33: regulator@10 {
|
|
+ regulator-name = "vcca_33";
|
|
+ regulator-min-microvolt = <3300000>;
|
|
+ regulator-max-microvolt = <3300000>;
|
|
+ regulator-boot-on;
|
|
+ regulator-always-on;
|
|
+ };
|
|
+
|
|
+ vcc_rmii: regulator@11 {
|
|
+ regulator-name = "vcc_rmii";
|
|
+ regulator-min-microvolt = <3300000>;
|
|
+ regulator-max-microvolt = <3300000>;
|
|
+ };
|
|
+
|
|
+ vcc28_cif: regulator@12 {
|
|
+ regulator-name = "vcc28_cif";
|
|
+ regulator-min-microvolt = <2800000>;
|
|
+ regulator-max-microvolt = <2800000>;
|
|
+ };
|
|
+ };
|
|
+ };
|
|
+};
|
|
+
|
|
+#include "tps65910.dtsi"
|
|
+
|
|
+&i2s0 {
|
|
+ status = "okay";
|
|
+};
|
|
+
|
|
+&i2s1 {
|
|
+ status = "okay";
|
|
+};
|
|
+
|
|
+&mmc0 {
|
|
+ bus-width = <4>;
|
|
+ disable-wp;
|
|
+ pinctrl-names = "default";
|
|
+ pinctrl-0 = <&sd0_clk>, <&sd0_cmd>, <&sd0_cd>, <&sd0_bus4>;
|
|
+ vmmc-supply = <&vcc_sd>;
|
|
+ cap-mmc-highspeed;
|
|
+ cap-sd-highspeed;
|
|
+ status = "okay";
|
|
+};
|
|
+
|
|
+&mmc1 {
|
|
+ bus-width = <4>;
|
|
+ clock-frequency = <50000000>;
|
|
+ mmc-pwrseq = <&sdio_pwrseq>;
|
|
+ non-removable;
|
|
+ pinctrl-names = "default";
|
|
+ pinctrl-0 = <&sd1_clk>, <&sd1_cmd>, <&sd1_bus4>;
|
|
+ vmmc-supply = <&vcc_io>;
|
|
+ vqmmc-supply = <&vccio_wl>;
|
|
+ cap-mmc-highspeed;
|
|
+ cap-sd-highspeed;
|
|
+ status = "okay";
|
|
+ #address-cells = <1>;
|
|
+ #size-cells = <0>;
|
|
+
|
|
+ /*
|
|
+ * RK903 is compatible with Ampak AP6330
|
|
+ * except: 2.4 GHz channels only
|
|
+ */
|
|
+ wifi@0 {
|
|
+ reg = <0>;
|
|
+ compatible = "brcm,bcm4329-fmac";
|
|
+ interrupt-parent = <&gpio3>;
|
|
+ interrupts = <RK_PD2 IRQ_TYPE_EDGE_RISING>;
|
|
+ interrupt-names = "host-wake";
|
|
+ pinctrl-names = "default";
|
|
+ pinctrl-0 = <&wifi_host_wake>;
|
|
+ };
|
|
+};
|
|
+
|
|
+&pinctrl {
|
|
+ pcfg_output_high: pcfg-output-high {
|
|
+ output-high;
|
|
+ };
|
|
+
|
|
+ emac {
|
|
+ rmii_rst: rmii-rst {
|
|
+ rockchip,pins = <1 RK_PD6 RK_FUNC_GPIO &pcfg_output_high>;
|
|
+ };
|
|
+ };
|
|
+
|
|
+ ir {
|
|
+ ir_int: ir-int {
|
|
+ rockchip,pins = <6 RK_PA1 RK_FUNC_GPIO &pcfg_pull_default>;
|
|
+ };
|
|
+ };
|
|
+
|
|
+ keys {
|
|
+ pwr_key: pwr-key {
|
|
+ rockchip,pins = <6 RK_PA2 RK_FUNC_GPIO &pcfg_pull_default>;
|
|
+ };
|
|
+ };
|
|
+
|
|
+ usb {
|
|
+ host_drv: host-drv {
|
|
+ rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_default>;
|
|
+ };
|
|
+
|
|
+ otg_drv: otg-drv {
|
|
+ rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_default>;
|
|
+ };
|
|
+
|
|
+ };
|
|
+
|
|
+ rk903 {
|
|
+ bt_host_wake: bt-host-wake {
|
|
+ rockchip,pins = <6 RK_PA7 RK_FUNC_GPIO &pcfg_pull_default>;
|
|
+ };
|
|
+
|
|
+ bt_reg_on: bt-reg-on {
|
|
+ rockchip,pins = <3 RK_PC7 RK_FUNC_GPIO &pcfg_pull_none>;
|
|
+ };
|
|
+
|
|
+ bt_rst: bt-rst {
|
|
+ rockchip,pins = <3 RK_PD1 RK_FUNC_GPIO &pcfg_output_high>;
|
|
+ };
|
|
+
|
|
+ bt_wake: bt-wake {
|
|
+ rockchip,pins = <3 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>;
|
|
+ };
|
|
+
|
|
+ wifi_host_wake: wifi-host-wake {
|
|
+ rockchip,pins = <3 RK_PD2 RK_FUNC_GPIO &pcfg_pull_default>;
|
|
+ };
|
|
+
|
|
+ wifi_reg_on: wifi-reg-on {
|
|
+ rockchip,pins = <3 RK_PD0 RK_FUNC_GPIO &pcfg_pull_none>;
|
|
+ };
|
|
+ };
|
|
+
|
|
+ sdmmc {
|
|
+ sdmmc_pwr: sdmmc-pwr {
|
|
+ rockchip,pins = <3 RK_PA7 RK_FUNC_GPIO &pcfg_pull_default>;
|
|
+ };
|
|
+ };
|
|
+
|
|
+ tps {
|
|
+ pmic_int: pmic-int {
|
|
+ rockchip,pins = <6 RK_PA4 RK_FUNC_GPIO &pcfg_pull_default>;
|
|
+ };
|
|
+
|
|
+ pwr_hold: pwr-hold {
|
|
+ rockchip,pins = <6 RK_PB0 RK_FUNC_GPIO &pcfg_output_high>;
|
|
+ };
|
|
+ };
|
|
+};
|
|
+
|
|
+&pwm3 {
|
|
+ status = "okay";
|
|
+};
|
|
+
|
|
+&spdif {
|
|
+ status = "okay";
|
|
+};
|
|
+
|
|
+&uart0 {
|
|
+ pinctrl-names = "default";
|
|
+ pinctrl-0 = <&uart0_xfer>, <&uart0_cts>,
|
|
+ <&uart0_rts>;
|
|
+ uart-has-rtscts;
|
|
+ status = "okay";
|
|
+ #address-cells = <1>;
|
|
+ #size-cells = <0>;
|
|
+
|
|
+ /*
|
|
+ * BCM4330B2 patch is needed, .i.e. a
|
|
+ * BCM4330B1 with 26 MHz XTAL config
|
|
+ */
|
|
+ bluetooth@0 {
|
|
+ reg = <0>;
|
|
+ compatible = "brcm,bcm43438-bt";
|
|
+ clocks = <&xin32k>;
|
|
+ clock-names = "lpo";
|
|
+ host-wakeup-gpios = <&gpio6 RK_PA7 GPIO_ACTIVE_HIGH>;
|
|
+ device-wakeup-gpios = <&gpio3 RK_PC6 GPIO_ACTIVE_HIGH>;
|
|
+ shutdown-gpios = <&gpio3 RK_PC7 GPIO_ACTIVE_HIGH>;
|
|
+ pinctrl-names = "default";
|
|
+ pinctrl-0 = <&bt_host_wake>, <&bt_reg_on>,
|
|
+ <&bt_rst>, <&bt_wake>;
|
|
+ vbat-supply = <&vcc_io>;
|
|
+ vddio-supply = <&vccio_wl>;
|
|
+ };
|
|
+};
|
|
+
|
|
+&uart2 {
|
|
+ status = "okay";
|
|
+};
|
|
+
|
|
+&usb_host {
|
|
+ status = "okay";
|
|
+};
|
|
+
|
|
+&usbphy {
|
|
+ status = "okay";
|
|
+};
|
|
+
|
|
+&usb_otg {
|
|
+ status = "okay";
|
|
+};
|
|
+
|
|
+&tsadc {
|
|
+ vref-supply = <&vcc_25>;
|
|
+ status = "okay";
|
|
+};
|
|
+
|
|
+&vop0 {
|
|
+ status = "okay";
|
|
+};
|
|
+
|
|
+&wdt {
|
|
+ status = "okay";
|
|
+};
|