mbox series

[v2,0/4] Add 96Boards Rock960 CE board support

Message ID 20180911023031.4892-1-manivannan.sadhasivam@linaro.org
Headers show
Series Add 96Boards Rock960 CE board support | expand

Message

Manivannan Sadhasivam Sept. 11, 2018, 2:30 a.m. UTC
This patchset adds 96Boards Rock960 CE board support. Rock960 CE
(Consumer Edition) board is one of the member of 96Boards Consumer
Edition and AI platform and is manufactured by Vamrs Limited. Most of
the board configuration is shared with the Ficus board manufactured by
vamrs, which is an Enterprise 96Board.

For the sake of avoiding code duplication, a common rock960.dtsi file
with common DT nodes for both boards and separate board specific DTS
files has been added.

To be specific, below are some of the key differences between both
boards:

1. Different host enable GPIO for USB
2. Different power and reset GPIO for PCI-E
3. No Ethernet port on Rock960

While adding the board support, SD card Chip detection support is also
added to the common dtsi file, shared by both boards.

This series has been tested on Rock960 CE v1.2 board and expecting the
Ficus board maintainer to test the relevant Ficus part.

Thanks,
Mani

Changes in v2:

* Changed the board compatible to "vamrs,rock960"

Manivannan Sadhasivam (4):
  arm64: dts: rockchip: Split out common nodes for Rock960 based boards
  dt-bindings: arm: rockchip: Add binding for Rock960 board
  arm64: boot: dts: rockchip: Add support for Rock960 board
  arm64: dts: rockchip: Enable SD card detection for Rock960 boards

 .../devicetree/bindings/arm/rockchip.txt      |   4 +
 arch/arm64/boot/dts/rockchip/Makefile         |   1 +
 arch/arm64/boot/dts/rockchip/rk3399-ficus.dts | 429 +----------------
 .../boot/dts/rockchip/rk3399-rock960.dts      | 139 ++++++
 .../boot/dts/rockchip/rk3399-rock960.dtsi     | 440 ++++++++++++++++++
 5 files changed, 585 insertions(+), 428 deletions(-)
 create mode 100644 arch/arm64/boot/dts/rockchip/rk3399-rock960.dts
 create mode 100644 arch/arm64/boot/dts/rockchip/rk3399-rock960.dtsi

-- 
2.17.1

Comments

Ezequiel Garcia Sept. 11, 2018, 7:40 p.m. UTC | #1
On Tue, 2018-09-11 at 08:00 +0530, Manivannan Sadhasivam wrote:
> 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.

> 


I think it should be possible to move the common USB nodes to the dtsi file,
and keep the board-specific (phy-supply property) in the dts files:

&u2phy0_host {
        phy-supply = <&vcc5v0_host>;
};

&u2phy1_host {
        phy-supply = <&vcc5v0_host>;
};

Also, I believe it would be good to have some more details
in this commit log. The information on the cover letter is great,
so I'd just repeat some of that here.

Other than that, for the ficus bits:

Reviewed-by: Ezequiel Garcia <ezequiel@collabora.com>


Thanks very much for this work!
Ezequiel


> Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>

> ---

>  arch/arm64/boot/dts/rockchip/rk3399-ficus.dts | 429 +----------------

>  .../boot/dts/rockchip/rk3399-rock960.dtsi     | 439 ++++++++++++++++++

>  2 files changed, 440 insertions(+), 428 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 8978d924eb83..7f6ec37d5a69 100644

> --- a/arch/arm64/boot/dts/rockchip/rk3399-ficus.dts

> +++ b/arch/arm64/boot/dts/rockchip/rk3399-ficus.dts

> @@ -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;

> @@ -75,46 +49,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 {

> -	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 {

> @@ -133,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";

>  };

> @@ -403,11 +80,6 @@

>  	status = "okay";

>  };

>  

> -&pmu_io_domains {

> -	pmu1830-supply = <&vcc_1v8>;

> -	status = "okay";

> -};

> -

>  &pinctrl {

>  	gmac {

>  		rgmii_sleep_pins: rgmii-sleep-pins {

> @@ -416,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 =

> @@ -448,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 =

> @@ -473,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";

>  };

> @@ -538,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";

>  };

> @@ -581,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

> --- /dev/null

> +++ b/arch/arm64/boot/dts/rockchip/rk3399-rock960.dtsi

> @@ -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";

> +};
Manivannan Sadhasivam Sept. 12, 2018, 3:12 a.m. UTC | #2
Hi Ezequiel,

On Tue, Sep 11, 2018 at 04:40:29PM -0300, Ezequiel Garcia wrote:
> On Tue, 2018-09-11 at 08:00 +0530, Manivannan Sadhasivam wrote:

> > 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.

> > 

> 

> I think it should be possible to move the common USB nodes to the dtsi file,

> and keep the board-specific (phy-supply property) in the dts files:

> 

> &u2phy0_host {

>         phy-supply = <&vcc5v0_host>;

> };

> 

> &u2phy1_host {

>         phy-supply = <&vcc5v0_host>;

> };

> 


We can do that but my intention was to entirely partition the nodes
which are not common. So that it would be less confusing when someone
looks at it (please correct me if I'm wrong).

> Also, I believe it would be good to have some more details

> in this commit log. The information on the cover letter is great,

> so I'd just repeat some of that here.

> 


Sure, will add it in next iteration.

> Other than that, for the ficus bits:

> 

> Reviewed-by: Ezequiel Garcia <ezequiel@collabora.com>

> 


Thanks a lot for the review!

Regards,
Mani

> Thanks very much for this work!

> Ezequiel

> 

> 

> > Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>

> > ---

> >  arch/arm64/boot/dts/rockchip/rk3399-ficus.dts | 429 +----------------

> >  .../boot/dts/rockchip/rk3399-rock960.dtsi     | 439 ++++++++++++++++++

> >  2 files changed, 440 insertions(+), 428 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 8978d924eb83..7f6ec37d5a69 100644

> > --- a/arch/arm64/boot/dts/rockchip/rk3399-ficus.dts

> > +++ b/arch/arm64/boot/dts/rockchip/rk3399-ficus.dts

> > @@ -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;

> > @@ -75,46 +49,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 {

> > -	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 {

> > @@ -133,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";

> >  };

> > @@ -403,11 +80,6 @@

> >  	status = "okay";

> >  };

> >  

> > -&pmu_io_domains {

> > -	pmu1830-supply = <&vcc_1v8>;

> > -	status = "okay";

> > -};

> > -

> >  &pinctrl {

> >  	gmac {

> >  		rgmii_sleep_pins: rgmii-sleep-pins {

> > @@ -416,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 =

> > @@ -448,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 =

> > @@ -473,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";

> >  };

> > @@ -538,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";

> >  };

> > @@ -581,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

> > --- /dev/null

> > +++ b/arch/arm64/boot/dts/rockchip/rk3399-rock960.dtsi

> > @@ -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";

> > +};

>
Heiko Stuebner Sept. 12, 2018, 7:26 a.m. UTC | #3
Am Mittwoch, 12. September 2018, 05:12:48 CEST schrieb Manivannan Sadhasivam:
> Hi Ezequiel,

> 

> On Tue, Sep 11, 2018 at 04:40:29PM -0300, Ezequiel Garcia wrote:

> > On Tue, 2018-09-11 at 08:00 +0530, Manivannan Sadhasivam wrote:

> > > 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.

> > 

> > I think it should be possible to move the common USB nodes to the dtsi

> > file, and keep the board-specific (phy-supply property) in the dts files:

> > 

> > &u2phy0_host {

> > 

> >         phy-supply = <&vcc5v0_host>;

> > 

> > };

> > 

> > &u2phy1_host {

> > 

> >         phy-supply = <&vcc5v0_host>;

> > 

> > };

> 

> We can do that but my intention was to entirely partition the nodes

> which are not common. So that it would be less confusing when someone

> looks at it (please correct me if I'm wrong).


The supply is actually named the same on both boards, so you could move
all the usb-nodes to the main dtsi, including the reference to vcc5v0_host
which would then get defined itself in the two board dts.

Then again, seeing that the vcc5v0_host also only differs in the actually
used gpio another option would be to move the whole regulator node
to the dtsi and just define the gpio properties in the board dts files.


Heiko
Manivannan Sadhasivam Sept. 12, 2018, 8:22 a.m. UTC | #4
On Wed, Sep 12, 2018 at 09:26:12AM +0200, Heiko Stübner wrote:
> Am Mittwoch, 12. September 2018, 05:12:48 CEST schrieb Manivannan Sadhasivam:

> > Hi Ezequiel,

> > 

> > On Tue, Sep 11, 2018 at 04:40:29PM -0300, Ezequiel Garcia wrote:

> > > On Tue, 2018-09-11 at 08:00 +0530, Manivannan Sadhasivam wrote:

> > > > 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.

> > > 

> > > I think it should be possible to move the common USB nodes to the dtsi

> > > file, and keep the board-specific (phy-supply property) in the dts files:

> > > 

> > > &u2phy0_host {

> > > 

> > >         phy-supply = <&vcc5v0_host>;

> > > 

> > > };

> > > 

> > > &u2phy1_host {

> > > 

> > >         phy-supply = <&vcc5v0_host>;

> > > 

> > > };

> > 

> > We can do that but my intention was to entirely partition the nodes

> > which are not common. So that it would be less confusing when someone

> > looks at it (please correct me if I'm wrong).

> 

> The supply is actually named the same on both boards, so you could move

> all the usb-nodes to the main dtsi, including the reference to vcc5v0_host

> which would then get defined itself in the two board dts.

> 

> Then again, seeing that the vcc5v0_host also only differs in the actually

> used gpio another option would be to move the whole regulator node

> to the dtsi and just define the gpio properties in the board dts files.

>


Hmm, if that's the preferred option then I guess this applies to pcie
nodes also. At the end, usb and pcie nodes will be shrinked to below in
board dts:

&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>;
                };
        };
};

&pcie0 {
        ep-gpios = <&gpio2 RK_PA2 GPIO_ACTIVE_HIGH>;
        status = "okay";
};

&vcc3v3_pcie {
        gpio = <&gpio2 5 GPIO_ACTIVE_HIGH>;
};

&vcc5v0_host {
        gpio = <&gpio4 25 GPIO_ACTIVE_HIGH>;
};

Thanks,
Mani

> 

> Heiko

> 

>
Heiko Stuebner Sept. 12, 2018, 2:05 p.m. UTC | #5
Am Mittwoch, 12. September 2018, 10:22:44 CEST schrieb Manivannan Sadhasivam:
> On Wed, Sep 12, 2018 at 09:26:12AM +0200, Heiko Stübner wrote:

> > Am Mittwoch, 12. September 2018, 05:12:48 CEST schrieb Manivannan Sadhasivam:

> > > Hi Ezequiel,

> > > 

> > > On Tue, Sep 11, 2018 at 04:40:29PM -0300, Ezequiel Garcia wrote:

> > > > On Tue, 2018-09-11 at 08:00 +0530, Manivannan Sadhasivam wrote:

> > > > > 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.

> > > > 

> > > > I think it should be possible to move the common USB nodes to the dtsi

> > > > file, and keep the board-specific (phy-supply property) in the dts files:

> > > > 

> > > > &u2phy0_host {

> > > > 

> > > >         phy-supply = <&vcc5v0_host>;

> > > > 

> > > > };

> > > > 

> > > > &u2phy1_host {

> > > > 

> > > >         phy-supply = <&vcc5v0_host>;

> > > > 

> > > > };

> > > 

> > > We can do that but my intention was to entirely partition the nodes

> > > which are not common. So that it would be less confusing when someone

> > > looks at it (please correct me if I'm wrong).

> > 

> > The supply is actually named the same on both boards, so you could move

> > all the usb-nodes to the main dtsi, including the reference to vcc5v0_host

> > which would then get defined itself in the two board dts.

> > 

> > Then again, seeing that the vcc5v0_host also only differs in the actually

> > used gpio another option would be to move the whole regulator node

> > to the dtsi and just define the gpio properties in the board dts files.

> >

> 

> Hmm, if that's the preferred option then I guess this applies to pcie

> nodes also. At the end, usb and pcie nodes will be shrinked to below in

> board dts:

> 

> &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>;

>                 };

>         };

> };

> 

> &pcie0 {

>         ep-gpios = <&gpio2 RK_PA2 GPIO_ACTIVE_HIGH>;

>         status = "okay";

> };

> 

> &vcc3v3_pcie {

>         gpio = <&gpio2 5 GPIO_ACTIVE_HIGH>;

> };

> 

> &vcc5v0_host {

>         gpio = <&gpio4 25 GPIO_ACTIVE_HIGH>;

> };


yep, ideally we could go that way. It's way easier to determine the
actual differences between boards that way as well.


Heiko