Re: [PATCH v3 10/12] arm: dts: rockchip: sync rk3288 DT boards from Linux

Kever Yang
2022-03-28T14:27:46Z

On 2022/3/4 07:52, Johan Jonker wrote:
> Sync rk3288 DT boards that have support both in
> Linux 5.17 as in U-boot.
>
> Signed-off-by: Johan Jonker <jbx6244@gmail.com>

Reviewed-by: Kever Yang <kever.yang@rock-chips.com>

Thanks,
- Kever
> ---
>
> Change V3:
> update
> change reg size
> delete more files
>
> Changed V2:
> update
> change led labels
> ---
> arch/arm/dts/rk3288-firefly-u-boot.dtsi | 4 +-
> arch/arm/dts/rk3288-firefly.dts | 17 +-
> arch/arm/dts/rk3288-firefly.dtsi | 161 +++++--
> arch/arm/dts/rk3288-miqi-u-boot.dtsi | 2 +-
> arch/arm/dts/rk3288-miqi.dts | 431 ++++++++++++++++++-
> arch/arm/dts/rk3288-miqi.dtsi | 418 ------------------
> arch/arm/dts/rk3288-phycore-rdk.dts | 109 +++--
> arch/arm/dts/rk3288-phycore-som.dtsi | 111 +----
> arch/arm/dts/rk3288-popmetal.dts | 505 +++++++++++++++++++++-
> arch/arm/dts/rk3288-popmetal.dtsi | 545 ------------------------
> arch/arm/dts/rk3288-rock2-som.dtsi | 91 ++--
> arch/arm/dts/rk3288-rock2-square.dts | 215 +++++++---
> arch/arm/dts/rk3288-tinker-s.dts | 9 +-
> arch/arm/dts/rk3288-tinker.dts | 30 +-
> arch/arm/dts/rk3288-tinker.dtsi | 405 +++++++++---------
> 15 files changed, 1554 insertions(+), 1499 deletions(-)
> delete mode 100644 arch/arm/dts/rk3288-miqi.dtsi
> delete mode 100644 arch/arm/dts/rk3288-popmetal.dtsi
>
> diff --git a/arch/arm/dts/rk3288-firefly-u-boot.dtsi b/arch/arm/dts/rk3288-firefly-u-boot.dtsi
> index cc84d7c4..c43d3281 100644
> --- a/arch/arm/dts/rk3288-firefly-u-boot.dtsi
> +++ b/arch/arm/dts/rk3288-firefly-u-boot.dtsi
> @@ -14,11 +14,11 @@
> leds {
> u-boot,dm-pre-reloc;
>
> - work {
> + work_led: led-0 {
> u-boot,dm-pre-reloc;
> };
>
> - power {
> + power_led: led-1 {
> u-boot,dm-pre-reloc;
> };
> };
> diff --git a/arch/arm/dts/rk3288-firefly.dts b/arch/arm/dts/rk3288-firefly.dts
> index 72982efd..313459da 100644
> --- a/arch/arm/dts/rk3288-firefly.dts
> +++ b/arch/arm/dts/rk3288-firefly.dts
> @@ -1,4 +1,4 @@
> -// SPDX-License-Identifier: GPL-2.0+ OR X11
> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> /*
> * Copyright (c) 2014, 2015 FUKAUMI Naoki <naobsd@gmail.com>
> */
> @@ -9,31 +9,22 @@
> / {
> model = "Firefly-RK3288";
> compatible = "firefly,firefly-rk3288", "rockchip,rk3288";
> -
> - chosen {
> - stdout-path = &uart2;
> - };
> };
>
> &ir {
> - gpios = <&gpio7 0 GPIO_ACTIVE_LOW>;
> + gpios = <&gpio7 RK_PA0 GPIO_ACTIVE_LOW>;
> };
>
> &pinctrl {
> act8846 {
> pmic_vsel: pmic-vsel {
> - rockchip,pins = <7 14 RK_FUNC_GPIO &pcfg_output_low>;
> + rockchip,pins = <7 RK_PB6 RK_FUNC_GPIO &pcfg_output_low>;
> };
> };
>
> ir {
> ir_int: ir-int {
> - rockchip,pins = <7 0 RK_FUNC_GPIO &pcfg_pull_up>;
> - };
> - };
> - usb_host {
> - host_vbus_drv: host-vbus-drv {
> - rockchip,pins = <0 14 RK_FUNC_GPIO &pcfg_pull_none>;
> + rockchip,pins = <7 RK_PA0 RK_FUNC_GPIO &pcfg_pull_up>;
> };
> };
> };
> diff --git a/arch/arm/dts/rk3288-firefly.dtsi b/arch/arm/dts/rk3288-firefly.dtsi
> index 1117d391..96d768ac 100644
> --- a/arch/arm/dts/rk3288-firefly.dtsi
> +++ b/arch/arm/dts/rk3288-firefly.dtsi
> @@ -1,15 +1,38 @@
> -// SPDX-License-Identifier: GPL-2.0+ OR X11
> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> /*
> * Copyright (c) 2014, 2015 FUKAUMI Naoki <naobsd@gmail.com>
> */
>
> +#include <dt-bindings/input/input.h>
> #include "rk3288.dtsi"
>
> / {
> - memory {
> + memory@0 {
> + device_type = "memory";
> reg = <0 0x80000000>;
> };
>
> + adc-keys {
> + compatible = "adc-keys";
> + io-channels = <&saradc 1>;
> + io-channel-names = "buttons";
> + keyup-threshold-microvolt = <1800000>;
> +
> + button-recovery {
> + label = "Recovery";
> + linux,code = <KEY_VENDOR>;
> + press-threshold-microvolt = <0>;
> + };
> + };
> +
> + dovdd_1v8: dovdd-1v8-regulator {
> + compatible = "regulator-fixed";
> + regulator-name = "dovdd_1v8";
> + regulator-min-microvolt = <1800000>;
> + regulator-max-microvolt = <1800000>;
> + vin-supply = <&vcc28_dvp>;
> + };
> +
> ext_gmac: external-gmac-clock {
> compatible = "fixed-clock";
> #clock-cells = <0>;
> @@ -26,11 +49,11 @@
> keys: gpio-keys {
> compatible = "gpio-keys";
>
> - button@0 {
> - gpio-key,wakeup = <1>;
> - gpios = <&gpio0 5 GPIO_ACTIVE_LOW>;
> + power {
> + wakeup-source;
> + gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_LOW>;
> label = "GPIO Power";
> - linux,code = <116>;
> + linux,code = <KEY_POWER>;
> pinctrl-names = "default";
> pinctrl-0 = <&pwr_key>;
> };
> @@ -39,24 +62,24 @@
> leds {
> compatible = "gpio-leds";
>
> - work {
> - gpios = <&gpio8 1 GPIO_ACTIVE_LOW>;
> + work_led: led-0 {
> + gpios = <&gpio8 RK_PA1 GPIO_ACTIVE_LOW>;
> label = "firefly:blue:user";
> linux,default-trigger = "rc-feedback";
> pinctrl-names = "default";
> - pinctrl-0 = <&work_led>;
> + pinctrl-0 = <&work_led_pin>;
> };
>
> - power {
> - gpios = <&gpio8 2 GPIO_ACTIVE_LOW>;
> + power_led: led-1 {
> + gpios = <&gpio8 RK_PA2 GPIO_ACTIVE_LOW>;
> label = "firefly:green:power";
> linux,default-trigger = "default-on";
> pinctrl-names = "default";
> - pinctrl-0 = <&power_led>;
> + pinctrl-0 = <&power_led_pin>;
> };
> };
>
> - vcc_sys: vsys-regulator {
> + vbat_wl: vcc_sys: vsys-regulator {
> compatible = "regulator-fixed";
> regulator-name = "vcc_sys";
> regulator-min-microvolt = <5000000>;
> @@ -67,7 +90,7 @@
>
> vcc_sd: sdmmc-regulator {
> compatible = "regulator-fixed";
> - gpio = <&gpio7 11 GPIO_ACTIVE_LOW>;
> + gpio = <&gpio7 RK_PB3 GPIO_ACTIVE_LOW>;
> pinctrl-names = "default";
> pinctrl-0 = <&sdmmc_pwr>;
> regulator-name = "vcc_sd";
> @@ -98,7 +121,7 @@
> vcc_host_5v: usb-host-regulator {
> compatible = "regulator-fixed";
> enable-active-high;
> - gpio = <&gpio0 14 GPIO_ACTIVE_HIGH>;
> + gpio = <&gpio0 RK_PB6 GPIO_ACTIVE_HIGH>;
> pinctrl-names = "default";
> pinctrl-0 = <&host_vbus_drv>;
> regulator-name = "vcc_host_5v";
> @@ -111,7 +134,7 @@
> vcc_otg_5v: usb-otg-regulator {
> compatible = "regulator-fixed";
> enable-active-high;
> - gpio = <&gpio0 12 GPIO_ACTIVE_HIGH>;
> + gpio = <&gpio0 RK_PB4 GPIO_ACTIVE_HIGH>;
> pinctrl-names = "default";
> pinctrl-0 = <&otg_vbus_drv>;
> regulator-name = "vcc_otg_5v";
> @@ -120,6 +143,23 @@
> regulator-always-on;
> vin-supply = <&vcc_5v>;
> };
> +
> + /*
> + * A TT8142 creates both dovdd_1v8 and vcc28_dvp, controlled
> + * by the dvp_pwr pin.
> + */
> + vcc28_dvp: vcc28-dvp-regulator {
> + compatible = "regulator-fixed";
> + enable-active-high;
> + gpio = <&gpio0 RK_PB3 GPIO_ACTIVE_HIGH>;
> + pinctrl-names = "default";
> + pinctrl-0 = <&dvp_pwr>;
> + regulator-name = "vcc28_dvp";
> + regulator-min-microvolt = <2800000>;
> + regulator-max-microvolt = <2800000>;
> + regulator-always-on;
> + vin-supply = <&vcc_io>;
> + };
> };
>
> &cpu0 {
> @@ -127,12 +167,10 @@
> };
>
> &emmc {
> - broken-cd;
> bus-width = <8>;
> cap-mmc-highspeed;
> disable-wp;
> non-removable;
> - num-slots = <1>;
> pinctrl-names = "default";
> pinctrl-0 = <&emmc_clk>, <&emmc_cmd>, <&emmc_pwr>, <&emmc_bus8>;
> vmmc-supply = <&vcc_io>;
> @@ -150,12 +188,17 @@
> phy-mode = "rgmii";
> snps,reset-active-low;
> snps,reset-delays-us = <0 10000 1000000>;
> - snps,reset-gpio = <&gpio4 8 GPIO_ACTIVE_LOW>;
> + snps,reset-gpio = <&gpio4 RK_PB0 GPIO_ACTIVE_LOW>;
> tx_delay = <0x30>;
> rx_delay = <0x10>;
> status = "okay";
> };
>
> +&gpu {
> + mali-supply = <&vdd_gpu>;
> + status = "okay";
> +};
> +
> &hdmi {
> ddc-i2c-bus = <&i2c5>;
> status = "okay";
> @@ -174,6 +217,8 @@
> regulator-max-microvolt = <1350000>;
> regulator-always-on;
> regulator-boot-on;
> + regulator-enable-ramp-delay = <300>;
> + regulator-ramp-delay = <8000>;
> vin-supply = <&vcc_sys>;
> };
>
> @@ -195,7 +240,7 @@
> clock-frequency = <32768>;
> clock-output-names = "xin32k";
> interrupt-parent = <&gpio7>;
> - interrupts = <4 IRQ_TYPE_EDGE_FALLING>;
> + interrupts = <RK_PA4 IRQ_TYPE_EDGE_FALLING>;
> pinctrl-names = "default";
> pinctrl-0 = <&rtc_int>;
> };
> @@ -207,6 +252,14 @@
> pinctrl-0 = <&pmic_vsel>, <&pwr_hold>;
> system-power-controller;
>
> + vp1-supply = <&vcc_sys>;
> + vp2-supply = <&vcc_sys>;
> + vp3-supply = <&vcc_sys>;
> + vp4-supply = <&vcc_sys>;
> + inl1-supply = <&vcc_sys>;
> + inl2-supply = <&vcc_sys>;
> + inl3-supply = <&vcc_20>;
> +
> regulators {
> vcc_ddr: REG1 {
> regulator-name = "vcc_ddr";
> @@ -275,7 +328,7 @@
> regulator-always-on;
> };
>
> - vcc_18: REG11 {
> + vccio_wl: vcc_18: REG11 {
> regulator-name = "vcc_18";
> regulator-min-microvolt = <1800000>;
> regulator-max-microvolt = <1800000>;
> @@ -308,6 +361,21 @@
> status = "okay";
> };
>
> +&io_domains {
> + status = "okay";
> +
> + audio-supply = <&vcca_33>;
> + bb-supply = <&vcc_io>;
> + dvp-supply = <&dovdd_1v8>;
> + flash0-supply = <&vcc_flash>;
> + flash1-supply = <&vcc_lan>;
> + gpio30-supply = <&vcc_io>;
> + gpio1830-supply = <&vcc_io>;
> + lcdc-supply = <&vcc_io>;
> + sdcard-supply = <&vccio_sd>;
> + wifi-supply = <&vccio_wl>;
> +};
> +
> &pinctrl {
> pcfg_output_high: pcfg-output-high {
> output-high;
> @@ -324,43 +392,49 @@
>
> act8846 {
> pwr_hold: pwr-hold {
> - rockchip,pins = <0 1 RK_FUNC_GPIO &pcfg_output_high>;
> + rockchip,pins = <0 RK_PA1 RK_FUNC_GPIO &pcfg_output_high>;
> + };
> + };
> +
> + dvp {
> + dvp_pwr: dvp-pwr {
> + rockchip,pins = <0 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>;
> };
> };
>
> gmac {
> phy_int: phy-int {
> - rockchip,pins = <0 9 RK_FUNC_GPIO &pcfg_pull_up>;
> + rockchip,pins = <0 RK_PB1 RK_FUNC_GPIO &pcfg_pull_up>;
> };
>
> phy_pmeb: phy-pmeb {
> - rockchip,pins = <0 8 RK_FUNC_GPIO &pcfg_pull_up>;
> + rockchip,pins = <0 RK_PB0 RK_FUNC_GPIO &pcfg_pull_up>;
> };
>
> phy_rst: phy-rst {
> - rockchip,pins = <4 8 RK_FUNC_GPIO &pcfg_output_high>;
> + rockchip,pins = <4 RK_PB0 RK_FUNC_GPIO &pcfg_output_high>;
> };
> };
>
> hym8563 {
> rtc_int: rtc-int {
> - rockchip,pins = <7 4 RK_FUNC_GPIO &pcfg_pull_up>;
> + rockchip,pins = <7 RK_PA4 RK_FUNC_GPIO &pcfg_pull_up>;
> };
> };
>
> keys {
> pwr_key: pwr-key {
> - rockchip,pins = <0 5 RK_FUNC_GPIO &pcfg_pull_up>;
> + rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>;
> };
> };
>
> leds {
> - power_led: power-led {
> - rockchip,pins = <8 2 RK_FUNC_GPIO &pcfg_pull_none>;
> + power_led_pin: power-led-pin {
> + rockchip,pins = <8 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>;
> };
>
> - work_led: work-led {
> - rockchip,pins = <8 1 RK_FUNC_GPIO &pcfg_pull_none>;
> + work_led_pin: work-led-pin {
> + rockchip,pins = <8 RK_PA1 RK_FUNC_GPIO &pcfg_pull_none>;
> };
> };
>
> @@ -391,17 +465,17 @@
>
> usb_host {
> host_vbus_drv: host-vbus-drv {
> - rockchip,pins = <0 14 RK_FUNC_GPIO &pcfg_pull_none>;
> + rockchip,pins = <0 RK_PB6 RK_FUNC_GPIO &pcfg_pull_none>;
> };
>
> usbhub_rst: usbhub-rst {
> - rockchip,pins = <8 3 RK_FUNC_GPIO &pcfg_output_high>;
> + rockchip,pins = <8 RK_PA3 RK_FUNC_GPIO &pcfg_output_high>;
> };
> };
>
> usb_otg {
> otg_vbus_drv: otg-vbus-drv {
> - rockchip,pins = <0 12 RK_FUNC_GPIO &pcfg_pull_none>;
> + rockchip,pins = <0 RK_PB4 RK_FUNC_GPIO &pcfg_pull_none>;
> };
> };
> };
> @@ -412,15 +486,14 @@
> };
>
> &sdio0 {
> - broken-cd;
> bus-width = <4>;
> disable-wp;
> non-removable;
> - num-slots = <1>;
> pinctrl-names = "default";
> pinctrl-0 = <&sdio0_bus4>, <&sdio0_cmd>, <&sdio0_clk>;
> - vmmc-supply = <&vcc_18>;
> - status = "disabled";
> + vmmc-supply = <&vbat_wl>;
> + vqmmc-supply = <&vccio_wl>;
> + status = "okay";
> };
>
> &sdmmc {
> @@ -429,10 +502,10 @@
> cap-sd-highspeed;
> card-detect-delay = <200>;
> disable-wp;
> - num-slots = <1>;
> pinctrl-names = "default";
> pinctrl-0 = <&sdmmc_clk>, <&sdmmc_cmd>, <&sdmmc_cd>, <&sdmmc_bus4>;
> vmmc-supply = <&vcc_sd>;
> + vqmmc-supply = <&vccio_sd>;
> status = "okay";
> };
>
> @@ -442,6 +515,12 @@
> status = "okay";
> };
>
> +&tsadc {
> + rockchip,hw-tshut-mode = <0>;
> + rockchip,hw-tshut-polarity = <0>;
> + status = "okay";
> +};
> +
> &uart0 {
> pinctrl-names = "default";
> pinctrl-0 = <&uart0_xfer>, <&uart0_cts>, <&uart0_rts>;
> @@ -460,6 +539,10 @@
> status = "okay";
> };
>
> +&usbphy {
> + status = "okay";
> +};
> +
> &usb_host1 {
> pinctrl-names = "default";
> pinctrl-0 = <&usbhub_rst>;
> diff --git a/arch/arm/dts/rk3288-miqi-u-boot.dtsi b/arch/arm/dts/rk3288-miqi-u-boot.dtsi
> index 2a74fdd1..f2611aaa 100644
> --- a/arch/arm/dts/rk3288-miqi-u-boot.dtsi
> +++ b/arch/arm/dts/rk3288-miqi-u-boot.dtsi
> @@ -8,7 +8,7 @@
> leds {
> u-boot,dm-pre-reloc;
>
> - work {
> + work_led: led-0 {
> u-boot,dm-pre-reloc;
> };
> };
> diff --git a/arch/arm/dts/rk3288-miqi.dts b/arch/arm/dts/rk3288-miqi.dts
> index 4a2f249e..713f55e1 100644
> --- a/arch/arm/dts/rk3288-miqi.dts
> +++ b/arch/arm/dts/rk3288-miqi.dts
> @@ -1,10 +1,11 @@
> -// SPDX-License-Identifier: GPL-2.0+ OR X11
> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> /*
> - * (C) Copyright 2016 Rockchip Electronics Co., Ltd
> + * Copyright (c) 2016 Heiko Stuebner <heiko@sntech.de>
> */
>
> /dts-v1/;
> -#include "rk3288-miqi.dtsi"
> +#include <dt-bindings/input/input.h>
> +#include "rk3288.dtsi"
>
> / {
> model = "mqmaker MiQi";
> @@ -13,4 +14,428 @@
> chosen {
> stdout-path = "serial2:115200n8";
> };
> +
> + memory@0 {
> + device_type = "memory";
> + reg = <0x0 0x0 0x0 0x80000000>;
> + };
> +
> + ext_gmac: external-gmac-clock {
> + compatible = "fixed-clock";
> + #clock-cells = <0>;
> + clock-frequency = <125000000>;
> + clock-output-names = "ext_gmac";
> + };
> +
> + leds {
> + compatible = "gpio-leds";
> +
> + work_led: led-0 {
> + gpios = <&gpio7 RK_PA2 GPIO_ACTIVE_HIGH>;
> + label = "miqi:green:user";
> + linux,default-trigger = "timer";
> + };
> + };
> +
> + vcc_flash: flash-regulator {
> + compatible = "regulator-fixed";
> + regulator-name = "vcc_flash";
> + regulator-min-microvolt = <1800000>;
> + regulator-max-microvolt = <1800000>;
> + vin-supply = <&vcc_io>;
> + };
> +
> + vcc_host: usb-host-regulator {
> + compatible = "regulator-fixed";
> + enable-active-high;
> + gpio = <&gpio0 RK_PB6 GPIO_ACTIVE_HIGH>;
> + pinctrl-names = "default";
> + pinctrl-0 = <&host_vbus_drv>;
> + regulator-name = "vcc_host";
> + regulator-min-microvolt = <5000000>;
> + regulator-max-microvolt = <5000000>;
> + regulator-always-on;
> + vin-supply = <&vcc_sys>;
> + };
> +
> + vcc_sd: sdmmc-regulator {
> + compatible = "regulator-fixed";
> + gpio = <&gpio7 RK_PB3 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_sys: vsys-regulator {
> + compatible = "regulator-fixed";
> + regulator-name = "vcc_sys";
> + regulator-min-microvolt = <5000000>;
> + regulator-max-microvolt = <5000000>;
> + regulator-always-on;
> + regulator-boot-on;
> + };
> +};
> +
> +&cpu0 {
> + cpu-supply = <&vdd_cpu>;
> +};
> +
> +&cpu1 {
> + cpu-supply = <&vdd_cpu>;
> +};
> +
> +&cpu2 {
> + cpu-supply = <&vdd_cpu>;
> +};
> +
> +&cpu3 {
> + cpu-supply = <&vdd_cpu>;
> +};
> +
> +&emmc {
> + bus-width = <8>;
> + cap-mmc-highspeed;
> + non-removable;
> + pinctrl-names = "default";
> + pinctrl-0 = <&emmc_clk>, <&emmc_cmd>, <&emmc_pwr>, <&emmc_bus8>;
> + vmmc-supply = <&vcc_io>;
> + vqmmc-supply = <&vcc_flash>;
> + status = "okay";
> +};
> +
> +&gmac {
> + assigned-clocks = <&cru SCLK_MAC>;
> + assigned-clock-parents = <&ext_gmac>;
> + clock_in_out = "input";
> + pinctrl-names = "default";
> + pinctrl-0 = <&rgmii_pins>, <&phy_rst>, <&phy_pmeb>, <&phy_int>;
> + phy-supply = <&vcc_lan>;
> + phy-mode = "rgmii";
> + snps,reset-active-low;
> + snps,reset-delays-us = <0 10000 1000000>;
> + snps,reset-gpio = <&gpio4 RK_PB0 GPIO_ACTIVE_LOW>;
> + tx_delay = <0x30>;
> + rx_delay = <0x10>;
> + status = "okay";
> +};
> +
> +&gpu {
> + mali-supply = <&vdd_gpu>;
> + status = "okay";
> +};
> +
> +&hdmi {
> + ddc-i2c-bus = <&i2c5>;
> + status = "okay";
> +};
> +
> +&i2c0 {
> + clock-frequency = <400000>;
> + status = "okay";
> +
> + vdd_cpu: syr827@40 {
> + compatible = "silergy,syr827";
> + fcs,suspend-voltage-selector = <1>;
> + reg = <0x40>;
> + regulator-name = "vdd_cpu";
> + regulator-min-microvolt = <850000>;
> + regulator-max-microvolt = <1350000>;
> + regulator-always-on;
> + regulator-boot-on;
> + regulator-enable-ramp-delay = <300>;
> + regulator-ramp-delay = <8000>;
> + vin-supply = <&vcc_sys>;
> + };
> +
> + vdd_gpu: syr828@41 {
> + compatible = "silergy,syr828";
> + fcs,suspend-voltage-selector = <1>;
> + reg = <0x41>;
> + regulator-name = "vdd_gpu";
> + regulator-min-microvolt = <850000>;
> + regulator-max-microvolt = <1350000>;
> + regulator-always-on;
> + vin-supply = <&vcc_sys>;
> + };
> +
> + hym8563: hym8563@51 {
> + compatible = "haoyu,hym8563";
> + reg = <0x51>;
> + #clock-cells = <0>;
> + clock-frequency = <32768>;
> + clock-output-names = "xin32k";
> + };
> +
> + act8846: act8846@5a {
> + compatible = "active-semi,act8846";
> + reg = <0x5a>;
> + pinctrl-names = "default";
> + pinctrl-0 = <&pmic_vsel>;
> + system-power-controller;
> +
> + vp1-supply = <&vcc_sys>;
> + vp2-supply = <&vcc_sys>;
> + vp3-supply = <&vcc_sys>;
> + vp4-supply = <&vcc_sys>;
> + inl1-supply = <&vcc_sys>;
> + inl2-supply = <&vcc_sys>;
> + inl3-supply = <&vcc_20>;
> +
> + regulators {
> + vcc_ddr: REG1 {
> + regulator-name = "vcc_ddr";
> + regulator-always-on;
> + };
> +
> + vcc_io: REG2 {
> + regulator-name = "vcc_io";
> + regulator-min-microvolt = <3300000>;
> + regulator-max-microvolt = <3300000>;
> + regulator-always-on;
> + };
> +
> + vdd_log: REG3 {
> + regulator-name = "vdd_log";
> + regulator-min-microvolt = <1100000>;
> + regulator-max-microvolt = <1100000>;
> + regulator-always-on;
> + };
> +
> + vcc_20: REG4 {
> + regulator-name = "vcc_20";
> + regulator-min-microvolt = <2000000>;
> + regulator-max-microvolt = <2000000>;
> + regulator-always-on;
> + };
> +
> + vccio_sd: REG5 {
> + regulator-name = "vccio_sd";
> + regulator-min-microvolt = <3300000>;
> + regulator-max-microvolt = <3300000>;
> + regulator-always-on;
> + };
> +
> + vdd10_lcd: REG6 {
> + regulator-name = "vdd10_lcd";
> + regulator-min-microvolt = <1000000>;
> + regulator-max-microvolt = <1000000>;
> + regulator-always-on;
> + };
> +
> + vcca_18: REG7 {
> + regulator-name = "vcca_18";
> + regulator-min-microvolt = <1800000>;
> + regulator-max-microvolt = <1800000>;
> + };
> +
> + vcca_33: REG8 {
> + regulator-name = "vcca_33";
> + regulator-min-microvolt = <3300000>;
> + regulator-max-microvolt = <3300000>;
> + };
> +
> + vcc_lan: REG9 {
> + regulator-name = "vcc_lan";
> + regulator-min-microvolt = <3300000>;
> + regulator-max-microvolt = <3300000>;
> + };
> +
> + vdd_10: REG10 {
> + regulator-name = "vdd_10";
> + regulator-min-microvolt = <1000000>;
> + regulator-max-microvolt = <1000000>;
> + regulator-always-on;
> + };
> +
> + vcc_18: REG11 {
> + regulator-name = "vcc_18";
> + regulator-min-microvolt = <1800000>;
> + regulator-max-microvolt = <1800000>;
> + regulator-always-on;
> + };
> +
> + vcc18_lcd: REG12 {
> + regulator-name = "vcc18_lcd";
> + regulator-min-microvolt = <1800000>;
> + regulator-max-microvolt = <1800000>;
> + regulator-always-on;
> + };
> + };
> + };
> +};
> +
> +&i2c1 {
> + status = "okay";
> +};
> +
> +&i2c2 {
> + status = "okay";
> +};
> +
> +&i2c4 {
> + status = "okay";
> +};
> +
> +&i2c5 {
> + status = "okay";
> +};
> +
> +&io_domains {
> + status = "okay";
> +
> + audio-supply = <&vcca_33>;
> + flash0-supply = <&vcc_flash>;
> + flash1-supply = <&vcc_lan>;
> + gpio30-supply = <&vcc_io>;
> + gpio1830-supply = <&vcc_io>;
> + lcdc-supply = <&vcc_io>;
> + sdcard-supply = <&vccio_sd>;
> + wifi-supply = <&vcc_18>;
> +};
> +
> +&pinctrl {
> + pcfg_output_high: pcfg-output-high {
> + output-high;
> + };
> +
> + pcfg_output_low: pcfg-output-low {
> + output-low;
> + };
> +
> + pcfg_pull_up_drv_12ma: pcfg-pull-up-drv-12ma {
> + bias-pull-up;
> + drive-strength = <12>;
> + };
> +
> + act8846 {
> + pmic_int: pmic-int {
> + rockchip,pins = <0 RK_PA4 RK_FUNC_GPIO &pcfg_pull_up>;
> + };
> +
> + pmic_sleep: pmic-sleep {
> + rockchip,pins = <0 RK_PA0 RK_FUNC_GPIO &pcfg_output_low>;
> + };
> +
> + pmic_vsel: pmic-vsel {
> + rockchip,pins = <7 RK_PA1 RK_FUNC_GPIO &pcfg_output_low>;
> + };
> + };
> +
> + gmac {
> + phy_int: phy-int {
> + rockchip,pins = <0 RK_PB1 RK_FUNC_GPIO &pcfg_pull_up>;
> + };
> +
> + phy_pmeb: phy-pmeb {
> + rockchip,pins = <0 RK_PB0 RK_FUNC_GPIO &pcfg_pull_up>;
> + };
> +
> + phy_rst: phy-rst {
> + rockchip,pins = <4 RK_PB0 RK_FUNC_GPIO &pcfg_output_high>;
> + };
> + };
> +
> + sdmmc {
> + /*
> + * Default drive strength isn't enough to achieve even
> + * high-speed mode on firefly board so bump up to 12ma.
> + */
> + sdmmc_bus4: sdmmc-bus4 {
> + rockchip,pins = <6 RK_PC0 1 &pcfg_pull_up_drv_12ma>,
> + <6 RK_PC1 1 &pcfg_pull_up_drv_12ma>,
> + <6 RK_PC2 1 &pcfg_pull_up_drv_12ma>,
> + <6 RK_PC3 1 &pcfg_pull_up_drv_12ma>;
> + };
> +
> + sdmmc_clk: sdmmc-clk {
> + rockchip,pins = <6 RK_PC4 1 &pcfg_pull_none_12ma>;
> + };
> +
> + sdmmc_cmd: sdmmc-cmd {
> + rockchip,pins = <6 RK_PC5 1 &pcfg_pull_up_drv_12ma>;
> + };
> +
> + sdmmc_pwr: sdmmc-pwr {
> + rockchip,pins = <7 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>;
> + };
> + };
> +
> + usb_host {
> + host_vbus_drv: host-vbus-drv {
> + rockchip,pins = <0 RK_PB6 RK_FUNC_GPIO &pcfg_pull_none>;
> + };
> + };
> +};
> +
> +&saradc {
> + vref-supply = <&vcc_18>;
> + status = "okay";
> +};
> +
> +&sdmmc {
> + bus-width = <4>;
> + cap-mmc-highspeed;
> + cap-sd-highspeed;
> + card-detect-delay = <200>;
> + disable-wp;
> + pinctrl-names = "default";
> + pinctrl-0 = <&sdmmc_clk>, <&sdmmc_cmd>, <&sdmmc_cd>, <&sdmmc_bus4>;
> + vmmc-supply = <&vcc_sd>;
> + vqmmc-supply = <&vccio_sd>;
> + status = "okay";
> +};
> +
> +&tsadc {
> + rockchip,hw-tshut-mode = <0>;
> + rockchip,hw-tshut-polarity = <0>;
> + status = "okay";
> +};
> +
> +&uart2 {
> + status = "okay";
> +};
> +
> +&uart3 {
> + status = "okay";
> +};
> +
> +&usbphy {
> + status = "okay";
> +};
> +
> +&usb_host1 {
> + status = "okay";
> +};
> +
> +&usb_otg {
> + /*
> + * The otg controller is the only system power source,
> + * so needs to always stay in device mode.
> + */
> + dr_mode = "peripheral";
> + status = "okay";
> +};
> +
> +&vopb {
> + status = "okay";
> +};
> +
> +&vopb_mmu {
> + status = "okay";
> +};
> +
> +&vopl {
> + status = "okay";
> +};
> +
> +&vopl_mmu {
> + status = "okay";
> +};
> +
> +&wdt {
> + status = "okay";
> };
> diff --git a/arch/arm/dts/rk3288-miqi.dtsi b/arch/arm/dts/rk3288-miqi.dtsi
> deleted file mode 100644
> index b1c286c9..00000000
> --- a/arch/arm/dts/rk3288-miqi.dtsi
> +++ /dev/null
> @@ -1,418 +0,0 @@
> -// SPDX-License-Identifier: GPL-2.0+ OR X11
> -/*
> - * Copyright (c) 2016 Heiko Stuebner <heiko@sntech.de>
> - */
> -
> -#include "rk3288.dtsi"
> -
> -/ {
> - memory {
> - device_type = "memory";
> - reg = <0 0x80000000>;
> - };
> -
> - ext_gmac: external-gmac-clock {
> - compatible = "fixed-clock";
> - #clock-cells = <0>;
> - clock-frequency = <125000000>;
> - clock-output-names = "ext_gmac";
> - };
> -
> - leds {
> - compatible = "gpio-leds";
> -
> - work {
> - gpios = <&gpio7 4 GPIO_ACTIVE_LOW>;
> - label = "miqi:green:user";
> - linux,default-trigger = "default-on";
> - pinctrl-names = "default";
> - pinctrl-0 = <&led_ctl>;
> - };
> - };
> -
> - vcc_flash: flash-regulator {
> - compatible = "regulator-fixed";
> - regulator-name = "vcc_flash";
> - regulator-min-microvolt = <1800000>;
> - regulator-max-microvolt = <1800000>;
> - vin-supply = <&vcc_io>;
> - };
> -
> - vcc_host: usb-host-regulator {
> - compatible = "regulator-fixed";
> - enable-active-high;
> - gpio = <&gpio0 14 GPIO_ACTIVE_HIGH>;
> - pinctrl-names = "default";
> - pinctrl-0 = <&host_vbus_drv>;
> - regulator-name = "vcc_host";
> - regulator-min-microvolt = <5000000>;
> - regulator-max-microvolt = <5000000>;
> - regulator-always-on;
> - vin-supply = <&vcc_sys>;
> - };
> -
> - vcc_sd: sdmmc-regulator {
> - compatible = "regulator-fixed";
> - gpio = <&gpio7 11 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_sys: vsys-regulator {
> - compatible = "regulator-fixed";
> - regulator-name = "vcc_sys";
> - regulator-min-microvolt = <5000000>;
> - regulator-max-microvolt = <5000000>;
> - regulator-always-on;
> - regulator-boot-on;
> - };
> -};
> -
> -&cpu0 {
> - cpu0-supply = <&vdd_cpu>;
> -};
> -
> -&emmc {
> - bus-width = <8>;
> - cap-mmc-highspeed;
> - disable-wp;
> - non-removable;
> - num-slots = <1>;
> - pinctrl-names = "default";
> - pinctrl-0 = <&emmc_clk>, <&emmc_cmd>, <&emmc_pwr>, <&emmc_bus8>;
> - vmmc-supply = <&vcc_io>;
> - vqmmc-supply = <&vcc_flash>;
> - status = "okay";
> -};
> -
> -&gmac {
> - assigned-clocks = <&cru SCLK_MAC>;
> - assigned-clock-parents = <&ext_gmac>;
> - clock_in_out = "input";
> - pinctrl-names = "default";
> - pinctrl-0 = <&rgmii_pins>, <&phy_rst>, <&phy_pmeb>, <&phy_int>;
> - phy-supply = <&vcc_lan>;
> - phy-mode = "rgmii";
> - snps,reset-active-low;
> - snps,reset-delays-us = <0 10000 1000000>;
> - snps,reset-gpio = <&gpio4 8 GPIO_ACTIVE_LOW>;
> - tx_delay = <0x30>;
> - rx_delay = <0x10>;
> - status = "okay";
> -};
> -
> -&hdmi {
> - ddc-i2c-bus = <&i2c5>;
> - status = "okay";
> -};
> -
> -&i2c0 {
> - clock-frequency = <400000>;
> - status = "okay";
> -
> - vdd_cpu: syr827@40 {
> - compatible = "silergy,syr827";
> - fcs,suspend-voltage-selector = <1>;
> - reg = <0x40>;
> - regulator-name = "vdd_cpu";
> - regulator-min-microvolt = <850000>;
> - regulator-max-microvolt = <1350000>;
> - regulator-always-on;
> - regulator-boot-on;
> - regulator-enable-ramp-delay = <300>;
> - regulator-ramp-delay = <8000>;
> - vin-supply = <&vcc_sys>;
> - };
> -
> - vdd_gpu: syr828@41 {
> - compatible = "silergy,syr828";
> - fcs,suspend-voltage-selector = <1>;
> - reg = <0x41>;
> - regulator-name = "vdd_gpu";
> - regulator-min-microvolt = <850000>;
> - regulator-max-microvolt = <1350000>;
> - regulator-always-on;
> - vin-supply = <&vcc_sys>;
> - };
> -
> - hym8563: hym8563@51 {
> - compatible = "haoyu,hym8563";
> - reg = <0x51>;
> - #clock-cells = <0>;
> - clock-frequency = <32768>;
> - clock-output-names = "xin32k";
> - };
> -
> - act8846: act8846@5a {
> - compatible = "active-semi,act8846";
> - reg = <0x5a>;
> - pinctrl-names = "default";
> - pinctrl-0 = <&pmic_vsel>;
> - system-power-controller;
> -
> - vp1-supply = <&vcc_sys>;
> - vp2-supply = <&vcc_sys>;
> - vp3-supply = <&vcc_sys>;
> - vp4-supply = <&vcc_sys>;
> - inl1-supply = <&vcc_sys>;
> - inl2-supply = <&vcc_sys>;
> - inl3-supply = <&vcc_20>;
> -
> - regulators {
> - vcc_ddr: REG1 {
> - regulator-name = "vcc_ddr";
> - regulator-always-on;
> - };
> -
> - vcc_io: REG2 {
> - regulator-name = "vcc_io";
> - regulator-min-microvolt = <3300000>;
> - regulator-max-microvolt = <3300000>;
> - regulator-always-on;
> - };
> -
> - vdd_log: REG3 {
> - regulator-name = "vdd_log";
> - regulator-min-microvolt = <1100000>;
> - regulator-max-microvolt = <1100000>;
> - regulator-always-on;
> - };
> -
> - vcc_20: REG4 {
> - regulator-name = "vcc_20";
> - regulator-min-microvolt = <2000000>;
> - regulator-max-microvolt = <2000000>;
> - regulator-always-on;
> - };
> -
> - vccio_sd: REG5 {
> - regulator-name = "vccio_sd";
> - regulator-min-microvolt = <3300000>;
> - regulator-max-microvolt = <3300000>;
> - regulator-always-on;
> - };
> -
> - vdd10_lcd: REG6 {
> - regulator-name = "vdd10_lcd";
> - regulator-min-microvolt = <1000000>;
> - regulator-max-microvolt = <1000000>;
> - regulator-always-on;
> - };
> -
> - vcca_18: REG7 {
> - regulator-name = "vcca_18";
> - regulator-min-microvolt = <1800000>;
> - regulator-max-microvolt = <1800000>;
> - };
> -
> - vcca_33: REG8 {
> - regulator-name = "vcca_33";
> - regulator-min-microvolt = <3300000>;
> - regulator-max-microvolt = <3300000>;
> - };
> -
> - vcc_lan: REG9 {
> - regulator-name = "vcc_lan";
> - regulator-min-microvolt = <3300000>;
> - regulator-max-microvolt = <3300000>;
> - };
> -
> - vdd_10: REG10 {
> - regulator-name = "vdd_10";
> - regulator-min-microvolt = <1000000>;
> - regulator-max-microvolt = <1000000>;
> - regulator-always-on;
> - };
> -
> - vcc_18: REG11 {
> - regulator-name = "vcc_18";
> - regulator-min-microvolt = <1800000>;
> - regulator-max-microvolt = <1800000>;
> - regulator-always-on;
> - };
> -
> - vcc18_lcd: REG12 {
> - regulator-name = "vcc18_lcd";
> - regulator-min-microvolt = <1800000>;
> - regulator-max-microvolt = <1800000>;
> - regulator-always-on;
> - };
> - };
> - };
> -};
> -
> -&i2c1 {
> - status = "okay";
> -};
> -
> -&i2c2 {
> - status = "okay";
> -};
> -
> -&i2c4 {
> - status = "okay";
> -};
> -
> -&i2c5 {
> - status = "okay";
> -};
> -
> -&io_domains {
> - status = "okay";
> -
> - audio-supply = <&vcca_33>;
> - flash0-supply = <&vcc_flash>;
> - flash1-supply = <&vcc_lan>;
> - gpio30-supply = <&vcc_io>;
> - gpio1830-supply = <&vcc_io>;
> - lcdc-supply = <&vcc_io>;
> - sdcard-supply = <&vccio_sd>;
> - wifi-supply = <&vcc_18>;
> -};
> -
> -&pinctrl {
> - pcfg_output_high: pcfg-output-high {
> - output-high;
> - };
> -
> - pcfg_output_low: pcfg-output-low {
> - output-low;
> - };
> -
> - pcfg_pull_up_drv_12ma: pcfg-pull-up-drv-12ma {
> - bias-pull-up;
> - drive-strength = <12>;
> - };
> -
> - act8846 {
> - pmic_int: pmic-int {
> - rockchip,pins = <0 4 RK_FUNC_GPIO &pcfg_pull_up>;
> - };
> -
> - pmic_sleep: pmic-sleep {
> - rockchip,pins = <0 0 RK_FUNC_GPIO &pcfg_output_low>;
> - };
> -
> - pmic_vsel: pmic-vsel {
> - rockchip,pins = <7 1 RK_FUNC_GPIO &pcfg_output_low>;
> - };
> - };
> -
> - gmac {
> - phy_int: phy-int {
> - rockchip,pins = <0 9 RK_FUNC_GPIO &pcfg_pull_up>;
> - };
> -
> - phy_pmeb: phy-pmeb {
> - rockchip,pins = <0 8 RK_FUNC_GPIO &pcfg_pull_up>;
> - };
> -
> - phy_rst: phy-rst {
> - rockchip,pins = <4 8 RK_FUNC_GPIO &pcfg_output_high>;
> - };
> - };
> -
> - leds {
> - led_ctl: led-ctl {
> - rockchip,pins = <7 4 RK_FUNC_GPIO &pcfg_pull_none>;
> - };
> - };
> -
> - sdmmc {
> - /*
> - * Default drive strength isn't enough to achieve even
> - * high-speed mode on firefly board so bump up to 12ma.
> - */
> - sdmmc_bus4: sdmmc-bus4 {
> - rockchip,pins = <6 16 RK_FUNC_1 &pcfg_pull_up_drv_12ma>,
> - <6 17 RK_FUNC_1 &pcfg_pull_up_drv_12ma>,
> - <6 18 RK_FUNC_1 &pcfg_pull_up_drv_12ma>,
> - <6 19 RK_FUNC_1 &pcfg_pull_up_drv_12ma>;
> - };
> -
> - sdmmc_clk: sdmmc-clk {
> - rockchip,pins = <6 20 RK_FUNC_1 &pcfg_pull_none_12ma>;
> - };
> -
> - sdmmc_cmd: sdmmc-cmd {
> - rockchip,pins = <6 21 RK_FUNC_1 &pcfg_pull_up_drv_12ma>;
> - };
> -
> - sdmmc_pwr: sdmmc-pwr {
> - rockchip,pins = <7 11 RK_FUNC_GPIO &pcfg_pull_none>;
> - };
> - };
> -
> - usb_host {
> - host_vbus_drv: host-vbus-drv {
> - rockchip,pins = <0 14 RK_FUNC_GPIO &pcfg_pull_none>;
> - };
> - };
> -};
> -
> -&saradc {
> - vref-supply = <&vcc_18>;
> - status = "okay";
> -};
> -
> -&sdmmc {
> - bus-width = <4>;
> - cap-mmc-highspeed;
> - cap-sd-highspeed;
> - card-detect-delay = <200>;
> - disable-wp;
> - num-slots = <1>;
> - pinctrl-names = "default";
> - pinctrl-0 = <&sdmmc_clk>, <&sdmmc_cmd>, <&sdmmc_cd>, <&sdmmc_bus4>;
> - vmmc-supply = <&vcc_sd>;
> - vqmmc-supply = <&vccio_sd>;
> - status = "okay";
> -};
> -
> -&tsadc {
> - rockchip,hw-tshut-mode = <0>;
> - rockchip,hw-tshut-polarity = <0>;
> - status = "okay";
> -};
> -
> -&uart2 {
> - status = "okay";
> -};
> -
> -&uart3 {
> - status = "okay";
> -};
> -
> -&usbphy {
> - status = "okay";
> -};
> -
> -&usb_host1 {
> - vbus-supply = <&vcc_host>;
> - status = "okay";
> -};
> -
> -&vopb {
> - status = "okay";
> -};
> -
> -&vopb_mmu {
> - status = "okay";
> -};
> -
> -&vopl {
> - status = "okay";
> -};
> -
> -&vopl_mmu {
> - status = "okay";
> -};
> -
> -&wdt {
> - status = "okay";
> -};
> diff --git a/arch/arm/dts/rk3288-phycore-rdk.dts b/arch/arm/dts/rk3288-phycore-rdk.dts
> index ebea8e67..1e33859d 100644
> --- a/arch/arm/dts/rk3288-phycore-rdk.dts
> +++ b/arch/arm/dts/rk3288-phycore-rdk.dts
> @@ -1,60 +1,20 @@
> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> /*
> * Device tree file for Phytec PCM-947 carrier board
> * Copyright (C) 2017 PHYTEC Messtechnik GmbH
> * Author: Wadim Egorov <w.egorov@phytec.de>
> - *
> - * This file is dual-licensed: you can use it either under the terms
> - * of the GPL or the X11 license, at your option. Note that this dual
> - * licensing only applies to this file, and not this project as a
> - * whole.
> - *
> - * a) This file is free software; you can redistribute it and/or
> - * modify it under the terms of the GNU General Public License as
> - * published by the Free Software Foundation; either version 2 of the
> - * License, or (at your option) any later version.
> - *
> - * This file is distributed in the hope that it will be useful,
> - * but WITHOUT ANY WARRANTY; without even the implied warranty of
> - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> - * GNU General Public License for more details.
> - *
> - * Or, alternatively,
> - *
> - * b) Permission is hereby granted, free of charge, to any person
> - * obtaining a copy of this software and associated documentation
> - * files (the "Software"), to deal in the Software without
> - * restriction, including without limitation the rights to use,
> - * copy, modify, merge, publish, distribute, sublicense, and/or
> - * sell copies of the Software, and to permit persons to whom the
> - * Software is furnished to do so, subject to the following
> - * conditions:
> - *
> - * The above copyright notice and this permission notice shall be
> - * included in all copies or substantial portions of the Software.
> - *
> - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
> - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
> - * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
> - * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
> - * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
> - * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
> - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
> - * OTHER DEALINGS IN THE SOFTWARE.
> */
>
> /dts-v1/;
>
> #include <dt-bindings/input/input.h>
> +#include <dt-bindings/leds/leds-pca9532.h>
> #include "rk3288-phycore-som.dtsi"
>
> / {
> model = "Phytec RK3288 PCM-947";
> compatible = "phytec,rk3288-pcm-947", "phytec,rk3288-phycore-som", "rockchip,rk3288";
>
> - chosen {
> - stdout-path = &uart2;
> - };
> -
> user_buttons: user-buttons {
> compatible = "gpio-keys";
> pinctrl-names = "default";
> @@ -155,6 +115,36 @@
>
> &i2c4 {
> status = "okay";
> +
> + /* PCA9533 - 4-bit LED dimmer */
> + leddim: leddimmer@62 {
> + compatible = "nxp,pca9533";
> + reg = <0x62>;
> +
> + led1 {
> + label = "red:user1";
> + linux,default-trigger = "none";
> + type = <PCA9532_TYPE_LED>;
> + };
> +
> + led2 {
> + label = "green:user2";
> + linux,default-trigger = "none";
> + type = <PCA9532_TYPE_LED>;
> + };
> +
> + led3 {
> + label = "blue:user3";
> + linux,default-trigger = "none";
> + type = <PCA9532_TYPE_LED>;
> + };
> +
> + led4 {
> + label = "red:user4";
> + linux,default-trigger = "none";
> + type = <PCA9532_TYPE_LED>;
> + };
> + };
> };
>
> &i2c5 {
> @@ -170,15 +160,15 @@
> buttons {
> user_button_pins: user-button-pins {
> /* button 1 */
> - rockchip,pins = <8 3 RK_FUNC_GPIO &pcfg_pull_up>,
> + rockchip,pins = <8 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>,
> /* button 2 */
> - <8 0 RK_FUNC_GPIO &pcfg_pull_up>;
> + <8 RK_PA0 RK_FUNC_GPIO &pcfg_pull_up>;
> };
> };
>
> rv4162 {
> i2c_rtc_int: i2c-rtc-int {
> - rockchip,pins = <5 10 RK_FUNC_GPIO &pcfg_pull_up>;
> + rockchip,pins = <5 RK_PB2 RK_FUNC_GPIO &pcfg_pull_up>;
> };
> };
>
> @@ -188,44 +178,44 @@
> * high-speed mode on pcm-947 board so bump up to 12 mA.
> */
> sdmmc_bus4: sdmmc-bus4 {
> - rockchip,pins = <6 16 RK_FUNC_1 &pcfg_pull_up_drv_12ma>,
> - <6 17 RK_FUNC_1 &pcfg_pull_up_drv_12ma>,
> - <6 18 RK_FUNC_1 &pcfg_pull_up_drv_12ma>,
> - <6 19 RK_FUNC_1 &pcfg_pull_up_drv_12ma>;
> + rockchip,pins = <6 RK_PC0 1 &pcfg_pull_up_drv_12ma>,
> + <6 RK_PC1 1 &pcfg_pull_up_drv_12ma>,
> + <6 RK_PC2 1 &pcfg_pull_up_drv_12ma>,
> + <6 RK_PC3 1 &pcfg_pull_up_drv_12ma>;
> };
>
> sdmmc_clk: sdmmc-clk {
> - rockchip,pins = <6 20 RK_FUNC_1 &pcfg_pull_none_12ma>;
> + rockchip,pins = <6 RK_PC4 1 &pcfg_pull_none_12ma>;
> };
>
> sdmmc_cmd: sdmmc-cmd {
> - rockchip,pins = <6 21 RK_FUNC_1 &pcfg_pull_up_drv_12ma>;
> + rockchip,pins = <6 RK_PC5 1 &pcfg_pull_up_drv_12ma>;
> };
>
> sdmmc_pwr: sdmmc-pwr {
> - rockchip,pins = <7 11 RK_FUNC_GPIO &pcfg_pull_none>;
> + rockchip,pins = <7 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>;
> };
> };
>
> touchscreen {
> ts_irq_pin: ts-irq-pin {
> - rockchip,pins = <5 15 RK_FUNC_GPIO &pcfg_pull_none>;
> + rockchip,pins = <5 RK_PB7 RK_FUNC_GPIO &pcfg_pull_none>;
> };
> };
>
> usb_host {
> host0_vbus_drv: host0-vbus-drv {
> - rockchip,pins = <2 13 RK_FUNC_GPIO &pcfg_pull_none>;
> + rockchip,pins = <2 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>;
> };
>
> host1_vbus_drv: host1-vbus-drv {
> - rockchip,pins = <2 0 RK_FUNC_GPIO &pcfg_pull_none>;
> + rockchip,pins = <2 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>;
> };
> };
>
> usb_otg {
> otg_vbus_drv: otg-vbus-drv {
> - rockchip,pins = <2 12 RK_FUNC_GPIO &pcfg_pull_none>;
> + rockchip,pins = <2 RK_PB4 RK_FUNC_GPIO &pcfg_pull_none>;
> };
> };
> };
> @@ -236,10 +226,13 @@
> cap-sd-highspeed;
> card-detect-delay = <200>;
> disable-wp;
> - num-slots = <1>;
> pinctrl-names = "default";
> pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_bus4>;
> - vmmc-supply = <&vdd_io_sd>;
> + sd-uhs-sdr12;
> + sd-uhs-sdr25;
> + sd-uhs-sdr50;
> + sd-uhs-sdr104;
> + vmmc-supply = <&vdd_sd>;
> vqmmc-supply = <&vdd_io_sd>;
> status = "okay";
> };
> diff --git a/arch/arm/dts/rk3288-phycore-som.dtsi b/arch/arm/dts/rk3288-phycore-som.dtsi
> index 8ac695c8..b4894e9f 100644
> --- a/arch/arm/dts/rk3288-phycore-som.dtsi
> +++ b/arch/arm/dts/rk3288-phycore-som.dtsi
> @@ -1,45 +1,8 @@
> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> /*
> * Device tree file for Phytec phyCORE-RK3288 SoM
> * Copyright (C) 2017 PHYTEC Messtechnik GmbH
> * Author: Wadim Egorov <w.egorov@phytec.de>
> - *
> - * This file is dual-licensed: you can use it either under the terms
> - * of the GPL or the X11 license, at your option. Note that this dual
> - * licensing only applies to this file, and not this project as a
> - * whole.
> - *
> - * a) This file is free software; you can redistribute it and/or
> - * modify it under the terms of the GNU General Public License as
> - * published by the Free Software Foundation; either version 2 of the
> - * License, or (at your option) any later version.
> - *
> - * This file is distributed in the hope that it will be useful,
> - * but WITHOUT ANY WARRANTY; without even the implied warranty of
> - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> - * GNU General Public License for more details.
> - *
> - * Or, alternatively,
> - *
> - * b) Permission is hereby granted, free of charge, to any person
> - * obtaining a copy of this software and associated documentation
> - * files (the "Software"), to deal in the Software without
> - * restriction, including without limitation the rights to use,
> - * copy, modify, merge, publish, distribute, sublicense, and/or
> - * sell copies of the Software, and to permit persons to whom the
> - * Software is furnished to do so, subject to the following
> - * conditions:
> - *
> - * The above copyright notice and this permission notice shall be
> - * included in all copies or substantial portions of the Software.
> - *
> - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
> - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
> - * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
> - * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
> - * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
> - * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
> - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
> - * OTHER DEALINGS IN THE SOFTWARE.
> */
>
> #include <dt-bindings/net/ti-dp83867.h>
> @@ -61,7 +24,6 @@
> aliases {
> rtc0 = &i2c_rtc;
> rtc1 = &rk818;
> - eeprom0 = &i2c_eeprom_id;
> };
>
> ext_gmac: external-gmac-clock {
> @@ -74,9 +36,9 @@
> leds: user-leds {
> compatible = "gpio-leds";
> pinctrl-names = "default";
> - pinctrl-0 = <&user_led>;
> + pinctrl-0 = <&user_led_pin>;
>
> - user {
> + user_led: led-0 {
> label = "green_led";
> gpios = <&gpio7 2 GPIO_ACTIVE_HIGH>;
> linux,default-trigger = "heartbeat";
> @@ -111,33 +73,12 @@
> };
> };
>
> -&cpu0 {
> - cpu0-supply = <&vdd_cpu>;
> - operating-points = <
> - /* KHz uV */
> - 1800000 1400000
> - 1608000 1350000
> - 1512000 1300000
> - 1416000 1200000
> - 1200000 1100000
> - 1008000 1050000
> - 816000 1000000
> - 696000 950000
> - 600000 900000
> - 408000 900000
> - 312000 900000
> - 216000 900000
> - 126000 900000
> - >;
> -};
> -
> &emmc {
> status = "okay";
> bus-width = <8>;
> cap-mmc-highspeed;
> disable-wp;
> non-removable;
> - num-slots = <1>;
> pinctrl-names = "default";
> pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_pwr &emmc_bus8>;
> vmmc-supply = <&vdd_3v3_io>;
> @@ -173,6 +114,7 @@
> ti,tx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
> ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
> enet-phy-lane-no-swap;
> + ti,clk-output-sel = <DP83867_CLK_O_SEL_CHN_A_TCLK>;
> };
> };
> };
> @@ -200,7 +142,6 @@
> clock-frequency = <400000>;
>
> rk818: pmic@1c {
> - status = "okay";
> compatible = "rockchip,rk818";
> reg = <0x1c>;
> interrupt-parent = <&gpio0>;
> @@ -359,11 +300,10 @@
> regulator-name = "vdd_io_sd";
> regulator-always-on;
> regulator-boot-on;
> - regulator-min-microvolt = <3300000>;
> + regulator-min-microvolt = <1800000>;
> regulator-max-microvolt = <3300000>;
> regulator-state-mem {
> - regulator-on-in-suspend;
> - regulator-suspend-microvolt = <3300000>;
> + regulator-off-in-suspend;
> };
> };
> };
> @@ -376,13 +316,6 @@
> pagesize = <32>;
> };
>
> - /* M24C32-D Identification page */
> - i2c_eeprom_id: eeprom@58 {
> - compatible = "atmel,24c32";
> - reg = <0x58>;
> - pagesize = <32>;
> - };
> -
> vdd_cpu: regulator@60 {
> compatible = "fcs,fan53555";
> reg = <0x60>;
> @@ -409,49 +342,49 @@
> * We also have external pulls, so disable the internal ones.
> */
> emmc_clk: emmc-clk {
> - rockchip,pins = <3 18 RK_FUNC_2 &pcfg_pull_none_12ma>;
> + rockchip,pins = <3 RK_PC2 2 &pcfg_pull_none_12ma>;
> };
>
> emmc_cmd: emmc-cmd {
> - rockchip,pins = <3 16 RK_FUNC_2 &pcfg_pull_none_12ma>;
> + rockchip,pins = <3 RK_PC0 2 &pcfg_pull_none_12ma>;
> };
>
> emmc_bus8: emmc-bus8 {
> - rockchip,pins = <3 0 RK_FUNC_2 &pcfg_pull_none_12ma>,
> - <3 1 RK_FUNC_2 &pcfg_pull_none_12ma>,
> - <3 2 RK_FUNC_2 &pcfg_pull_none_12ma>,
> - <3 3 RK_FUNC_2 &pcfg_pull_none_12ma>,
> - <3 4 RK_FUNC_2 &pcfg_pull_none_12ma>,
> - <3 5 RK_FUNC_2 &pcfg_pull_none_12ma>,
> - <3 6 RK_FUNC_2 &pcfg_pull_none_12ma>,
> - <3 7 RK_FUNC_2 &pcfg_pull_none_12ma>;
> + rockchip,pins = <3 RK_PA0 2 &pcfg_pull_none_12ma>,
> + <3 RK_PA1 2 &pcfg_pull_none_12ma>,
> + <3 RK_PA2 2 &pcfg_pull_none_12ma>,
> + <3 RK_PA3 2 &pcfg_pull_none_12ma>,
> + <3 RK_PA4 2 &pcfg_pull_none_12ma>,
> + <3 RK_PA5 2 &pcfg_pull_none_12ma>,
> + <3 RK_PA6 2 &pcfg_pull_none_12ma>,
> + <3 RK_PA7 2 &pcfg_pull_none_12ma>;
> };
> };
>
> gmac {
> phy_int: phy-int {
> - rockchip,pins = <4 2 RK_FUNC_GPIO &pcfg_pull_up>;
> + rockchip,pins = <4 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>;
> };
>
> phy_rst: phy-rst {
> - rockchip,pins = <4 8 RK_FUNC_GPIO &pcfg_output_high>;
> + rockchip,pins = <4 RK_PB0 RK_FUNC_GPIO &pcfg_output_high>;
> };
> };
>
> leds {
> - user_led: user-led {
> - rockchip,pins = <7 2 RK_FUNC_GPIO &pcfg_output_high>;
> + user_led_pin: user-led-pin {
> + rockchip,pins = <7 RK_PA2 RK_FUNC_GPIO &pcfg_output_high>;
> };
> };
>
> pmic {
> pmic_int: pmic-int {
> - rockchip,pins = <RK_GPIO0 4 RK_FUNC_GPIO &pcfg_pull_up>;
> + rockchip,pins = <0 RK_PA4 RK_FUNC_GPIO &pcfg_pull_up>;
> };
>
> /* Pin for switching state between sleep and non-sleep state */
> pmic_sleep: pmic-sleep {
> - rockchip,pins = <RK_GPIO0 0 RK_FUNC_GPIO &pcfg_pull_up>;
> + rockchip,pins = <0 RK_PA0 RK_FUNC_GPIO &pcfg_pull_up>;
> };
> };
> };
> diff --git a/arch/arm/dts/rk3288-popmetal.dts b/arch/arm/dts/rk3288-popmetal.dts
> index 736dc51e..8c7376d6 100644
> --- a/arch/arm/dts/rk3288-popmetal.dts
> +++ b/arch/arm/dts/rk3288-popmetal.dts
> @@ -1,20 +1,513 @@
> -// SPDX-License-Identifier: GPL-2.0+ OR X11
> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> /*
> - * (C) Copyright 2016 Rockchip Electronics Co., Ltd
> + * Copyright (c) 2014, 2015 Andy Yan <andy.yan@rock-chips.com>
> */
>
> /dts-v1/;
> -#include "rk3288-popmetal.dtsi"
> +#include <dt-bindings/input/input.h>
> +#include "rk3288.dtsi"
>
> / {
> model = "PopMetal-RK3288";
> compatible = "chipspark,popmetal-rk3288", "rockchip,rk3288";
>
> - chosen {
> - stdout-path = &uart2;
> + memory@0 {
> + device_type = "memory";
> + reg = <0x0 0x0 0x0 0x80000000>;
> };
> +
> + ext_gmac: external-gmac-clock {
> + compatible = "fixed-clock";
> + clock-frequency = <125000000>;
> + clock-output-names = "ext_gmac";
> + #clock-cells = <0>;
> + };
> +
> + gpio-keys {
> + compatible = "gpio-keys";
> + autorepeat;
> +
> + pinctrl-names = "default";
> + pinctrl-0 = <&pwrbtn>;
> +
> + power {
> + gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_LOW>;
> + linux,code = <KEY_POWER>;
> + label = "GPIO Key Power";
> + linux,input-type = <1>;
> + wakeup-source;
> + debounce-interval = <100>;
> + };
> + };
> +
> + ir: ir-receiver {
> + compatible = "gpio-ir-receiver";
> + gpios = <&gpio0 RK_PA6 GPIO_ACTIVE_LOW>;
> + pinctrl-names = "default";
> + pinctrl-0 = <&ir_int>;
> + };
> +
> + vcc_flash: flash-regulator {
> + compatible = "regulator-fixed";
> + regulator-name = "vcc_flash";
> + regulator-min-microvolt = <1800000>;
> + regulator-max-microvolt = <1800000>;
> + vin-supply = <&vcc_io>;
> + };
> +
> + vcc_sd: sdmmc-regulator {
> + compatible = "regulator-fixed";
> + gpio = <&gpio7 RK_PB3 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_sys: vsys-regulator {
> + compatible = "regulator-fixed";
> + regulator-name = "vcc_sys";
> + regulator-min-microvolt = <5000000>;
> + regulator-max-microvolt = <5000000>;
> + regulator-always-on;
> + regulator-boot-on;
> + };
> +
> + /*
> + * A PT5128 creates both dovdd_1v8 and vcc28_dvp, controlled
> + * by the dvp_pwr pin.
> + */
> + vcc18_dvp: vcc18-dvp-regulator {
> + compatible = "regulator-fixed";
> + regulator-name = "vcc18-dvp";
> + regulator-min-microvolt = <1800000>;
> + regulator-max-microvolt = <1800000>;
> + vin-supply = <&vcc28_dvp>;
> + };
> +
> + vcc28_dvp: vcc28-dvp-regulator {
> + compatible = "regulator-fixed";
> + enable-active-high;
> + gpio = <&gpio0 RK_PC1 GPIO_ACTIVE_HIGH>;
> + pinctrl-names = "default";
> + pinctrl-0 = <&dvp_pwr>;
> + regulator-name = "vcc28_dvp";
> + regulator-min-microvolt = <2800000>;
> + regulator-max-microvolt = <2800000>;
> + regulator-always-on;
> + vin-supply = <&vcc_io>;
> + };
> +};
> +
> +&cpu0 {
> + cpu-supply = <&vdd_cpu>;
> +};
> +
> +&cpu1 {
> + cpu-supply = <&vdd_cpu>;
> +};
> +
> +&cpu2 {
> + cpu-supply = <&vdd_cpu>;
> +};
> +
> +&cpu3 {
> + cpu-supply = <&vdd_cpu>;
> +};
> +
> +&emmc {
> + bus-width = <8>;
> + cap-mmc-highspeed;
> + mmc-ddr-1_8v;
> + mmc-hs200-1_8v;
> + non-removable;
> + pinctrl-names = "default";
> + pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_pwr &emmc_bus8>;
> + vmmc-supply = <&vcc_io>;
> + vqmmc-supply = <&vcc_flash>;
> + status = "okay";
> +};
> +
> +&sdmmc {
> + bus-width = <4>;
> + cap-mmc-highspeed;
> + cap-sd-highspeed;
> + card-detect-delay = <200>;
> + disable-wp; /* wp not hooked up */
> + pinctrl-names = "default";
> + pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_bus4>;
> + sd-uhs-sdr12;
> + sd-uhs-sdr25;
> + sd-uhs-sdr50;
> + sd-uhs-sdr104;
> + vmmc-supply = <&vcc_sd>;
> + vqmmc-supply = <&vccio_sd>;
> + status = "okay";
> +};
> +
> +&gmac {
> + phy-supply = <&vcc_lan>;
> + phy-mode = "rgmii";
> + clock_in_out = "input";
> + snps,reset-gpio = <&gpio4 RK_PB0 GPIO_ACTIVE_HIGH>;
> + snps,reset-active-low;
> + snps,reset-delays-us = <0 10000 1000000>;
> + assigned-clocks = <&cru SCLK_MAC>;
> + assigned-clock-parents = <&ext_gmac>;
> + pinctrl-names = "default";
> + pinctrl-0 = <&rgmii_pins>;
> + tx_delay = <0x30>;
> + rx_delay = <0x10>;
> + status = "okay";
> +};
> +
> +&hdmi {
> + ddc-i2c-bus = <&i2c5>;
> + status = "okay";
> +};
> +
> +&i2c0 {
> + status = "okay";
> + clock-frequency = <400000>;
> +
> + rk808: pmic@1b {
> + compatible = "rockchip,rk808";
> + reg = <0x1b>;
> + interrupt-parent = <&gpio0>;
> + interrupts = <RK_PA4 IRQ_TYPE_LEVEL_LOW>;
> + pinctrl-names = "default";
> + pinctrl-0 = <&pmic_int &global_pwroff>;
> + rockchip,system-power-controller;
> + wakeup-source;
> + #clock-cells = <1>;
> + clock-output-names = "xin32k", "rk808-clkout2";
> +
> + vcc1-supply = <&vcc_sys>;
> + vcc2-supply = <&vcc_sys>;
> + vcc3-supply = <&vcc_sys>;
> + vcc4-supply = <&vcc_sys>;
> + vcc6-supply = <&vcc_sys>;
> + vcc7-supply = <&vcc_sys>;
> + vcc8-supply = <&vcc_18>;
> + vcc9-supply = <&vcc_io>;
> + vcc10-supply = <&vcc_io>;
> + vcc11-supply = <&vcc_sys>;
> + vcc12-supply = <&vcc_io>;
> + vddio-supply = <&vcc_io>;
> +
> + regulators {
> + vdd_cpu: DCDC_REG1 {
> + regulator-always-on;
> + regulator-boot-on;
> + regulator-min-microvolt = <750000>;
> + regulator-max-microvolt = <1350000>;
> + regulator-name = "vdd_arm";
> + regulator-state-mem {
> + regulator-off-in-suspend;
> + };
> + };
> +
> + vdd_gpu: DCDC_REG2 {
> + regulator-always-on;
> + regulator-boot-on;
> + regulator-min-microvolt = <850000>;
> + regulator-max-microvolt = <1250000>;
> + regulator-name = "vdd_gpu";
> + regulator-state-mem {
> + regulator-on-in-suspend;
> + regulator-suspend-microvolt = <1000000>;
> + };
> + };
> +
> + vcc_ddr: DCDC_REG3 {
> + regulator-always-on;
> + regulator-boot-on;
> + regulator-name = "vcc_ddr";
> + regulator-state-mem {
> + regulator-on-in-suspend;
> + };
> + };
> +
> + vcc_io: DCDC_REG4 {
> + regulator-always-on;
> + regulator-boot-on;
> + regulator-min-microvolt = <3300000>;
> + regulator-max-microvolt = <3300000>;
> + regulator-name = "vcc_io";
> + regulator-state-mem {
> + regulator-on-in-suspend;
> + regulator-suspend-microvolt = <3300000>;
> + };
> + };
> +
> + vcc_lan: LDO_REG1 {
> + regulator-always-on;
> + regulator-boot-on;
> + regulator-min-microvolt = <3300000>;
> + regulator-max-microvolt = <3300000>;
> + regulator-name = "vcc_lan";
> + regulator-state-mem {
> + regulator-on-in-suspend;
> + regulator-suspend-microvolt = <3300000>;
> + };
> + };
> +
> + vccio_sd: LDO_REG2 {
> + regulator-always-on;
> + regulator-boot-on;
> + regulator-min-microvolt = <1800000>;
> + regulator-max-microvolt = <3300000>;
> + regulator-name = "vccio_sd";
> + regulator-state-mem {
> + regulator-off-in-suspend;
> + };
> + };
> +
> + vdd_10: LDO_REG3 {
> + regulator-always-on;
> + regulator-boot-on;
> + regulator-min-microvolt = <1000000>;
> + regulator-max-microvolt = <1000000>;
> + regulator-name = "vdd_10";
> + regulator-state-mem {
> + regulator-on-in-suspend;
> + regulator-suspend-microvolt = <1000000>;
> + };
> + };
> +
> + vcc18_lcd: LDO_REG4 {
> + regulator-always-on;
> + regulator-boot-on;
> + regulator-min-microvolt = <1800000>;
> + regulator-max-microvolt = <1800000>;
> + regulator-name = "vcc18_lcd";
> + regulator-state-mem {
> + regulator-on-in-suspend;
> + regulator-suspend-microvolt = <1800000>;
> + };
> + };
> +
> + ldo5: LDO_REG5 {
> + regulator-always-on;
> + regulator-min-microvolt = <1800000>;
> + regulator-max-microvolt = <3300000>;
> + regulator-name = "ldo5";
> + };
> +
> + vdd10_lcd: LDO_REG6 {
> + regulator-always-on;
> + regulator-boot-on;
> + regulator-min-microvolt = <1000000>;
> + regulator-max-microvolt = <1000000>;
> + regulator-name = "vdd10_lcd";
> + regulator-state-mem {
> + regulator-on-in-suspend;
> + regulator-suspend-microvolt = <1000000>;
> + };
> + };
> +
> + vcc_18: LDO_REG7 {
> + regulator-always-on;
> + regulator-boot-on;
> + regulator-min-microvolt = <1800000>;
> + regulator-max-microvolt = <1800000>;
> + regulator-name = "vcc_18";
> + regulator-state-mem {
> + regulator-on-in-suspend;
> + regulator-suspend-microvolt = <1800000>;
> + };
> + };
> +
> + vcca_33: LDO_REG8 {
> + regulator-always-on;
> + regulator-boot-on;
> + regulator-min-microvolt = <3300000>;
> + regulator-max-microvolt = <3300000>;
> + regulator-name = "vcca_33";
> + regulator-state-mem {
> + regulator-on-in-suspend;
> + regulator-suspend-microvolt = <3300000>;
> + };
> + };
> +
> + vccio_wl: SWITCH_REG1 {
> + regulator-always-on;
> + regulator-boot-on;
> + regulator-name = "vccio_wl";
> + regulator-state-mem {
> + regulator-on-in-suspend;
> + };
> + };
> +
> + vcc_lcd: SWITCH_REG2 {
> + regulator-always-on;
> + regulator-boot-on;
> + regulator-name = "vcc_lcd";
> + regulator-state-mem {
> + regulator-on-in-suspend;
> + };
> + };
> + };
> + };
> +};
> +
> +&i2c1 {
> + status = "okay";
> + clock-frequency = <400000>;
> +
> + ak8963: ak8963@d {
> + compatible = "asahi-kasei,ak8975";
> + reg = <0x0d>;
> + interrupt-parent = <&gpio8>;
> + interrupts = <RK_PA1 IRQ_TYPE_EDGE_RISING>;
> + pinctrl-names = "default";
> + pinctrl-0 = <&comp_int>;
> + vdd-supply = <&vcc_io>;
> + vid-supply = <&vcc_io>;
> + };
> +
> + l3g4200d: l3g4200d@69 {
> + compatible = "st,l3g4200d-gyro";
> + st,drdy-int-pin = <2>;
> + reg = <0x69>;
> + vdd-supply = <&vcc_io>;
> + vddio-supply = <&vcc_io>;
> + };
> +
> + mma8452: mma8452@1d {
> + compatible = "fsl,mma8452";
> + reg = <0x1d>;
> + interrupt-parent = <&gpio8>;
> + interrupts = <RK_PA0 IRQ_TYPE_EDGE_RISING>;
> + pinctrl-names = "default";
> + pinctrl-0 = <&gsensor_int>;
> + };
> +};
> +
> +&i2c2 {
> + status = "okay";
> +};
> +
> +&i2c3 {
> + status = "okay";
> +};
> +
> +&i2c4 {
> + status = "okay";
> +};
> +
> +&i2c5 {
> + status = "okay";
> +};
> +
> +&io_domains {
> + status = "okay";
> +
> + audio-supply = <&vcca_33>;
> + bb-supply = <&vcc_io>;
> + dvp-supply = <&vcc18_dvp>;
> + flash0-supply = <&vcc_flash>;
> + flash1-supply = <&vcc_lan>;
> + gpio30-supply = <&vcc_io>;
> + gpio1830-supply = <&vcc_io>;
> + lcdc-supply = <&vcc_io>;
> + sdcard-supply = <&vccio_sd>;
> + wifi-supply = <&vccio_wl>;
> +};
> +
> +&pinctrl {
> + ak8963 {
> + comp_int: comp-int {
> + rockchip,pins = <8 RK_PA1 RK_FUNC_GPIO &pcfg_pull_up>;
> + };
> + };
> +
> + buttons {
> + pwrbtn: pwrbtn {
> + rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>;
> + };
> + };
> +
> + dvp {
> + dvp_pwr: dvp-pwr {
> + rockchip,pins = <0 RK_PC1 RK_FUNC_GPIO &pcfg_pull_none>;
> + };
> + };
> +
> + ir {
> + ir_int: ir-int {
> + rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_up>;
> + };
> + };
> +
> + mma8452 {
> + gsensor_int: gsensor-int {
> + rockchip,pins = <8 RK_PA0 RK_FUNC_GPIO &pcfg_pull_up>;
> + };
> + };
> +
> + pmic {
> + pmic_int: pmic-int {
> + rockchip,pins = <0 RK_PA4 RK_FUNC_GPIO &pcfg_pull_up>;
> + };
> + };
> +
> + sdmmc {
> + sdmmc_pwr: sdmmc-pwr {
> + rockchip,pins = <7 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>;
> + };
> + };
> +};
> +
> +&tsadc {
> + rockchip,hw-tshut-mode = <0>;
> + rockchip,hw-tshut-polarity = <0>;
> + status = "okay";
> +};
> +
> +&vopb {
> + status = "okay";
> +};
> +
> +&vopb_mmu {
> + status = "okay";
> +};
> +
> +&vopl {
> + status = "okay";
> +};
> +
> +&vopl_mmu {
> + status = "okay";
> +};
> +
> +&uart0 {
> + status = "okay";
> +};
> +
> +&uart1 {
> + status = "okay";
> +};
> +
> +&uart2 {
> + status = "okay";
> +};
> +
> +&uart3 {
> + status = "okay";
> +};
> +
> +&uart4 {
> + status = "okay";
> +};
> +
> +&usbphy {
> + status = "okay";
> };
>
> -&pwm1 {
> +&usb_otg {
> status = "okay";
> };
> diff --git a/arch/arm/dts/rk3288-popmetal.dtsi b/arch/arm/dts/rk3288-popmetal.dtsi
> deleted file mode 100644
> index bcd8fded..00000000
> --- a/arch/arm/dts/rk3288-popmetal.dtsi
> +++ /dev/null
> @@ -1,545 +0,0 @@
> -/*
> - * This file is dual-licensed: you can use it either under the terms
> - * of the GPL or the X11 license, at your option. Note that this dual
> - * licensing only applies to this file, and not this project as a
> - * whole.
> - *
> - * a) This file is free software; you can redistribute it and/or
> - * modify it under the terms of the GNU General Public License as
> - * published by the Free Software Foundation; either version 2 of the
> - * License, or (at your option) any later version.
> - *
> - * This file is distributed in the hope that it will be useful,
> - * but WITHOUT ANY WARRANTY; without even the implied warranty of
> - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> - * GNU General Public License for more details.
> - *
> - * Or, alternatively,
> - *
> - * b) Permission is hereby granted, free of charge, to any person
> - * obtaining a copy of this software and associated documentation
> - * files (the "Software"), to deal in the Software without
> - * restriction, including without limitation the rights to use,
> - * copy, modify, merge, publish, distribute, sublicense, and/or
> - * sell copies of the Software, and to permit persons to whom the
> - * Software is furnished to do so, subject to the following
> - * conditions:
> - *
> - * The above copyright notice and this permission notice shall be
> - * included in all copies or substantial portions of the Software.
> - *
> - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
> - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
> - * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
> - * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
> - * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
> - * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
> - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
> - * OTHER DEALINGS IN THE SOFTWARE.
> - */
> -
> -#include "rk3288.dtsi"
> -
> -/ {
> - memory{
> - device_type = "memory";
> - reg = <0 0x80000000>;
> - };
> -
> - ext_gmac: external-gmac-clock {
> - compatible = "fixed-clock";
> - clock-frequency = <125000000>;
> - clock-output-names = "ext_gmac";
> - #clock-cells = <0>;
> - };
> -
> - gpio-keys {
> - compatible = "gpio-keys";
> - autorepeat;
> -
> - pinctrl-names = "default";
> - pinctrl-0 = <&pwrbtn>;
> -
> - power {
> - gpios = <&gpio0 5 GPIO_ACTIVE_LOW>;
> - label = "GPIO Key Power";
> - linux,input-type = <1>;
> - wakeup-source;
> - debounce-interval = <100>;
> - };
> - };
> -
> - ir: ir-receiver {
> - compatible = "gpio-ir-receiver";
> - gpios = <&gpio0 6 GPIO_ACTIVE_LOW>;
> - pinctrl-names = "default";
> - pinctrl-0 = <&ir_int>;
> - };
> -
> - vcc_flash: flash-regulator {
> - compatible = "regulator-fixed";
> - regulator-name = "vcc_flash";
> - regulator-min-microvolt = <1800000>;
> - regulator-max-microvolt = <1800000>;
> - vin-supply = <&vcc_io>;
> - };
> -
> - vcc_sd: sdmmc-regulator {
> - compatible = "regulator-fixed";
> - gpio = <&gpio7 11 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_sys: vsys-regulator {
> - compatible = "regulator-fixed";
> - regulator-name = "vcc_sys";
> - regulator-min-microvolt = <5000000>;
> - regulator-max-microvolt = <5000000>;
> - regulator-always-on;
> - regulator-boot-on;
> - };
> -
> - /*
> - * A PT5128 creates both dovdd_1v8 and vcc28_dvp, controlled
> - * by the dvp_pwr pin.
> - */
> - vcc18_dvp: vcc18-dvp-regulator {
> - compatible = "regulator-fixed";
> - regulator-name = "vcc18-dvp";
> - regulator-min-microvolt = <1800000>;
> - regulator-max-microvolt = <1800000>;
> - vin-supply = <&vcc28_dvp>;
> - };
> -
> - vcc28_dvp: vcc28-dvp-regulator {
> - compatible = "regulator-fixed";
> - enable-active-high;
> - gpio = <&gpio0 17 GPIO_ACTIVE_HIGH>;
> - pinctrl-names = "default";
> - pinctrl-0 = <&dvp_pwr>;
> - regulator-name = "vcc28_dvp";
> - regulator-min-microvolt = <2800000>;
> - regulator-max-microvolt = <2800000>;
> - regulator-always-on;
> - vin-supply = <&vcc_io>;
> - };
> -
> - vcc5v0_host: usb-host-regulator {
> - compatible = "regulator-fixed";
> - enable-active-high;
> - gpio = <&gpio0 14 GPIO_ACTIVE_HIGH>;
> - pinctrl-names = "default";
> - pinctrl-0 = <&host_vbus_drv>;
> - regulator-name = "vcc5v0_host";
> - regulator-min-microvolt = <5000000>;
> - regulator-max-microvolt = <5000000>;
> - regulator-always-on;
> - };
> -};
> -
> -&cpu0 {
> - cpu0-supply = <&vdd_cpu>;
> -};
> -
> -&emmc {
> - bus-width = <8>;
> - cap-mmc-highspeed;
> - disable-wp;
> - non-removable;
> - num-slots = <1>;
> - pinctrl-names = "default";
> - pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_pwr &emmc_bus8>;
> - vmmc-supply = <&vcc_io>;
> - vqmmc-supply = <&vcc_flash>;
> - status = "okay";
> -};
> -
> -&sdmmc {
> - bus-width = <4>;
> - cap-mmc-highspeed;
> - cap-sd-highspeed;
> - card-detect-delay = <200>;
> - disable-wp;
> - num-slots = <1>;
> - pinctrl-names = "default";
> - pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_bus4>;
> - vmmc-supply = <&vcc_sd>;
> - vqmmc-supply = <&vccio_sd>;
> - status = "okay";
> -};
> -
> -&gmac {
> - phy-supply = <&vcc_lan>;
> - phy-mode = "rgmii";
> - clock_in_out = "input";
> - snps,reset-gpio = <&gpio4 7 0>;
> - snps,reset-active-low;
> - snps,reset-delays-us = <0 10000 1000000>;
> - assigned-clocks = <&cru SCLK_MAC>;
> - assigned-clock-parents = <&ext_gmac>;
> - pinctrl-names = "default";
> - pinctrl-0 = <&rgmii_pins>;
> - tx_delay = <0x30>;
> - rx_delay = <0x10>;
> - status = "okay";
> -};
> -
> -&hdmi {
> - ddc-i2c-bus = <&i2c5>;
> - status = "okay";
> -};
> -
> -&i2c0 {
> - status = "okay";
> - clock-frequency = <400000>;
> -
> - rk808: pmic@1b {
> - compatible = "rockchip,rk808";
> - reg = <0x1b>;
> - interrupt-parent = <&gpio0>;
> - interrupts = <4 IRQ_TYPE_LEVEL_LOW>;
> - pinctrl-names = "default";
> - pinctrl-0 = <&pmic_int &global_pwroff>;
> - rockchip,system-power-controller;
> - wakeup-source;
> - #clock-cells = <1>;
> - clock-output-names = "xin32k", "rk808-clkout2";
> -
> - vcc1-supply = <&vcc_sys>;
> - vcc2-supply = <&vcc_sys>;
> - vcc3-supply = <&vcc_sys>;
> - vcc4-supply = <&vcc_sys>;
> - vcc6-supply = <&vcc_sys>;
> - vcc7-supply = <&vcc_sys>;
> - vcc8-supply = <&vcc_18>;
> - vcc9-supply = <&vcc_io>;
> - vcc10-supply = <&vcc_io>;
> - vcc11-supply = <&vcc_sys>;
> - vcc12-supply = <&vcc_io>;
> - vddio-supply = <&vcc_io>;
> -
> - regulators {
> - vdd_cpu: DCDC_REG1 {
> - regulator-always-on;
> - regulator-boot-on;
> - regulator-min-microvolt = <750000>;
> - regulator-max-microvolt = <1350000>;
> - regulator-name = "vdd_arm";
> - regulator-state-mem {
> - regulator-off-in-suspend;
> - };
> - };
> -
> - vdd_gpu: DCDC_REG2 {
> - regulator-always-on;
> - regulator-boot-on;
> - regulator-min-microvolt = <850000>;
> - regulator-max-microvolt = <1250000>;
> - regulator-name = "vdd_gpu";
> - regulator-state-mem {
> - regulator-on-in-suspend;
> - regulator-suspend-microvolt = <1000000>;
> - };
> - };
> -
> - vcc_ddr: DCDC_REG3 {
> - regulator-always-on;
> - regulator-boot-on;
> - regulator-name = "vcc_ddr";
> - regulator-state-mem {
> - regulator-on-in-suspend;
> - };
> - };
> -
> - vcc_io: DCDC_REG4 {
> - regulator-always-on;
> - regulator-boot-on;
> - regulator-min-microvolt = <3300000>;
> - regulator-max-microvolt = <3300000>;
> - regulator-name = "vcc_io";
> - regulator-state-mem {
> - regulator-on-in-suspend;
> - regulator-suspend-microvolt = <3300000>;
> - };
> - };
> -
> - vcc_lan: LDO_REG1 {
> - regulator-always-on;
> - regulator-boot-on;
> - regulator-min-microvolt = <3300000>;
> - regulator-max-microvolt = <3300000>;
> - regulator-name = "vcc_lan";
> - regulator-state-mem {
> - regulator-on-in-suspend;
> - regulator-suspend-microvolt = <3300000>;
> - };
> - };
> -
> - vccio_sd: LDO_REG2 {
> - regulator-always-on;
> - regulator-boot-on;
> - regulator-min-microvolt = <3300000>;
> - regulator-max-microvolt = <3300000>;
> - regulator-name = "vccio_sd";
> - regulator-state-mem {
> - regulator-off-in-suspend;
> - };
> - };
> -
> - vdd_10: LDO_REG3 {
> - regulator-always-on;
> - regulator-boot-on;
> - regulator-min-microvolt = <1000000>;
> - regulator-max-microvolt = <1000000>;
> - regulator-name = "vdd_10";
> - regulator-state-mem {
> - regulator-on-in-suspend;
> - regulator-suspend-microvolt = <1000000>;
> - };
> - };
> -
> - vcc18_lcd: LDO_REG4 {
> - regulator-always-on;
> - regulator-boot-on;
> - regulator-min-microvolt = <1800000>;
> - regulator-max-microvolt = <1800000>;
> - regulator-name = "vcc18_lcd";
> - regulator-state-mem {
> - regulator-on-in-suspend;
> - regulator-suspend-microvolt = <1800000>;
> - };
> - };
> -
> - ldo5: LDO_REG5 {
> - regulator-always-on;
> - regulator-min-microvolt = <1800000>;
> - regulator-max-microvolt = <3300000>;
> - regulator-name = "ldo5";
> - };
> -
> - vdd10_lcd: LDO_REG6 {
> - regulator-always-on;
> - regulator-boot-on;
> - regulator-min-microvolt = <1000000>;
> - regulator-max-microvolt = <1000000>;
> - regulator-name = "vdd10_lcd";
> - regulator-state-mem {
> - regulator-on-in-suspend;
> - regulator-suspend-microvolt = <1000000>;
> - };
> - };
> -
> - vcc_18: LDO_REG7 {
> - regulator-always-on;
> - regulator-boot-on;
> - regulator-min-microvolt = <1800000>;
> - regulator-max-microvolt = <1800000>;
> - regulator-name = "vcc_18";
> - regulator-state-mem {
> - regulator-on-in-suspend;
> - regulator-suspend-microvolt = <1800000>;
> - };
> - };
> -
> - vcca_33: LDO_REG8 {
> - regulator-always-on;
> - regulator-boot-on;
> - regulator-min-microvolt = <3300000>;
> - regulator-max-microvolt = <3300000>;
> - regulator-name = "vcca_33";
> - regulator-state-mem {
> - regulator-on-in-suspend;
> - regulator-suspend-microvolt = <3300000>;
> - };
> - };
> -
> - vccio_wl: SWITCH_REG1 {
> - regulator-always-on;
> - regulator-boot-on;
> - regulator-name = "vccio_wl";
> - regulator-state-mem {
> - regulator-on-in-suspend;
> - };
> - };
> -
> - vcc_lcd: SWITCH_REG2 {
> - regulator-always-on;
> - regulator-boot-on;
> - regulator-name = "vcc_lcd";
> - regulator-state-mem {
> - regulator-on-in-suspend;
> - };
> - };
> - };
> - };
> -};
> -
> -&i2c1 {
> - status = "okay";
> - clock-frequency = <400000>;
> -
> - ak8963: ak8963@0d {
> - compatible = "asahi-kasei,ak8975";
> - reg = <0x0d>;
> - interrupt-parent = <&gpio8>;
> - interrupts = <1 IRQ_TYPE_EDGE_RISING>;
> - pinctrl-names = "default";
> - pinctrl-0 = <&comp_int>;
> - };
> -
> - l3g4200d: l3g4200d@68 {
> - compatible = "st,l3g4200d-gyro";
> - st,drdy-int-pin = <2>;
> - reg = <0x6b>;
> - };
> -
> - mma8452: mma8452@1d {
> - compatible = "fsl,mma8452";
> - reg = <0x1d>;
> - interrupt-parent = <&gpio8>;
> - interrupts = <0 IRQ_TYPE_EDGE_RISING>;
> - pinctrl-names = "default";
> - pinctrl-0 = <&gsensor_int>;
> - };
> -};
> -
> -&i2c2 {
> - status = "okay";
> -};
> -
> -&i2c3 {
> - status = "okay";
> -};
> -
> -&i2c4 {
> - status = "okay";
> -};
> -
> -&i2c5 {
> - status = "okay";
> -};
> -
> -&io_domains {
> - status = "okay";
> - audio-supply = <&vcca_33>;
> - bb-supply = <&vcc_io>;
> - dvp-supply = <&vcc18_dvp>;
> - flash0-supply = <&vcc_flash>;
> - flash1-supply = <&vcc_lan>;
> - gpio30-supply = <&vcc_io>;
> - gpio1830-supply = <&vcc_io>;
> - lcdc-supply = <&vcc_io>;
> - sdcard-supply = <&vccio_sd>;
> - wifi-supply = <&vccio_wl>;
> -};
> -
> -&pinctrl {
> - ak8963 {
> - comp_int: comp-int {
> - rockchip,pins = <8 1 RK_FUNC_GPIO &pcfg_pull_up>;
> - };
> - };
> -
> - buttons {
> - pwrbtn: pwrbtn {
> - rockchip,pins = <0 5 RK_FUNC_GPIO &pcfg_pull_up>;
> - };
> - };
> -
> - dvp {
> - dvp_pwr: dvp-pwr {
> - rockchip,pins = <0 17 RK_FUNC_GPIO &pcfg_pull_none>;
> - };
> - };
> -
> - ir {
> - ir_int: ir-int {
> - rockchip,pins = <0 6 RK_FUNC_GPIO &pcfg_pull_up>;
> - };
> - };
> -
> - mma8452 {
> - gsensor_int: gsensor-int {
> - rockchip,pins = <8 0 RK_FUNC_GPIO &pcfg_pull_up>;
> - };
> - };
> -
> - pmic {
> - pmic_int: pmic-int {
> - rockchip,pins = <RK_GPIO0 4 RK_FUNC_GPIO &pcfg_pull_up>;
> - };
> - };
> -
> - sdmmc {
> - sdmmc_pwr: sdmmc-pwr {
> - rockchip,pins = <7 11 RK_FUNC_GPIO &pcfg_pull_none>;
> - };
> - };
> -
> - usb_host {
> - host_vbus_drv: host-vbus-drv {
> - rockchip,pins = <0 14 RK_FUNC_GPIO &pcfg_pull_none>;
> - };
> - };
> -};
> -
> -&saradc {
> - status = "okay";
> -};
> -
> -&tsadc {
> - rockchip,hw-tshut-mode = <0>;
> - rockchip,hw-tshut-polarity = <0>;
> - status = "okay";
> -};
> -
> -&vopb {
> - status = "okay";
> -};
> -
> -&vopb_mmu {
> - status = "okay";
> -};
> -
> -&vopl {
> - status = "okay";
> -};
> -
> -&vopl_mmu {
> - status = "okay";
> -};
> -
> -&uart0 {
> - status = "okay";
> -};
> -
> -&uart1 {
> - status = "okay";
> -};
> -
> -&uart2 {
> - status = "okay";
> -};
> -
> -&uart3 {
> - status = "okay";
> -};
> -
> -&uart4 {
> - status = "okay";
> -};
> -
> -&usb_host1 {
> - vbus-supply = <&vcc5v0_host>;
> - status = "okay";
> -};
> -
> -&usbphy {
> - status = "okay";
> -};
> diff --git a/arch/arm/dts/rk3288-rock2-som.dtsi b/arch/arm/dts/rk3288-rock2-som.dtsi
> index 1ece66f3..61698d3f 100644
> --- a/arch/arm/dts/rk3288-rock2-som.dtsi
> +++ b/arch/arm/dts/rk3288-rock2-som.dtsi
> @@ -1,48 +1,10 @@
> -/*
> - * This file is dual-licensed: you can use it either under the terms
> - * of the GPL or the X11 license, at your option. Note that this dual
> - * licensing only applies to this file, and not this project as a
> - * whole.
> - *
> - * a) This file is free software; you can redistribute it and/or
> - * modify it under the terms of the GNU General Public License as
> - * published by the Free Software Foundation; either version 2 of the
> - * License, or (at your option) any later version.
> - *
> - * This file is distributed in the hope that it will be useful,
> - * but WITHOUT ANY WARRANTY; without even the implied warranty of
> - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> - * GNU General Public License for more details.
> - *
> - * Or, alternatively,
> - *
> - * b) Permission is hereby granted, free of charge, to any person
> - * obtaining a copy of this software and associated documentation
> - * files (the "Software"), to deal in the Software without
> - * restriction, including without limitation the rights to use,
> - * copy, modify, merge, publish, distribute, sublicense, and/or
> - * sell copies of the Software, and to permit persons to whom the
> - * Software is furnished to do so, subject to the following
> - * conditions:
> - *
> - * The above copyright notice and this permission notice shall be
> - * included in all copies or substantial portions of the Software.
> - *
> - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
> - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
> - * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
> - * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
> - * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
> - * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
> - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
> - * OTHER DEALINGS IN THE SOFTWARE.
> - */
> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
>
> #include <dt-bindings/pwm/pwm.h>
> #include "rk3288.dtsi"
>
> / {
> - memory {
> + memory@0 {
> reg = <0x0 0x80000000>;
> device_type = "memory";
> };
> @@ -51,7 +13,7 @@
> compatible = "mmc-pwrseq-emmc";
> pinctrl-0 = <&emmc_reset>;
> pinctrl-names = "default";
> - reset-gpios = <&gpio3 9 GPIO_ACTIVE_LOW>;
> + reset-gpios = <&gpio3 RK_PB1 GPIO_ACTIVE_LOW>;
> };
>
> ext_gmac: external-gmac-clock {
> @@ -61,6 +23,15 @@
> clock-output-names = "ext_gmac";
> };
>
> + vcc_flash: flash-regulator {
> + compatible = "regulator-fixed";
> + regulator-name = "vcc_flash";
> + regulator-min-microvolt = <1800000>;
> + regulator-max-microvolt = <1800000>;
> + startup-delay-us = <150>;
> + vin-supply = <&vcc_io>;
> + };
> +
> vcc_sys: vsys-regulator {
> compatible = "regulator-fixed";
> regulator-name = "vcc_sys";
> @@ -80,11 +51,11 @@
> cap-mmc-highspeed;
> disable-wp;
> non-removable;
> - num-slots = <1>;
> mmc-pwrseq = <&emmc_pwrseq>;
> pinctrl-names = "default";
> pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_bus8>;
> vmmc-supply = <&vcc_io>;
> + vqmmc-supply = <&vcc_flash>;
> status = "okay";
> };
>
> @@ -96,13 +67,18 @@
> phy-supply = <&vccio_pmu>;
> pinctrl-names = "default";
> pinctrl-0 = <&rgmii_pins &phy_rst>;
> - snps,reset-gpio = <&gpio4 8 GPIO_ACTIVE_LOW>;
> + snps,reset-gpio = <&gpio4 RK_PB0 GPIO_ACTIVE_LOW>;
> snps,reset-active-low;
> snps,reset-delays-us = <0 10000 30000>;
> rx_delay = <0x10>;
> tx_delay = <0x30>;
> };
>
> +&gpu {
> + mali-supply = <&vdd_gpu>;
> + status = "okay";
> +};
> +
> &i2c0 {
> status = "okay";
>
> @@ -126,7 +102,7 @@
> regulator-always-on;
> };
>
> - vcc_io: REG2 {
> + vcc_io: vccio_codec: REG2 {
> regulator-name = "VCC_IO";
> regulator-min-microvolt = <3300000>;
> regulator-max-microvolt = <3300000>;
> @@ -233,24 +209,43 @@
> };
> };
>
> +&io_domains {
> + status = "okay";
> +
> + audio-supply = <&vcc_io>;
> + bb-supply = <&vcc_io>;
> + dvp-supply = <&vcc_18>;
> + flash0-supply = <&vcc_flash>;
> + flash1-supply = <&vccio_pmu>;
> + gpio30-supply = <&vccio_pmu>;
> + gpio1830-supply = <&vcc_io>;
> + lcdc-supply = <&vcc_io>;
> + sdcard-supply = <&vccio_sd>;
> + wifi-supply = <&vcc_18>;
> +};
> +
> &pinctrl {
> pcfg_output_high: pcfg-output-high {
> output-high;
> };
>
> emmc {
> - emmc_reset: emmc-reset {
> - rockchip,pins = <3 9 RK_FUNC_GPIO &pcfg_pull_none>;
> - };
> + emmc_reset: emmc-reset {
> + rockchip,pins = <3 RK_PB1 RK_FUNC_GPIO &pcfg_pull_none>;
> + };
> };
>
> gmac {
> phy_rst: phy-rst {
> - rockchip,pins = <4 8 RK_FUNC_GPIO &pcfg_output_high>;
> + rockchip,pins = <4 RK_PB0 RK_FUNC_GPIO &pcfg_output_high>;
> };
> };
> };
>
> +&saradc {
> + vref-supply = <&vcc_18>;
> +};
> +
> &tsadc {
> rockchip,hw-tshut-mode = <0>; /* tshut mode 0:CRU 1:GPIO */
> rockchip,hw-tshut-polarity = <0>; /* tshut polarity 0:LOW 1:HIGH */
> diff --git a/arch/arm/dts/rk3288-rock2-square.dts b/arch/arm/dts/rk3288-rock2-square.dts
> index 41676696..c4d1d142 100644
> --- a/arch/arm/dts/rk3288-rock2-square.dts
> +++ b/arch/arm/dts/rk3288-rock2-square.dts
> @@ -1,44 +1,7 @@
> -/*
> - * This file is dual-licensed: you can use it either under the terms
> - * of the GPL or the X11 license, at your option. Note that this dual
> - * licensing only applies to this file, and not this project as a
> - * whole.
> - *
> - * a) This file is free software; you can redistribute it and/or
> - * modify it under the terms of the GNU General Public License as
> - * published by the Free Software Foundation; either version 2 of the
> - * License, or (at your option) any later version.
> - *
> - * This file is distributed in the hope that it will be useful,
> - * but WITHOUT ANY WARRANTY; without even the implied warranty of
> - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> - * GNU General Public License for more details.
> - *
> - * Or, alternatively,
> - *
> - * b) Permission is hereby granted, free of charge, to any person
> - * obtaining a copy of this software and associated documentation
> - * files (the "Software"), to deal in the Software without
> - * restriction, including without limitation the rights to use,
> - * copy, modify, merge, publish, distribute, sublicense, and/or
> - * sell copies of the Software, and to permit persons to whom the
> - * Software is furnished to do so, subject to the following
> - * conditions:
> - *
> - * The above copyright notice and this permission notice shall be
> - * included in all copies or substantial portions of the Software.
> - *
> - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
> - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
> - * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
> - * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
> - * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
> - * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
> - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
> - * OTHER DEALINGS IN THE SOFTWARE.
> - */
> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
>
> /dts-v1/;
> +#include <dt-bindings/input/input.h>
> #include "rk3288-rock2-som.dtsi"
>
> / {
> @@ -49,9 +12,51 @@
> stdout-path = "serial2:115200n8";
> };
>
> + adc-keys {
> + compatible = "adc-keys";
> + io-channels = <&saradc 1>;
> + io-channel-names = "buttons";
> + keyup-threshold-microvolt = <1800000>;
> +
> + button-recovery {
> + label = "Recovery";
> + linux,code = <KEY_VENDOR>;
> + press-threshold-microvolt = <0>;
> + };
> + };
> +
> + gpio-keys {
> + compatible = "gpio-keys";
> +
> + power {
> + gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_LOW>;
> + label = "GPIO Power";
> + linux,code = <KEY_POWER>;
> + pinctrl-names = "default";
> + pinctrl-0 = <&pwr_key>;
> + wakeup-source;
> + };
> + };
> +
> + gpio-leds {
> + compatible = "gpio-leds";
> +
> + heartbeat_led: led-0 {
> + gpios = <&gpio7 RK_PB7 GPIO_ACTIVE_LOW>;
> + label = "rock2:green:state1";
> + linux,default-trigger = "heartbeat";
> + };
> +
> + mmc_led: led-1 {
> + gpios = <&gpio0 RK_PB3 GPIO_ACTIVE_LOW>;
> + label = "rock2:blue:state2";
> + linux,default-trigger = "mmc0";
> + };
> + };
> +
> ir: ir-receiver {
> compatible = "gpio-ir-receiver";
> - gpios = <&gpio8 1 GPIO_ACTIVE_LOW>;
> + gpios = <&gpio8 RK_PA1 GPIO_ACTIVE_LOW>;
> pinctrl-names = "default";
> pinctrl-0 = <&ir_int>;
> };
> @@ -65,27 +70,56 @@
> };
> };
>
> + sata_pwr: sata-prw-regulator {
> + compatible = "regulator-fixed";
> + enable-active-high;
> + gpio = <&gpio0 13 GPIO_ACTIVE_HIGH>;
> + pinctrl-names = "default";
> + pinctrl-0 = <&sata_pwr_en>;
> + /* Always turn on the 5V sata power connector */
> + regulator-always-on;
> + regulator-name = "sata_pwr";
> + };
> +
> spdif_out: spdif-out {
> compatible = "linux,spdif-dit";
> #sound-dai-cells = <0>;
> };
>
> + sound-i2s {
> + compatible = "rockchip,rk3288-hdmi-analog";
> + pinctrl-names = "default";
> + pinctrl-0 = <&phone_ctl>, <&hp_det>;
> + rockchip,audio-codec = <&es8388>;
> + rockchip,hp-det-gpios = <&gpio7 7 GPIO_ACTIVE_HIGH>;
> + rockchip,hp-en-gpios = <&gpio8 0 GPIO_ACTIVE_HIGH>;
> + rockchip,i2s-controller = <&i2s>;
> + rockchip,model = "I2S";
> + rockchip,routing = "Analog", "LOUT2",
> + "Analog", "ROUT2";
> + };
> +
> + sdio_pwrseq: sdio-pwrseq {
> + compatible = "mmc-pwrseq-simple";
> + clocks = <&hym8563>;
> + clock-names = "ext_clock";
> + pinctrl-names = "default";
> + pinctrl-0 = <&wifi_enable>;
> + reset-gpios = <&gpio4 RK_PD4 GPIO_ACTIVE_LOW>;
> + };
> +
> vcc_usb_host: vcc-host-regulator {
> compatible = "regulator-fixed";
> enable-active-high;
> - gpio = <&gpio0 14 GPIO_ACTIVE_HIGH>;
> + gpio = <&gpio0 RK_PB6 GPIO_ACTIVE_HIGH>;
> pinctrl-names = "default";
> pinctrl-0 = <&host_vbus_drv>;
> - /* Always on as the rockchip usb phy doesn't have a vbus-supply
> - * property
> - */
> - regulator-always-on;
> regulator-name = "vcc_host";
> };
>
> vcc_sd: sdmmc-regulator {
> compatible = "regulator-fixed";
> - gpio = <&gpio7 11 GPIO_ACTIVE_LOW>;
> + gpio = <&gpio7 RK_PB3 GPIO_ACTIVE_LOW>;
> pinctrl-names = "default";
> pinctrl-0 = <&sdmmc_pwr>;
> regulator-name = "vcc_sd";
> @@ -95,13 +129,25 @@
> };
> };
>
> +&sdio0 {
> + bus-width = <4>;
> + cap-sd-highspeed;
> + cap-sdio-irq;
> + mmc-pwrseq = <&sdio_pwrseq>;
> + non-removable;
> + pinctrl-names = "default";
> + pinctrl-0 = <&sdio0_bus4 &sdio0_cmd &sdio0_clk &sdio0_int>;
> + vmmc-supply = <&vcc_io>;
> + vqmmc-supply = <&vcc_18>;
> + status = "okay";
> +};
> +
> &sdmmc {
> bus-width = <4>;
> cap-mmc-highspeed;
> cap-sd-highspeed;
> card-detect-delay = <200>;
> disable-wp; /* wp not hooked up */
> - num-slots = <1>;
> pinctrl-names = "default";
> pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_bus4>;
> vmmc-supply = <&vcc_sd>;
> @@ -119,63 +165,124 @@
> };
>
> &i2c0 {
> - hym8563@51 {
> + hym8563: hym8563@51 {
> compatible = "haoyu,hym8563";
> reg = <0x51>;
> #clock-cells = <0>;
> clock-frequency = <32768>;
> clock-output-names = "xin32k";
> interrupt-parent = <&gpio0>;
> - interrupts = <4 IRQ_TYPE_EDGE_FALLING>;
> + interrupts = <RK_PA4 IRQ_TYPE_EDGE_FALLING>;
> pinctrl-names = "default";
> pinctrl-0 = <&pmic_int>;
>
> };
> };
>
> +&i2c2 {
> + status = "okay";
> +
> + es8388: es8388@10 {
> + compatible = "everest,es8388", "everest,es8328";
> + reg = <0x10>;
> + AVDD-supply = <&vccio_codec>;
> + DVDD-supply = <&vccio_codec>;
> + HPVDD-supply = <&vccio_codec>;
> + PVDD-supply = <&vccio_codec>;
> + clocks = <&cru SCLK_I2S0_OUT>;
> + };
> +};
> +
> &i2c5 {
> status = "okay";
> };
>
> +&i2s {
> + status = "okay";
> +};
> +
> &pinctrl {
> ir {
> ir_int: ir-int {
> - rockchip,pins = <8 1 RK_FUNC_GPIO &pcfg_pull_up>;
> + rockchip,pins = <8 RK_PA1 RK_FUNC_GPIO &pcfg_pull_up>;
> + };
> + };
> +
> + keys {
> + pwr_key: pwr-key {
> + rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>;
> };
> };
>
> pmic {
> pmic_int: pmic-int {
> - rockchip,pins = <0 4 RK_FUNC_GPIO &pcfg_pull_up>;
> + rockchip,pins = <0 RK_PA4 RK_FUNC_GPIO &pcfg_pull_up>;
> + };
> + };
> +
> + headphone {
> + hp_det: hp-det {
> + rockchip,pins = <7 RK_PA7 RK_FUNC_GPIO &pcfg_pull_none>;
> + };
> +
> + phone_ctl: phone-ctl {
> + rockchip,pins = <8 RK_PA0 RK_FUNC_GPIO &pcfg_pull_up>;
> };
> };
>
> usb {
> host_vbus_drv: host-vbus-drv {
> - rockchip,pins = <0 14 RK_FUNC_GPIO &pcfg_pull_none>;
> + rockchip,pins = <0 RK_PB6 RK_FUNC_GPIO &pcfg_pull_none>;
> + };
> + };
> +
> + sata {
> + sata_pwr_en: sata-pwr-en {
> + rockchip,pins = <0 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>;
> };
> };
>
> sdmmc {
> sdmmc_pwr: sdmmc-pwr {
> - rockchip,pins = <7 11 RK_FUNC_GPIO &pcfg_pull_none>;
> + rockchip,pins = <7 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>;
> + };
> + };
> +
> + sdio {
> + wifi_enable: wifi-enable {
> + rockchip,pins = <4 RK_PD4 RK_FUNC_GPIO &pcfg_pull_none>;
> };
> };
> };
>
> +&saradc {
> + status = "okay";
> +};
> +
> &spdif {
> status = "okay";
> };
>
> &uart2 {
> status = "okay";
> - reg-shift = <2>;
> };
>
> &usbphy {
> status = "okay";
> };
>
> +&usbphy1 {
> + vbus-supply = <&vcc_usb_host>;
> +};
> +
> &usb_host0_ehci {
> status = "okay";
> };
> +
> +&usb_host1 {
> + status = "okay";
> +};
> +
> +&usb_otg {
> + status = "okay";
> +};
> diff --git a/arch/arm/dts/rk3288-tinker-s.dts b/arch/arm/dts/rk3288-tinker-s.dts
> index cc7ac5f8..970e1385 100644
> --- a/arch/arm/dts/rk3288-tinker-s.dts
> +++ b/arch/arm/dts/rk3288-tinker-s.dts
> @@ -10,10 +10,6 @@
> / {
> model = "Rockchip RK3288 Asus Tinker Board S";
> compatible = "asus,rk3288-tinker-s", "rockchip,rk3288";
> -
> - chosen {
> - stdout-path = &uart2;
> - };
> };
>
> &emmc {
> @@ -27,3 +23,8 @@
> mmc-ddr-1_8v;
> status = "okay";
> };
> +
> +&hdmi {
> + pinctrl-names = "default";
> + pinctrl-0 = <&hdmi_cec_c0>;
> +};
> diff --git a/arch/arm/dts/rk3288-tinker.dts b/arch/arm/dts/rk3288-tinker.dts
> index 8b1848c3..1e43527a 100644
> --- a/arch/arm/dts/rk3288-tinker.dts
> +++ b/arch/arm/dts/rk3288-tinker.dts
> @@ -1,33 +1,13 @@
> -// SPDX-License-Identifier: GPL-2.0+ OR X11
> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> /*
> - * (C) Copyright 2016 Rockchip Electronics Co., Ltd
> + * Copyright (c) 2017 Fuzhou Rockchip Electronics Co., Ltd.
> */
>
> /dts-v1/;
> +
> #include "rk3288-tinker.dtsi"
>
> / {
> - model = "Tinker-RK3288";
> - compatible = "rockchip,rk3288-tinker", "rockchip,rk3288";
> -
> - chosen {
> - stdout-path = &uart2;
> - };
> -};
> -
> -&pinctrl {
> - usb {
> - host_vbus_drv: host-vbus-drv {
> - rockchip,pins = <0 14 RK_FUNC_GPIO &pcfg_pull_none>;
> - };
> - };
> -};
> -
> -&pwm1 {
> - status = "okay";
> -};
> -
> -&usb_host1 {
> - vbus-supply = <&vcc5v0_host>;
> - status = "okay";
> + model = "Rockchip RK3288 Asus Tinker Board";
> + compatible = "asus,rk3288-tinker", "rockchip,rk3288";
> };
> diff --git a/arch/arm/dts/rk3288-tinker.dtsi b/arch/arm/dts/rk3288-tinker.dtsi
> index 2f816af4..4fde8a75 100644
> --- a/arch/arm/dts/rk3288-tinker.dtsi
> +++ b/arch/arm/dts/rk3288-tinker.dtsi
> @@ -1,46 +1,17 @@
> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> /*
> - * This file is dual-licensed: you can use it either under the terms
> - * of the GPL or the X11 license, at your option. Note that this dual
> - * licensing only applies to this file, and not this project as a
> - * whole.
> - *
> - * a) This file is free software; you can redistribute it and/or
> - * modify it under the terms of the GNU General Public License as
> - * published by the Free Software Foundation; either version 2 of the
> - * License, or (at your option) any later version.
> - *
> - * This file is distributed in the hope that it will be useful,
> - * but WITHOUT ANY WARRANTY; without even the implied warranty of
> - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> - * GNU General Public License for more details.
> - *
> - * Or, alternatively,
> - *
> - * b) Permission is hereby granted, free of charge, to any person
> - * obtaining a copy of this software and associated documentation
> - * files (the "Software"), to deal in the Software without
> - * restriction, including without limitation the rights to use,
> - * copy, modify, merge, publish, distribute, sublicense, and/or
> - * sell copies of the Software, and to permit persons to whom the
> - * Software is furnished to do so, subject to the following
> - * conditions:
> - *
> - * The above copyright notice and this permission notice shall be
> - * included in all copies or substantial portions of the Software.
> - *
> - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
> - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
> - * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
> - * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
> - * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
> - * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
> - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
> - * OTHER DEALINGS IN THE SOFTWARE.
> + * Copyright (c) 2017 Fuzhou Rockchip Electronics Co., Ltd.
> */
>
> #include "rk3288.dtsi"
> +#include <dt-bindings/input/input.h>
> +#include <dt-bindings/clock/rockchip,rk808.h>
>
> / {
> + chosen {
> + stdout-path = "serial2:115200n8";
> + };
> +
> memory {
> device_type = "memory";
> reg = <0x0 0x80000000>;
> @@ -48,23 +19,26 @@
>
> ext_gmac: external-gmac-clock {
> compatible = "fixed-clock";
> + #clock-cells = <0>;
> clock-frequency = <125000000>;
> clock-output-names = "ext_gmac";
> - #clock-cells = <0>;
> };
>
> gpio-keys {
> compatible = "gpio-keys";
> + #address-cells = <1>;
> + #size-cells = <0>;
> autorepeat;
>
> pinctrl-names = "default";
> pinctrl-0 = <&pwrbtn>;
>
> button@0 {
> - gpios = <&gpio0 5 GPIO_ACTIVE_LOW>;
> + gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_LOW>;
> + linux,code = <KEY_POWER>;
> label = "GPIO Key Power";
> linux,input-type = <1>;
> - gpio-key,wakeup = <1>;
> + wakeup-source;
> debounce-interval = <100>;
> };
> };
> @@ -72,14 +46,44 @@
> gpio-leds {
> compatible = "gpio-leds";
>
> - pwr-led {
> - gpios = <&gpio2 2 GPIO_ACTIVE_HIGH>;
> + act_led: led-0 {
> + gpios = <&gpio1 RK_PD0 GPIO_ACTIVE_HIGH>;
> + linux,default-trigger = "mmc0";
> + };
> +
> + heartbeat_led: led-1 {
> + gpios = <&gpio1 RK_PD1 GPIO_ACTIVE_HIGH>;
> + linux,default-trigger = "heartbeat";
> + };
> +
> + pwr_led: led-2 {
> + gpios = <&gpio0 RK_PA3 GPIO_ACTIVE_HIGH>;
> linux,default-trigger = "default-on";
> };
> + };
>
> - act-led {
> - gpios=<&gpio2 3 GPIO_ACTIVE_LOW>;
> - linux,default-trigger="mmc0";
> + sdio_pwrseq: sdio-pwrseq {
> + compatible = "mmc-pwrseq-simple";
> + clocks = <&rk808 RK808_CLKOUT1>;
> + clock-names = "ext_clock";
> + pinctrl-names = "default";
> + pinctrl-0 = <&wifi_enable>;
> + reset-gpios = <&gpio4 RK_PD3 GPIO_ACTIVE_LOW>,
> + <&gpio4 RK_PD4 GPIO_ACTIVE_LOW>;
> + };
> +
> + sound {
> + compatible = "simple-audio-card";
> + simple-audio-card,format = "i2s";
> + simple-audio-card,name = "rockchip,tinker-codec";
> + simple-audio-card,mclk-fs = <512>;
> +
> + simple-audio-card,codec {
> + sound-dai = <&hdmi>;
> + };
> +
> + simple-audio-card,cpu {
> + sound-dai = <&i2s>;
> };
> };
>
> @@ -92,11 +96,6 @@
> regulator-boot-on;
> };
>
> - /*
> - * NOTE: vcc_sd isn't hooked up on v1.0 boards where power comes from
> - * vcc_io directly. Those boards won't be able to power cycle SD cards
> - * but it shouldn't hurt to toggle this pin there anyway.
> - */
> vcc_sd: sdmmc-regulator {
> compatible = "regulator-fixed";
> gpio = <&gpio7 11 GPIO_ACTIVE_LOW>;
> @@ -108,80 +107,66 @@
> startup-delay-us = <100000>;
> vin-supply = <&vcc_io>;
> };
> -
> - vcc5v0_host: usb-host-regulator {
> - compatible = "regulator-fixed";
> - enable-active-high;
> - gpio = <&gpio0 14 GPIO_ACTIVE_HIGH>;
> - pinctrl-names = "default";
> - pinctrl-0 = <&host_vbus_drv>;
> - regulator-name = "vcc5v0_host";
> - regulator-min-microvolt = <5000000>;
> - regulator-max-microvolt = <5000000>;
> - regulator-always-on;
> - };
> };
>
> &cpu0 {
> cpu0-supply = <&vdd_cpu>;
> };
>
> -&sdmmc {
> - bus-width = <4>;
> - cap-mmc-highspeed;
> - cap-sd-highspeed;
> - card-detect-delay = <200>;
> - disable-wp; /* wp not hooked up */
> - num-slots = <1>;
> - pinctrl-names = "default";
> - pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_bus4>;
> - status = "okay";
> - supports-sd;
> - vmmc-supply = <&vcc_sd>;
> - vqmmc-supply = <&vccio_sd>;
> -};
> -
> -&gpu {
> - mali-supply = <&vdd_gpu>;
> - status = "okay";
> +&cpu_opp_table {
> + opp-1704000000 {
> + opp-hz = /bits/ 64 <1704000000>;
> + opp-microvolt = <1350000>;
> + };
> + opp-1800000000 {
> + opp-hz = /bits/ 64 <1800000000>;
> + opp-microvolt = <1400000>;
> + };
> };
>
> &gmac {
> - phy-supply = <&vcc33_lan>;
> - phy-mode = "rgmii";
> - clock_in_out = "input";
> - snps,reset-gpio = <&gpio4 7 0>;
> - snps,reset-active-low;
> - snps,reset-delays-us = <0 10000 1000000>;
> assigned-clocks = <&cru SCLK_MAC>;
> assigned-clock-parents = <&ext_gmac>;
> + clock_in_out = "input";
> + phy-mode = "rgmii";
> + phy-supply = <&vcc33_lan>;
> pinctrl-names = "default";
> pinctrl-0 = <&rgmii_pins>;
> + snps,reset-gpio = <&gpio4 7 0>;
> + snps,reset-active-low;
> + snps,reset-delays-us = <0 10000 1000000>;
> tx_delay = <0x30>;
> rx_delay = <0x10>;
> status = "okay";
> };
>
> +&gpu {
> + mali-supply = <&vdd_gpu>;
> + status = "okay";
> +};
> +
> &hdmi {
> ddc-i2c-bus = <&i2c5>;
> status = "okay";
> };
>
> &i2c0 {
> - status = "okay";
> clock-frequency = <400000>;
> + status = "okay";
>
> rk808: pmic@1b {
> compatible = "rockchip,rk808";
> reg = <0x1b>;
> interrupt-parent = <&gpio0>;
> interrupts = <4 IRQ_TYPE_LEVEL_LOW>;
> + #clock-cells = <1>;
> + clock-output-names = "xin32k", "rk808-clkout2";
> + dvs-gpios = <&gpio0 11 GPIO_ACTIVE_HIGH>,
> + <&gpio0 12 GPIO_ACTIVE_HIGH>;
> pinctrl-names = "default";
> - pinctrl-0 = <&pmic_int &global_pwroff>;
> + pinctrl-0 = <&pmic_int &global_pwroff &dvs_1 &dvs_2>;
> rockchip,system-power-controller;
> wakeup-source;
> - #clock-cells = <1>;
> - clock-output-names = "xin32k", "rk808-clkout2";
>
> vcc1-supply = <&vcc_sys>;
> vcc2-supply = <&vcc_sys>;
> @@ -189,20 +174,21 @@
> vcc4-supply = <&vcc_sys>;
> vcc6-supply = <&vcc_sys>;
> vcc7-supply = <&vcc_sys>;
> - vcc8-supply = <&vcc_18>;
> + vcc8-supply = <&vcc_io>;
> vcc9-supply = <&vcc_io>;
> vcc10-supply = <&vcc_io>;
> vcc11-supply = <&vcc_sys>;
> vcc12-supply = <&vcc_io>;
> - vddio-supply = <&vcc18_ldo1>;
> + vddio-supply = <&vcc_io>;
>
> regulators {
> vdd_cpu: DCDC_REG1 {
> regulator-always-on;
> regulator-boot-on;
> regulator-min-microvolt = <750000>;
> - regulator-max-microvolt = <1350000>;
> + regulator-max-microvolt = <1400000>;
> regulator-name = "vdd_arm";
> + regulator-ramp-delay = <6000>;
> regulator-state-mem {
> regulator-off-in-suspend;
> };
> @@ -214,6 +200,7 @@
> regulator-min-microvolt = <850000>;
> regulator-max-microvolt = <1250000>;
> regulator-name = "vdd_gpu";
> + regulator-ramp-delay = <6000>;
> regulator-state-mem {
> regulator-on-in-suspend;
> regulator-suspend-microvolt = <1000000>;
> @@ -359,47 +346,149 @@
>
> &i2c2 {
> status = "okay";
> - headset: nau8825@1a {
> - compatible = "nuvoton,nau8825";
> - #sound-dai-cells = <0>;
> - reg = <0x1a>;
> - interrupt-parent = <&gpio6>;
> - interrupts = <5 IRQ_TYPE_LEVEL_LOW>;
> - nuvoton,jkdet-enable = <1>;
> - nuvoton,jkdet-pull-enable = <1>;
> - nuvoton,jkdet-pull-up = <0>;
> - nuvoton,jkdet-polarity = <1>;
> - nuvoton,vref-impedance = <2>;
> - nuvoton,micbias-voltage = <6>;
> - nuvoton,sar-threshold-num = <4>;
> - nuvoton,sar-threshold = <0xa 0x14 0x26 0x73>;
> - nuvoton,sar-hysteresis = <0>;
> - nuvoton,sar-voltage = <6>;
> - nuvoton,sar-compare-time = <0>;
> - nuvoton,sar-sampling-time = <0>;
> - nuvoton,short-key-debounce = <3>;
> - nuvoton,jack-insert-debounce = <7>;
> - nuvoton,jack-eject-debounce = <7>;
> - clock-names = "mclk";
> - clocks = <&cru SCLK_I2S0_OUT>;
> - };
> };
>
> &i2c5 {
> status = "okay";
> };
>
> -&wdt {
> +&i2s {
> + #sound-dai-cells = <0>;
> status = "okay";
> };
>
> +&io_domains {
> + status = "okay";
> +
> + sdcard-supply = <&vccio_sd>;
> + wifi-supply = <&vcc_18>;
> +};
> +
> +&pinctrl {
> + pcfg_pull_none_drv_8ma: pcfg-pull-none-drv-8ma {
> + drive-strength = <8>;
> + };
> +
> + pcfg_pull_up_drv_8ma: pcfg-pull-up-drv-8ma {
> + bias-pull-up;
> + drive-strength = <8>;
> + };
> +
> + backlight {
> + bl_en: bl-en {
> + rockchip,pins = <7 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>;
> + };
> + };
> +
> + buttons {
> + pwrbtn: pwrbtn {
> + rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>;
> + };
> + };
> +
> + eth_phy {
> + eth_phy_pwr: eth-phy-pwr {
> + rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>;
> + };
> + };
> +
> + pmic {
> + pmic_int: pmic-int {
> + rockchip,pins = <0 RK_PA4 RK_FUNC_GPIO &pcfg_pull_up>;
> + };
> +
> + dvs_1: dvs-1 {
> + rockchip,pins = <0 RK_PB3 RK_FUNC_GPIO &pcfg_pull_down>;
> + };
> +
> + dvs_2: dvs-2 {
> + rockchip,pins = <0 RK_PB4 RK_FUNC_GPIO &pcfg_pull_down>;
> + };
> + };
> +
> + sdmmc {
> + sdmmc_bus4: sdmmc-bus4 {
> + rockchip,pins = <6 RK_PC0 1 &pcfg_pull_up_drv_8ma>,
> + <6 RK_PC1 1 &pcfg_pull_up_drv_8ma>,
> + <6 RK_PC2 1 &pcfg_pull_up_drv_8ma>,
> + <6 RK_PC3 1 &pcfg_pull_up_drv_8ma>;
> + };
> +
> + sdmmc_clk: sdmmc-clk {
> + rockchip,pins = <6 RK_PC4 1 &pcfg_pull_none_drv_8ma>;
> + };
> +
> + sdmmc_cmd: sdmmc-cmd {
> + rockchip,pins = <6 RK_PC5 1 &pcfg_pull_up_drv_8ma>;
> + };
> +
> + sdmmc_pwr: sdmmc-pwr {
> + rockchip,pins = <7 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>;
> + };
> + };
> +
> + usb {
> + host_vbus_drv: host-vbus-drv {
> + rockchip,pins = <0 RK_PB6 RK_FUNC_GPIO &pcfg_pull_none>;
> + };
> +
> + pwr_3g: pwr-3g {
> + rockchip,pins = <7 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>;
> + };
> + };
> +
> + sdio {
> + wifi_enable: wifi-enable {
> + rockchip,pins = <4 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>,
> + <4 RK_PD4 RK_FUNC_GPIO &pcfg_pull_none>;
> + };
> + };
> +};
> +
> &pwm0 {
> status = "okay";
> };
>
> &saradc {
> vref-supply = <&vcc18_ldo1>;
> - status ="okay";
> + status = "okay";
> +};
> +
> +&sdmmc {
> + bus-width = <4>;
> + cap-mmc-highspeed;
> + cap-sd-highspeed;
> + broken-cd;
> + disable-wp; /* wp not hooked up */
> + pinctrl-names = "default";
> + pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_bus4>;
> + status = "okay";
> + vmmc-supply = <&vcc33_sd>;
> + vqmmc-supply = <&vccio_sd>;
> +};
> +
> +&sdio0 {
> + bus-width = <4>;
> + cap-sd-highspeed;
> + cap-sdio-irq;
> + keep-power-in-suspend;
> + max-frequency = <50000000>;
> + mmc-pwrseq = <&sdio_pwrseq>;
> + non-removable;
> + pinctrl-names = "default";
> + pinctrl-0 = <&sdio0_bus4>, <&sdio0_cmd>, <&sdio0_clk>, <&sdio0_int>;
> + sd-uhs-sdr12;
> + sd-uhs-sdr25;
> + sd-uhs-sdr50;
> + vmmc-supply = <&vcc_io>;
> + vqmmc-supply = <&vcc_18>;
> + status = "okay";
> +};
> +
> +&tsadc {
> + rockchip,hw-tshut-mode = <1>; /* tshut mode 0:CRU 1:GPIO */
> + rockchip,hw-tshut-polarity = <1>; /* tshut polarity 0:LOW 1:HIGH */
> + status = "okay";
> };
>
> &uart0 {
> @@ -422,12 +511,6 @@
> status = "okay";
> };
>
> -&tsadc {
> - rockchip,hw-tshut-mode = <1>; /* tshut mode 0:CRU 1:GPIO */
> - rockchip,hw-tshut-polarity = <1>; /* tshut polarity 0:LOW 1:HIGH */
> - status = "okay";
> -};
> -
> &usbphy {
> status = "okay";
> };
> @@ -441,7 +524,7 @@
> };
>
> &usb_otg {
> - status= "okay";
> + status = "okay";
> };
>
> &vopb {
> @@ -460,72 +543,6 @@
> status = "okay";
> };
>
> -&pinctrl {
> - pcfg_pull_none_drv_8ma: pcfg-pull-none-drv-8ma {
> - drive-strength = <8>;
> - };
> -
> - pcfg_pull_up_drv_8ma: pcfg-pull-up-drv-8ma {
> - bias-pull-up;
> - drive-strength = <8>;
> - };
> -
> - backlight {
> - bl_en: bl-en {
> - rockchip,pins = <7 2 RK_FUNC_GPIO &pcfg_pull_none>;
> - };
> - };
> -
> - buttons {
> - pwrbtn: pwrbtn {
> - rockchip,pins = <0 5 RK_FUNC_GPIO &pcfg_pull_up>;
> - };
> - };
> -
> - eth_phy {
> - eth_phy_pwr: eth-phy-pwr {
> - rockchip,pins = <0 6 RK_FUNC_GPIO &pcfg_pull_none>;
> - };
> - };
> -
> - pmic {
> - pmic_int: pmic-int {
> - rockchip,pins = <RK_GPIO0 4 RK_FUNC_GPIO &pcfg_pull_up>;
> - };
> - };
> -
> - sdmmc {
> - /*
> - * Default drive strength isn't enough to achieve even
> - * high-speed mode on EVB board so bump up to 8ma.
> - */
> - sdmmc_bus4: sdmmc-bus4 {
> - rockchip,pins = <6 16 RK_FUNC_1 &pcfg_pull_up_drv_8ma>,
> - <6 17 RK_FUNC_1 &pcfg_pull_up_drv_8ma>,
> - <6 18 RK_FUNC_1 &pcfg_pull_up_drv_8ma>,
> - <6 19 RK_FUNC_1 &pcfg_pull_up_drv_8ma>;
> - };
> -
> - sdmmc_clk: sdmmc-clk {
> - rockchip,pins = <6 20 RK_FUNC_1 &pcfg_pull_none_drv_8ma>;
> - };
> -
> - sdmmc_cmd: sdmmc-cmd {
> - rockchip,pins = <6 21 RK_FUNC_1 &pcfg_pull_up_drv_8ma>;
> - };
> -
> - sdmmc_pwr: sdmmc-pwr {
> - rockchip,pins = <7 11 RK_FUNC_GPIO &pcfg_pull_none>;
> - };
> - };
> -
> - usb {
> - host_vbus_drv: host-vbus-drv {
> - rockchip,pins = <0 14 RK_FUNC_GPIO &pcfg_pull_none>;
> - };
> -
> - pwr_3g: pwr-3g {
> - rockchip,pins = <7 8 RK_FUNC_GPIO &pcfg_pull_none>;
> - };
> - };
> +&wdt {
> + status = "okay";
> };