| From bfc9bab86121ad657a4564373e5d0ac8b40fb88d Mon Sep 17 00:00:00 2001 |
| From: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org> |
| Date: Mon, 10 Sep 2018 20:43:53 +0530 |
| Subject: [PATCH 1/5] arm64: dts: rockchip: Split out common nodes for Rock960 |
| based boards |
| |
| Since the same family members of Rock960 boards (Rock960 and Ficus) |
| share the same configuration, split out the common nodes into a common |
| dtsi file for reducing code duplication. The board specific nodes for |
| Ficus boards are then placed in corresponding board DTS file. |
| |
| Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org> |
| Signed-off-by: Jeremy Cline <jcline@redhat.com> |
| |
| arch/arm64/boot/dts/rockchip/rk3399-ficus.dts | 417 +---------------- |
| .../boot/dts/rockchip/rk3399-rock960.dtsi | 439 ++++++++++++++++++ |
| 2 files changed, 440 insertions(+), 416 deletions(-) |
| create mode 100644 arch/arm64/boot/dts/rockchip/rk3399-rock960.dtsi |
| |
| diff --git a/arch/arm64/boot/dts/rockchip/rk3399-ficus.dts b/arch/arm64/boot/dts/rockchip/rk3399-ficus.dts |
| index 85cf0b6bdda9..7f6ec37d5a69 100644 |
| |
| |
| @@ -7,8 +7,7 @@ |
| */ |
| |
| /dts-v1/; |
| -#include "rk3399.dtsi" |
| -#include "rk3399-opp.dtsi" |
| +#include "rk3399-rock960.dtsi" |
| |
| / { |
| model = "96boards RK3399 Ficus"; |
| @@ -25,31 +24,6 @@ |
| #clock-cells = <0>; |
| }; |
| |
| - vcc1v8_s0: vcc1v8-s0 { |
| - compatible = "regulator-fixed"; |
| - regulator-name = "vcc1v8_s0"; |
| - regulator-min-microvolt = <1800000>; |
| - regulator-max-microvolt = <1800000>; |
| - regulator-always-on; |
| - }; |
| - |
| - vcc_sys: vcc-sys { |
| - compatible = "regulator-fixed"; |
| - regulator-name = "vcc_sys"; |
| - regulator-min-microvolt = <5000000>; |
| - regulator-max-microvolt = <5000000>; |
| - regulator-always-on; |
| - }; |
| - |
| - vcc3v3_sys: vcc3v3-sys { |
| - compatible = "regulator-fixed"; |
| - regulator-name = "vcc3v3_sys"; |
| - regulator-min-microvolt = <3300000>; |
| - regulator-max-microvolt = <3300000>; |
| - regulator-always-on; |
| - vin-supply = <&vcc_sys>; |
| - }; |
| - |
| vcc3v3_pcie: vcc3v3-pcie-regulator { |
| compatible = "regulator-fixed"; |
| enable-active-high; |
| @@ -77,34 +51,6 @@ |
| }; |
| }; |
| |
| -&cpu_l0 { |
| - cpu-supply = <&vdd_cpu_l>; |
| -}; |
| - |
| -&cpu_l1 { |
| - cpu-supply = <&vdd_cpu_l>; |
| -}; |
| - |
| -&cpu_l2 { |
| - cpu-supply = <&vdd_cpu_l>; |
| -}; |
| - |
| -&cpu_l3 { |
| - cpu-supply = <&vdd_cpu_l>; |
| -}; |
| - |
| -&cpu_b0 { |
| - cpu-supply = <&vdd_cpu_b>; |
| -}; |
| - |
| -&cpu_b1 { |
| - cpu-supply = <&vdd_cpu_b>; |
| -}; |
| - |
| -&emmc_phy { |
| - status = "okay"; |
| -}; |
| - |
| &gmac { |
| assigned-clocks = <&cru SCLK_RMII_SRC>; |
| assigned-clock-parents = <&clkin_gmac>; |
| @@ -121,263 +67,6 @@ |
| status = "okay"; |
| }; |
| |
| -&hdmi { |
| - ddc-i2c-bus = <&i2c3>; |
| - pinctrl-names = "default"; |
| - pinctrl-0 = <&hdmi_cec>; |
| - status = "okay"; |
| -}; |
| - |
| -&i2c0 { |
| - clock-frequency = <400000>; |
| - i2c-scl-rising-time-ns = <168>; |
| - i2c-scl-falling-time-ns = <4>; |
| - status = "okay"; |
| - |
| - vdd_cpu_b: regulator@40 { |
| - compatible = "silergy,syr827"; |
| - reg = <0x40>; |
| - fcs,suspend-voltage-selector = <1>; |
| - regulator-name = "vdd_cpu_b"; |
| - regulator-min-microvolt = <712500>; |
| - regulator-max-microvolt = <1500000>; |
| - regulator-ramp-delay = <1000>; |
| - regulator-always-on; |
| - regulator-boot-on; |
| - vin-supply = <&vcc_sys>; |
| - status = "okay"; |
| - |
| - regulator-state-mem { |
| - regulator-off-in-suspend; |
| - }; |
| - }; |
| - |
| - vdd_gpu: regulator@41 { |
| - compatible = "silergy,syr828"; |
| - reg = <0x41>; |
| - fcs,suspend-voltage-selector = <1>; |
| - regulator-name = "vdd_gpu"; |
| - regulator-min-microvolt = <712500>; |
| - regulator-max-microvolt = <1500000>; |
| - regulator-ramp-delay = <1000>; |
| - regulator-always-on; |
| - regulator-boot-on; |
| - vin-supply = <&vcc_sys>; |
| - regulator-state-mem { |
| - regulator-off-in-suspend; |
| - }; |
| - }; |
| - |
| - rk808: pmic@1b { |
| - compatible = "rockchip,rk808"; |
| - reg = <0x1b>; |
| - interrupt-parent = <&gpio1>; |
| - interrupts = <21 IRQ_TYPE_LEVEL_LOW>; |
| - pinctrl-names = "default"; |
| - pinctrl-0 = <&pmic_int_l>; |
| - 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 = <&vcc3v3_sys>; |
| - vcc9-supply = <&vcc_sys>; |
| - vcc10-supply = <&vcc_sys>; |
| - vcc11-supply = <&vcc_sys>; |
| - vcc12-supply = <&vcc3v3_sys>; |
| - vddio-supply = <&vcc_1v8>; |
| - |
| - regulators { |
| - vdd_center: DCDC_REG1 { |
| - regulator-name = "vdd_center"; |
| - regulator-min-microvolt = <750000>; |
| - regulator-max-microvolt = <1350000>; |
| - regulator-always-on; |
| - regulator-boot-on; |
| - regulator-state-mem { |
| - regulator-off-in-suspend; |
| - }; |
| - }; |
| - |
| - vdd_cpu_l: DCDC_REG2 { |
| - regulator-name = "vdd_cpu_l"; |
| - regulator-min-microvolt = <750000>; |
| - regulator-max-microvolt = <1350000>; |
| - regulator-always-on; |
| - regulator-boot-on; |
| - regulator-state-mem { |
| - regulator-off-in-suspend; |
| - }; |
| - }; |
| - |
| - vcc_ddr: DCDC_REG3 { |
| - regulator-name = "vcc_ddr"; |
| - regulator-always-on; |
| - regulator-boot-on; |
| - regulator-state-mem { |
| - regulator-on-in-suspend; |
| - }; |
| - }; |
| - |
| - vcc_1v8: DCDC_REG4 { |
| - regulator-name = "vcc_1v8"; |
| - regulator-min-microvolt = <1800000>; |
| - regulator-max-microvolt = <1800000>; |
| - regulator-always-on; |
| - regulator-boot-on; |
| - regulator-state-mem { |
| - regulator-on-in-suspend; |
| - regulator-suspend-microvolt = <1800000>; |
| - }; |
| - }; |
| - |
| - vcc1v8_dvp: LDO_REG1 { |
| - regulator-name = "vcc1v8_dvp"; |
| - regulator-min-microvolt = <1800000>; |
| - regulator-max-microvolt = <1800000>; |
| - regulator-always-on; |
| - regulator-boot-on; |
| - regulator-state-mem { |
| - regulator-on-in-suspend; |
| - regulator-suspend-microvolt = <1800000>; |
| - }; |
| - }; |
| - |
| - vcca1v8_hdmi: LDO_REG2 { |
| - regulator-name = "vcca1v8_hdmi"; |
| - regulator-min-microvolt = <1800000>; |
| - regulator-max-microvolt = <1800000>; |
| - regulator-always-on; |
| - regulator-boot-on; |
| - regulator-state-mem { |
| - regulator-on-in-suspend; |
| - regulator-suspend-microvolt = <1800000>; |
| - }; |
| - }; |
| - |
| - vcca_1v8: LDO_REG3 { |
| - regulator-name = "vcca_1v8"; |
| - regulator-min-microvolt = <1800000>; |
| - regulator-max-microvolt = <1800000>; |
| - regulator-always-on; |
| - regulator-boot-on; |
| - regulator-state-mem { |
| - regulator-on-in-suspend; |
| - regulator-suspend-microvolt = <1800000>; |
| - }; |
| - }; |
| - |
| - vcc_sd: LDO_REG4 { |
| - regulator-name = "vcc_sd"; |
| - regulator-min-microvolt = <1800000>; |
| - regulator-max-microvolt = <3300000>; |
| - regulator-always-on; |
| - regulator-boot-on; |
| - regulator-state-mem { |
| - regulator-on-in-suspend; |
| - regulator-suspend-microvolt = <3300000>; |
| - }; |
| - }; |
| - |
| - vcc3v0_sd: LDO_REG5 { |
| - regulator-name = "vcc3v0_sd"; |
| - regulator-min-microvolt = <3000000>; |
| - regulator-max-microvolt = <3000000>; |
| - regulator-always-on; |
| - regulator-boot-on; |
| - regulator-state-mem { |
| - regulator-on-in-suspend; |
| - regulator-suspend-microvolt = <3000000>; |
| - }; |
| - }; |
| - |
| - vcc_1v5: LDO_REG6 { |
| - regulator-name = "vcc_1v5"; |
| - regulator-min-microvolt = <1500000>; |
| - regulator-max-microvolt = <1500000>; |
| - regulator-always-on; |
| - regulator-boot-on; |
| - regulator-state-mem { |
| - regulator-on-in-suspend; |
| - regulator-suspend-microvolt = <1500000>; |
| - }; |
| - }; |
| - |
| - vcca0v9_hdmi: LDO_REG7 { |
| - regulator-name = "vcca0v9_hdmi"; |
| - regulator-min-microvolt = <900000>; |
| - regulator-max-microvolt = <900000>; |
| - regulator-always-on; |
| - regulator-boot-on; |
| - regulator-state-mem { |
| - regulator-on-in-suspend; |
| - regulator-suspend-microvolt = <900000>; |
| - }; |
| - }; |
| - |
| - vcc_3v0: LDO_REG8 { |
| - regulator-name = "vcc_3v0"; |
| - regulator-min-microvolt = <3000000>; |
| - regulator-max-microvolt = <3000000>; |
| - regulator-always-on; |
| - regulator-boot-on; |
| - regulator-state-mem { |
| - regulator-on-in-suspend; |
| - regulator-suspend-microvolt = <3000000>; |
| - }; |
| - }; |
| - |
| - vcc3v3_s3: SWITCH_REG1 { |
| - regulator-name = "vcc3v3_s3"; |
| - regulator-always-on; |
| - regulator-boot-on; |
| - regulator-state-mem { |
| - regulator-on-in-suspend; |
| - }; |
| - }; |
| - |
| - vcc3v3_s0: SWITCH_REG2 { |
| - regulator-name = "vcc3v3_s0"; |
| - regulator-always-on; |
| - regulator-boot-on; |
| - regulator-state-mem { |
| - regulator-on-in-suspend; |
| - }; |
| - }; |
| - }; |
| - }; |
| -}; |
| - |
| -&i2c1 { |
| - status = "okay"; |
| -}; |
| - |
| -&i2c2 { |
| - status = "okay"; |
| -}; |
| - |
| -&i2c3 { |
| - status = "okay"; |
| -}; |
| - |
| -&i2c4 { |
| - status = "okay"; |
| -}; |
| - |
| -&io_domains { |
| - bt656-supply = <&vcc1v8_s0>; /* bt656_gpio2ab_ms */ |
| - audio-supply = <&vcc1v8_s0>; /* audio_gpio3d4a_ms */ |
| - sdmmc-supply = <&vcc_sd>; /* sdmmc_gpio4b_ms */ |
| - gpio1830-supply = <&vcc_3v0>; /* gpio1833_gpio4cd_ms */ |
| - status = "okay"; |
| -}; |
| - |
| &pcie_phy { |
| status = "okay"; |
| }; |
| @@ -391,11 +80,6 @@ |
| status = "okay"; |
| }; |
| |
| -&pmu_io_domains { |
| - pmu1830-supply = <&vcc_1v8>; |
| - status = "okay"; |
| -}; |
| - |
| &pinctrl { |
| gmac { |
| rgmii_sleep_pins: rgmii-sleep-pins { |
| @@ -404,31 +88,6 @@ |
| }; |
| }; |
| |
| - sdmmc { |
| - sdmmc_bus1: sdmmc-bus1 { |
| - rockchip,pins = |
| - <4 8 RK_FUNC_1 &pcfg_pull_up_8ma>; |
| - }; |
| - |
| - sdmmc_bus4: sdmmc-bus4 { |
| - rockchip,pins = |
| - <4 8 RK_FUNC_1 &pcfg_pull_up_8ma>, |
| - <4 9 RK_FUNC_1 &pcfg_pull_up_8ma>, |
| - <4 10 RK_FUNC_1 &pcfg_pull_up_8ma>, |
| - <4 11 RK_FUNC_1 &pcfg_pull_up_8ma>; |
| - }; |
| - |
| - sdmmc_clk: sdmmc-clk { |
| - rockchip,pins = |
| - <4 12 RK_FUNC_1 &pcfg_pull_none_18ma>; |
| - }; |
| - |
| - sdmmc_cmd: sdmmc-cmd { |
| - rockchip,pins = |
| - <4 13 RK_FUNC_1 &pcfg_pull_up_8ma>; |
| - }; |
| - }; |
| - |
| pcie { |
| pcie_drv: pcie-drv { |
| rockchip,pins = |
| @@ -436,23 +95,6 @@ |
| }; |
| }; |
| |
| - pmic { |
| - pmic_int_l: pmic-int-l { |
| - rockchip,pins = |
| - <1 21 RK_FUNC_GPIO &pcfg_pull_up>; |
| - }; |
| - |
| - vsel1_gpio: vsel1-gpio { |
| - rockchip,pins = |
| - <1 17 RK_FUNC_GPIO &pcfg_pull_down>; |
| - }; |
| - |
| - vsel2_gpio: vsel2-gpio { |
| - rockchip,pins = |
| - <1 14 RK_FUNC_GPIO &pcfg_pull_down>; |
| - }; |
| - }; |
| - |
| usb2 { |
| host_vbus_drv: host-vbus-drv { |
| rockchip,pins = |
| @@ -461,37 +103,6 @@ |
| }; |
| }; |
| |
| -&pwm2 { |
| - status = "okay"; |
| -}; |
| - |
| -&pwm3 { |
| - status = "okay"; |
| -}; |
| - |
| -&sdhci { |
| - bus-width = <8>; |
| - mmc-hs400-1_8v; |
| - mmc-hs400-enhanced-strobe; |
| - non-removable; |
| - status = "okay"; |
| -}; |
| - |
| -&sdmmc { |
| - bus-width = <4>; |
| - cap-mmc-highspeed; |
| - cap-sd-highspeed; |
| - clock-frequency = <100000000>; |
| - clock-freq-min-max = <100000 100000000>; |
| - disable-wp; |
| - sd-uhs-sdr104; |
| - vqmmc-supply = <&vcc_sd>; |
| - card-detect-delay = <800>; |
| - pinctrl-names = "default"; |
| - pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_bus4>; |
| - status = "okay"; |
| -}; |
| - |
| &tcphy0 { |
| status = "okay"; |
| }; |
| @@ -526,16 +137,6 @@ |
| status = "okay"; |
| }; |
| |
| -&uart0 { |
| - pinctrl-names = "default"; |
| - pinctrl-0 = <&uart0_xfer &uart0_cts>; |
| - status = "okay"; |
| -}; |
| - |
| -&uart2 { |
| - status = "okay"; |
| -}; |
| - |
| &usb_host0_ehci { |
| status = "okay"; |
| }; |
| @@ -569,19 +170,3 @@ |
| status = "okay"; |
| dr_mode = "host"; |
| }; |
| - |
| -&vopb { |
| - status = "okay"; |
| -}; |
| - |
| -&vopb_mmu { |
| - status = "okay"; |
| -}; |
| - |
| -&vopl { |
| - status = "okay"; |
| -}; |
| - |
| -&vopl_mmu { |
| - status = "okay"; |
| -}; |
| diff --git a/arch/arm64/boot/dts/rockchip/rk3399-rock960.dtsi b/arch/arm64/boot/dts/rockchip/rk3399-rock960.dtsi |
| new file mode 100644 |
| index 000000000000..5a5d8e28ef55 |
| |
| |
| @@ -0,0 +1,439 @@ |
| +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) |
| +/* |
| + * Copyright (c) 2018 Collabora Ltd. |
| + * Copyright (c) 2018 Fuzhou Rockchip Electronics Co., Ltd. |
| + * Copyright (c) 2018 Linaro Ltd. |
| + */ |
| + |
| +#include "rk3399.dtsi" |
| +#include "rk3399-opp.dtsi" |
| + |
| +/ { |
| + vcc1v8_s0: vcc1v8-s0 { |
| + compatible = "regulator-fixed"; |
| + regulator-name = "vcc1v8_s0"; |
| + regulator-min-microvolt = <1800000>; |
| + regulator-max-microvolt = <1800000>; |
| + regulator-always-on; |
| + }; |
| + |
| + vcc_sys: vcc-sys { |
| + compatible = "regulator-fixed"; |
| + regulator-name = "vcc_sys"; |
| + regulator-min-microvolt = <5000000>; |
| + regulator-max-microvolt = <5000000>; |
| + regulator-always-on; |
| + }; |
| + |
| + vcc3v3_sys: vcc3v3-sys { |
| + compatible = "regulator-fixed"; |
| + regulator-name = "vcc3v3_sys"; |
| + regulator-min-microvolt = <3300000>; |
| + regulator-max-microvolt = <3300000>; |
| + regulator-always-on; |
| + vin-supply = <&vcc_sys>; |
| + }; |
| + |
| + vdd_log: vdd-log { |
| + compatible = "pwm-regulator"; |
| + pwms = <&pwm2 0 25000 0>; |
| + regulator-name = "vdd_log"; |
| + regulator-min-microvolt = <800000>; |
| + regulator-max-microvolt = <1400000>; |
| + regulator-always-on; |
| + regulator-boot-on; |
| + vin-supply = <&vcc_sys>; |
| + }; |
| + |
| +}; |
| + |
| +&cpu_l0 { |
| + cpu-supply = <&vdd_cpu_l>; |
| +}; |
| + |
| +&cpu_l1 { |
| + cpu-supply = <&vdd_cpu_l>; |
| +}; |
| + |
| +&cpu_l2 { |
| + cpu-supply = <&vdd_cpu_l>; |
| +}; |
| + |
| +&cpu_l3 { |
| + cpu-supply = <&vdd_cpu_l>; |
| +}; |
| + |
| +&cpu_b0 { |
| + cpu-supply = <&vdd_cpu_b>; |
| +}; |
| + |
| +&cpu_b1 { |
| + cpu-supply = <&vdd_cpu_b>; |
| +}; |
| + |
| +&emmc_phy { |
| + status = "okay"; |
| +}; |
| + |
| +&hdmi { |
| + ddc-i2c-bus = <&i2c3>; |
| + pinctrl-names = "default"; |
| + pinctrl-0 = <&hdmi_cec>; |
| + status = "okay"; |
| +}; |
| + |
| +&i2c0 { |
| + clock-frequency = <400000>; |
| + i2c-scl-rising-time-ns = <168>; |
| + i2c-scl-falling-time-ns = <4>; |
| + status = "okay"; |
| + |
| + vdd_cpu_b: regulator@40 { |
| + compatible = "silergy,syr827"; |
| + reg = <0x40>; |
| + fcs,suspend-voltage-selector = <1>; |
| + regulator-name = "vdd_cpu_b"; |
| + regulator-min-microvolt = <712500>; |
| + regulator-max-microvolt = <1500000>; |
| + regulator-ramp-delay = <1000>; |
| + regulator-always-on; |
| + regulator-boot-on; |
| + vin-supply = <&vcc_sys>; |
| + status = "okay"; |
| + |
| + regulator-state-mem { |
| + regulator-off-in-suspend; |
| + }; |
| + }; |
| + |
| + vdd_gpu: regulator@41 { |
| + compatible = "silergy,syr828"; |
| + reg = <0x41>; |
| + fcs,suspend-voltage-selector = <1>; |
| + regulator-name = "vdd_gpu"; |
| + regulator-min-microvolt = <712500>; |
| + regulator-max-microvolt = <1500000>; |
| + regulator-ramp-delay = <1000>; |
| + regulator-always-on; |
| + regulator-boot-on; |
| + vin-supply = <&vcc_sys>; |
| + regulator-state-mem { |
| + regulator-off-in-suspend; |
| + }; |
| + }; |
| + |
| + rk808: pmic@1b { |
| + compatible = "rockchip,rk808"; |
| + reg = <0x1b>; |
| + interrupt-parent = <&gpio1>; |
| + interrupts = <21 IRQ_TYPE_LEVEL_LOW>; |
| + pinctrl-names = "default"; |
| + pinctrl-0 = <&pmic_int_l>; |
| + 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 = <&vcc3v3_sys>; |
| + vcc9-supply = <&vcc_sys>; |
| + vcc10-supply = <&vcc_sys>; |
| + vcc11-supply = <&vcc_sys>; |
| + vcc12-supply = <&vcc3v3_sys>; |
| + vddio-supply = <&vcc_1v8>; |
| + |
| + regulators { |
| + vdd_center: DCDC_REG1 { |
| + regulator-name = "vdd_center"; |
| + regulator-min-microvolt = <750000>; |
| + regulator-max-microvolt = <1350000>; |
| + regulator-always-on; |
| + regulator-boot-on; |
| + regulator-state-mem { |
| + regulator-off-in-suspend; |
| + }; |
| + }; |
| + |
| + vdd_cpu_l: DCDC_REG2 { |
| + regulator-name = "vdd_cpu_l"; |
| + regulator-min-microvolt = <750000>; |
| + regulator-max-microvolt = <1350000>; |
| + regulator-always-on; |
| + regulator-boot-on; |
| + regulator-state-mem { |
| + regulator-off-in-suspend; |
| + }; |
| + }; |
| + |
| + vcc_ddr: DCDC_REG3 { |
| + regulator-name = "vcc_ddr"; |
| + regulator-always-on; |
| + regulator-boot-on; |
| + regulator-state-mem { |
| + regulator-on-in-suspend; |
| + }; |
| + }; |
| + |
| + vcc_1v8: DCDC_REG4 { |
| + regulator-name = "vcc_1v8"; |
| + regulator-min-microvolt = <1800000>; |
| + regulator-max-microvolt = <1800000>; |
| + regulator-always-on; |
| + regulator-boot-on; |
| + regulator-state-mem { |
| + regulator-on-in-suspend; |
| + regulator-suspend-microvolt = <1800000>; |
| + }; |
| + }; |
| + |
| + vcc1v8_dvp: LDO_REG1 { |
| + regulator-name = "vcc1v8_dvp"; |
| + regulator-min-microvolt = <1800000>; |
| + regulator-max-microvolt = <1800000>; |
| + regulator-always-on; |
| + regulator-boot-on; |
| + regulator-state-mem { |
| + regulator-on-in-suspend; |
| + regulator-suspend-microvolt = <1800000>; |
| + }; |
| + }; |
| + |
| + vcca1v8_hdmi: LDO_REG2 { |
| + regulator-name = "vcca1v8_hdmi"; |
| + regulator-min-microvolt = <1800000>; |
| + regulator-max-microvolt = <1800000>; |
| + regulator-always-on; |
| + regulator-boot-on; |
| + regulator-state-mem { |
| + regulator-on-in-suspend; |
| + regulator-suspend-microvolt = <1800000>; |
| + }; |
| + }; |
| + |
| + vcca_1v8: LDO_REG3 { |
| + regulator-name = "vcca_1v8"; |
| + regulator-min-microvolt = <1800000>; |
| + regulator-max-microvolt = <1800000>; |
| + regulator-always-on; |
| + regulator-boot-on; |
| + regulator-state-mem { |
| + regulator-on-in-suspend; |
| + regulator-suspend-microvolt = <1800000>; |
| + }; |
| + }; |
| + |
| + vcc_sd: LDO_REG4 { |
| + regulator-name = "vcc_sd"; |
| + regulator-min-microvolt = <1800000>; |
| + regulator-max-microvolt = <3300000>; |
| + regulator-always-on; |
| + regulator-boot-on; |
| + regulator-state-mem { |
| + regulator-on-in-suspend; |
| + regulator-suspend-microvolt = <3300000>; |
| + }; |
| + }; |
| + |
| + vcc3v0_sd: LDO_REG5 { |
| + regulator-name = "vcc3v0_sd"; |
| + regulator-min-microvolt = <3000000>; |
| + regulator-max-microvolt = <3000000>; |
| + regulator-always-on; |
| + regulator-boot-on; |
| + regulator-state-mem { |
| + regulator-on-in-suspend; |
| + regulator-suspend-microvolt = <3000000>; |
| + }; |
| + }; |
| + |
| + vcc_1v5: LDO_REG6 { |
| + regulator-name = "vcc_1v5"; |
| + regulator-min-microvolt = <1500000>; |
| + regulator-max-microvolt = <1500000>; |
| + regulator-always-on; |
| + regulator-boot-on; |
| + regulator-state-mem { |
| + regulator-on-in-suspend; |
| + regulator-suspend-microvolt = <1500000>; |
| + }; |
| + }; |
| + |
| + vcca0v9_hdmi: LDO_REG7 { |
| + regulator-name = "vcca0v9_hdmi"; |
| + regulator-min-microvolt = <900000>; |
| + regulator-max-microvolt = <900000>; |
| + regulator-always-on; |
| + regulator-boot-on; |
| + regulator-state-mem { |
| + regulator-on-in-suspend; |
| + regulator-suspend-microvolt = <900000>; |
| + }; |
| + }; |
| + |
| + vcc_3v0: LDO_REG8 { |
| + regulator-name = "vcc_3v0"; |
| + regulator-min-microvolt = <3000000>; |
| + regulator-max-microvolt = <3000000>; |
| + regulator-always-on; |
| + regulator-boot-on; |
| + regulator-state-mem { |
| + regulator-on-in-suspend; |
| + regulator-suspend-microvolt = <3000000>; |
| + }; |
| + }; |
| + |
| + vcc3v3_s3: SWITCH_REG1 { |
| + regulator-name = "vcc3v3_s3"; |
| + regulator-always-on; |
| + regulator-boot-on; |
| + regulator-state-mem { |
| + regulator-on-in-suspend; |
| + }; |
| + }; |
| + |
| + vcc3v3_s0: SWITCH_REG2 { |
| + regulator-name = "vcc3v3_s0"; |
| + regulator-always-on; |
| + regulator-boot-on; |
| + regulator-state-mem { |
| + regulator-on-in-suspend; |
| + }; |
| + }; |
| + }; |
| + }; |
| +}; |
| + |
| +&i2c1 { |
| + status = "okay"; |
| +}; |
| + |
| +&i2c2 { |
| + status = "okay"; |
| +}; |
| + |
| +&i2c3 { |
| + status = "okay"; |
| +}; |
| + |
| +&i2c4 { |
| + status = "okay"; |
| +}; |
| + |
| +&io_domains { |
| + bt656-supply = <&vcc1v8_s0>; /* bt656_gpio2ab_ms */ |
| + audio-supply = <&vcc1v8_s0>; /* audio_gpio3d4a_ms */ |
| + sdmmc-supply = <&vcc_sd>; /* sdmmc_gpio4b_ms */ |
| + gpio1830-supply = <&vcc_3v0>; /* gpio1833_gpio4cd_ms */ |
| + status = "okay"; |
| +}; |
| + |
| +&pmu_io_domains { |
| + pmu1830-supply = <&vcc_1v8>; |
| + status = "okay"; |
| +}; |
| + |
| +&pinctrl { |
| + sdmmc { |
| + sdmmc_bus1: sdmmc-bus1 { |
| + rockchip,pins = |
| + <4 8 RK_FUNC_1 &pcfg_pull_up_8ma>; |
| + }; |
| + |
| + sdmmc_bus4: sdmmc-bus4 { |
| + rockchip,pins = |
| + <4 8 RK_FUNC_1 &pcfg_pull_up_8ma>, |
| + <4 9 RK_FUNC_1 &pcfg_pull_up_8ma>, |
| + <4 10 RK_FUNC_1 &pcfg_pull_up_8ma>, |
| + <4 11 RK_FUNC_1 &pcfg_pull_up_8ma>; |
| + }; |
| + |
| + sdmmc_clk: sdmmc-clk { |
| + rockchip,pins = |
| + <4 12 RK_FUNC_1 &pcfg_pull_none_18ma>; |
| + }; |
| + |
| + sdmmc_cmd: sdmmc-cmd { |
| + rockchip,pins = |
| + <4 13 RK_FUNC_1 &pcfg_pull_up_8ma>; |
| + }; |
| + }; |
| + |
| + pmic { |
| + pmic_int_l: pmic-int-l { |
| + rockchip,pins = |
| + <1 21 RK_FUNC_GPIO &pcfg_pull_up>; |
| + }; |
| + |
| + vsel1_gpio: vsel1-gpio { |
| + rockchip,pins = |
| + <1 17 RK_FUNC_GPIO &pcfg_pull_down>; |
| + }; |
| + |
| + vsel2_gpio: vsel2-gpio { |
| + rockchip,pins = |
| + <1 14 RK_FUNC_GPIO &pcfg_pull_down>; |
| + }; |
| + }; |
| +}; |
| + |
| +&pwm2 { |
| + status = "okay"; |
| +}; |
| + |
| +&pwm3 { |
| + status = "okay"; |
| +}; |
| + |
| +&sdhci { |
| + bus-width = <8>; |
| + mmc-hs400-1_8v; |
| + mmc-hs400-enhanced-strobe; |
| + non-removable; |
| + status = "okay"; |
| +}; |
| + |
| +&sdmmc { |
| + bus-width = <4>; |
| + cap-mmc-highspeed; |
| + cap-sd-highspeed; |
| + clock-frequency = <100000000>; |
| + clock-freq-min-max = <100000 100000000>; |
| + disable-wp; |
| + sd-uhs-sdr104; |
| + vqmmc-supply = <&vcc_sd>; |
| + card-detect-delay = <800>; |
| + pinctrl-names = "default"; |
| + pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_bus4>; |
| + status = "okay"; |
| +}; |
| + |
| +&uart0 { |
| + pinctrl-names = "default"; |
| + pinctrl-0 = <&uart0_xfer &uart0_cts>; |
| + status = "okay"; |
| +}; |
| + |
| +&uart2 { |
| + status = "okay"; |
| +}; |
| + |
| +&vopb { |
| + status = "okay"; |
| +}; |
| + |
| +&vopb_mmu { |
| + status = "okay"; |
| +}; |
| + |
| +&vopl { |
| + status = "okay"; |
| +}; |
| + |
| +&vopl_mmu { |
| + status = "okay"; |
| +}; |
| -- |
| 2.19.2 |
| |
| From 77f6a861cf9294e13720e87d0c43ce3494f45c90 Mon Sep 17 00:00:00 2001 |
| From: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org> |
| Date: Mon, 10 Sep 2018 20:43:54 +0530 |
| Subject: [PATCH 2/5] dt-bindings: arm: rockchip: Add binding for Rock960 board |
| |
| Add devicetree binding for Rock960 board from Vamrs Limited. |
| |
| Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org> |
| Signed-off-by: Jeremy Cline <jcline@redhat.com> |
| |
| Documentation/devicetree/bindings/arm/rockchip.txt | 4 ++++ |
| 1 file changed, 4 insertions(+) |
| |
| diff --git a/Documentation/devicetree/bindings/arm/rockchip.txt b/Documentation/devicetree/bindings/arm/rockchip.txt |
| index acfd3c773dd0..aaad9e2ff9a3 100644 |
| |
| |
| @@ -5,6 +5,10 @@ Rockchip platforms device tree bindings |
| Required root node properties: |
| - compatible = "vamrs,ficus", "rockchip,rk3399"; |
| |
| +- 96boards RK3399 Rock960 (ROCK960 Consumer Edition) |
| + Required root node properties: |
| + - compatible = "vamrs,rk3399-rock960", "rockchip,rk3399"; |
| + |
| - Amarula Vyasa RK3288 board |
| Required root node properties: |
| - compatible = "amarula,vyasa-rk3288", "rockchip,rk3288"; |
| -- |
| 2.19.2 |
| |
| From 7feb0235145ed6f81527dc7b66507d72fad7bdda Mon Sep 17 00:00:00 2001 |
| From: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org> |
| Date: Mon, 10 Sep 2018 20:43:55 +0530 |
| Subject: [PATCH 3/5] arm64: boot: dts: rockchip: Add support for Rock960 board |
| |
| Add devicetree support for Rock960 board, one of the Consumer Edition |
| boards of the 96Boards family. This board support utilizes the common |
| Rock960 family board support that includes Ficus 96Board. |
| |
| Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org> |
| Signed-off-by: Jeremy Cline <jcline@redhat.com> |
| |
| arch/arm64/boot/dts/rockchip/Makefile | 1 + |
| .../boot/dts/rockchip/rk3399-rock960.dts | 139 ++++++++++++++++++ |
| 2 files changed, 140 insertions(+) |
| create mode 100644 arch/arm64/boot/dts/rockchip/rk3399-rock960.dts |
| |
| diff --git a/arch/arm64/boot/dts/rockchip/Makefile b/arch/arm64/boot/dts/rockchip/Makefile |
| index b0092d95b574..57c0d76458e6 100644 |
| |
| |
| @@ -14,5 +14,6 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-firefly.dtb |
| dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-gru-bob.dtb |
| dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-gru-kevin.dtb |
| dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-puma-haikou.dtb |
| +dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-rock960.dtb |
| dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-sapphire.dtb |
| dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-sapphire-excavator.dtb |
| diff --git a/arch/arm64/boot/dts/rockchip/rk3399-rock960.dts b/arch/arm64/boot/dts/rockchip/rk3399-rock960.dts |
| new file mode 100644 |
| index 000000000000..281f3d79b38e |
| |
| |
| @@ -0,0 +1,139 @@ |
| +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) |
| +/* |
| + * Copyright (c) 2018 Linaro Ltd. |
| + */ |
| + |
| +/dts-v1/; |
| +#include "rk3399-rock960.dtsi" |
| + |
| +/ { |
| + model = "96boards Rock960"; |
| + compatible = "vamrs,rk3399-rock960", "rockchip,rk3399"; |
| + |
| + chosen { |
| + stdout-path = "serial2:1500000n8"; |
| + }; |
| + |
| + vcc3v3_pcie: vcc3v3-pcie-regulator { |
| + compatible = "regulator-fixed"; |
| + enable-active-high; |
| + gpio = <&gpio2 5 GPIO_ACTIVE_HIGH>; |
| + pinctrl-names = "default"; |
| + pinctrl-0 = <&pcie_drv>; |
| + regulator-boot-on; |
| + regulator-name = "vcc3v3_pcie"; |
| + regulator-min-microvolt = <3300000>; |
| + regulator-max-microvolt = <3300000>; |
| + vin-supply = <&vcc3v3_sys>; |
| + }; |
| + |
| + vcc5v0_host: vcc5v0-host-regulator { |
| + compatible = "regulator-fixed"; |
| + enable-active-high; |
| + gpio = <&gpio4 25 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; |
| + vin-supply = <&vcc_sys>; |
| + }; |
| +}; |
| + |
| +&pinctrl { |
| + pcie { |
| + pcie_drv: pcie-drv { |
| + rockchip,pins = |
| + <2 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>; |
| + }; |
| + }; |
| + |
| + usb2 { |
| + host_vbus_drv: host-vbus-drv { |
| + rockchip,pins = |
| + <4 RK_PD1 RK_FUNC_GPIO &pcfg_pull_none>; |
| + }; |
| + }; |
| +}; |
| + |
| +&pcie_phy { |
| + status = "okay"; |
| +}; |
| + |
| +&pcie0 { |
| + ep-gpios = <&gpio2 RK_PA2 GPIO_ACTIVE_HIGH>; |
| + num-lanes = <4>; |
| + pinctrl-names = "default"; |
| + pinctrl-0 = <&pcie_clkreqn_cpm>; |
| + vpcie3v3-supply = <&vcc3v3_pcie>; |
| + status = "okay"; |
| +}; |
| + |
| +&tcphy0 { |
| + status = "okay"; |
| +}; |
| + |
| +&tcphy1 { |
| + status = "okay"; |
| +}; |
| + |
| +&u2phy0 { |
| + status = "okay"; |
| +}; |
| + |
| +&u2phy1 { |
| + status = "okay"; |
| +}; |
| + |
| +&u2phy0_host { |
| + phy-supply = <&vcc5v0_host>; |
| + status = "okay"; |
| +}; |
| + |
| +&u2phy1_host { |
| + phy-supply = <&vcc5v0_host>; |
| + status = "okay"; |
| +}; |
| + |
| +&u2phy0_otg { |
| + status = "okay"; |
| +}; |
| + |
| +&u2phy1_otg { |
| + status = "okay"; |
| +}; |
| + |
| +&usb_host0_ehci { |
| + status = "okay"; |
| +}; |
| + |
| +&usb_host0_ohci { |
| + status = "okay"; |
| +}; |
| + |
| +&usb_host1_ehci { |
| + status = "okay"; |
| +}; |
| + |
| +&usb_host1_ohci { |
| + status = "okay"; |
| +}; |
| + |
| +&usbdrd3_0 { |
| + status = "okay"; |
| +}; |
| + |
| +&usbdrd_dwc3_0 { |
| + status = "okay"; |
| + dr_mode = "otg"; |
| +}; |
| + |
| +&usbdrd3_1 { |
| + status = "okay"; |
| +}; |
| + |
| +&usbdrd_dwc3_1 { |
| + status = "okay"; |
| + dr_mode = "host"; |
| +}; |
| -- |
| 2.19.2 |
| |
| From 3e38e9e596d44926a3d2abd2c7c1ff0515ef9517 Mon Sep 17 00:00:00 2001 |
| From: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org> |
| Date: Mon, 10 Sep 2018 20:43:56 +0530 |
| Subject: [PATCH 4/5] arm64: dts: rockchip: Enable SD card detection for |
| Rock960 boards |
| |
| For proper working of SD cards, let's add the Card Detect GPIO property |
| to the common devicetree for Rock960 family boards. |
| |
| Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org> |
| Signed-off-by: Jeremy Cline <jcline@redhat.com> |
| |
| arch/arm64/boot/dts/rockchip/rk3399-rock960.dtsi | 1 + |
| 1 file changed, 1 insertion(+) |
| |
| diff --git a/arch/arm64/boot/dts/rockchip/rk3399-rock960.dtsi b/arch/arm64/boot/dts/rockchip/rk3399-rock960.dtsi |
| index 5a5d8e28ef55..f68254831ad9 100644 |
| |
| |
| @@ -403,6 +403,7 @@ |
| cap-sd-highspeed; |
| clock-frequency = <100000000>; |
| clock-freq-min-max = <100000 100000000>; |
| + cd-gpios = <&gpio0 7 GPIO_ACTIVE_LOW>; |
| disable-wp; |
| sd-uhs-sdr104; |
| vqmmc-supply = <&vcc_sd>; |
| -- |
| 2.19.2 |
| |
| From cfe6b83c53aafd81f2b55c9ff25991f499edc49a Mon Sep 17 00:00:00 2001 |
| From: Daniel Lezcano <daniel.lezcano@linaro.org> |
| Date: Tue, 16 Oct 2018 16:00:20 +0200 |
| Subject: [PATCH 5/5] DT: rockchip: Fix stability issues with the 'performance' |
| governor on rock960 |
| |
| When the performance governor is set as default, the rock960 hangs |
| around one minute after booting, whatever the activity is (idle, key |
| pressed, loaded, ...). |
| |
| Based on the commit log found at https://patchwork.kernel.org/patch/10092377/ |
| |
| "vdd_log has no consumer and therefore will not be set to a specific |
| voltage. Still the PWM output pin gets configured and thence the vdd_log |
| output voltage will changed from it's default. Depending on the idle |
| state of the PWM this will slightly over or undervoltage the logic supply |
| of the RK3399 and cause instability with GbE (undervoltage) and PCIe |
| (overvoltage). Since the default value set by a voltage divider is the |
| correct supply voltage and we don't need to change it during runtime we |
| remove the rail from the devicetree completely so the PWM pin will not |
| be configured." |
| |
| After removing the vdd-log from the rock960's specific DT, the board |
| does no longer hang and shows a stable behavior. |
| |
| Apply the same change for the rock960 by removing the vdd-log from the |
| DT. |
| |
| Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org> |
| Tested-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org> |
| Signed-off-by: Jeremy Cline <jcline@redhat.com> |
| |
| arch/arm64/boot/dts/rockchip/rk3399-rock960.dtsi | 12 ------------ |
| 1 file changed, 12 deletions(-) |
| |
| diff --git a/arch/arm64/boot/dts/rockchip/rk3399-rock960.dtsi b/arch/arm64/boot/dts/rockchip/rk3399-rock960.dtsi |
| index f68254831ad9..90bfc6e7ce68 100644 |
| |
| |
| @@ -33,18 +33,6 @@ |
| regulator-always-on; |
| vin-supply = <&vcc_sys>; |
| }; |
| - |
| - vdd_log: vdd-log { |
| - compatible = "pwm-regulator"; |
| - pwms = <&pwm2 0 25000 0>; |
| - regulator-name = "vdd_log"; |
| - regulator-min-microvolt = <800000>; |
| - regulator-max-microvolt = <1400000>; |
| - regulator-always-on; |
| - regulator-boot-on; |
| - vin-supply = <&vcc_sys>; |
| - }; |
| - |
| }; |
| |
| &cpu_l0 { |
| -- |
| 2.19.2 |
| |