diff mbox

[1/2] ARM: dts: Add TOPEET itop core board SCP package version

Message ID 1471809893-31147-2-git-send-email-ayaka@soulik.info (mailing list archive)
State New, archived
Headers show

Commit Message

ayaka Aug. 21, 2016, 8:04 p.m. UTC
The TOPEET itop is a samsung exnynos 4412 core board, which have
two package versions. This patch add the support for SCP version.

Currently supported are USB3503A HSIC, USB OTG, eMMC, RTC and PMIC.
The future features are in the based board. Also MFC and watchdog
have been enabled.

Signed-off-by: Randy Li <ayaka@soulik.info>
---
 arch/arm/boot/dts/exynos4412-itop-scp-core.dtsi | 434 ++++++++++++++++++++++++
 1 file changed, 434 insertions(+)
 create mode 100644 arch/arm/boot/dts/exynos4412-itop-scp-core.dtsi

Comments

Marek Szyprowski Aug. 22, 2016, 6:50 a.m. UTC | #1
Dear Randy,


On 2016-08-21 22:04, Randy Li wrote:
> The TOPEET itop is a samsung exnynos 4412 core board, which have
> two package versions. This patch add the support for SCP version.
>
> Currently supported are USB3503A HSIC, USB OTG, eMMC, RTC and PMIC.
> The future features are in the based board. Also MFC and watchdog
> have been enabled.
>
> Signed-off-by: Randy Li <ayaka@soulik.info>
> ---
>   arch/arm/boot/dts/exynos4412-itop-scp-core.dtsi | 434 ++++++++++++++++++++++++
>   1 file changed, 434 insertions(+)
>   create mode 100644 arch/arm/boot/dts/exynos4412-itop-scp-core.dtsi
>
> diff --git a/arch/arm/boot/dts/exynos4412-itop-scp-core.dtsi b/arch/arm/boot/dts/exynos4412-itop-scp-core.dtsi
> new file mode 100644
> index 0000000..0860ee6
> --- /dev/null
> +++ b/arch/arm/boot/dts/exynos4412-itop-scp-core.dtsi
> @@ -0,0 +1,434 @@
> +/*
> + * TOPEET's Exynos4412 based itop board device tree source
> + *
> + * Copyright (c) 2016 SUMOMO Computer Association
> + *			https://www.sumomo.mobi
> + *			Randy Li <ayaka@soulik.info>
> + *			
> + * Device tree source file for TOPEET iTop Exynos 4412 SCP package core
> + * board which is based on Samsung's Exynos4412 SoC.
> + *
> + * This program is free software; you can redistribute it and/or modify
> + * it under the terms of the GNU General Public License version 2 as
> + * published by the Free Software Foundation.
> +*/
> +
> +#include "exynos4412.dtsi"
> +#include <dt-bindings/gpio/gpio.h>
> +#include <dt-bindings/input/input.h>
> +
> +/ {
> +	memory {
> +		reg = <0x40000000 0x40000000>;
> +	};
> +
> +	firmware@0203F000 {
> +		compatible = "samsung,secure-firmware";
> +		reg = <0x0203F000 0x1000>;
> +	};
> +
> +	display-timings {
> +		native-mode = <&timing0>;
> +		timing0: timing {
> +			clock-frequency = <47500000>;
> +			hactive = <1024>;
> +			vactive = <600>;
> +			hfront-porch = <64>;
> +			hback-porch = <16>;
> +			hsync-len = <48>;
> +			vback-porch = <64>;
> +			vfront-porch = <16>;
> +			vsync-len = <3>;
> +		};
> +	};
> +
> +	fixed-rate-clocks {
> +		xxti {
> +			compatible = "samsung,clock-xxti";
> +			clock-frequency = <0>;
> +		};
> +
> +		xusbxti {
> +			compatible = "samsung,clock-xusbxti";
> +			clock-frequency = <24000000>;
> +		};
> +	};
> +
> +	usb-hub {
> +		compatible = "smsc,usb3503a";
> +		reset-gpios = <&gpm2 4 GPIO_ACTIVE_LOW>;
> +		connect-gpios = <&gpm3 3 GPIO_ACTIVE_HIGH>;
> +		intn-gpios = <&gpx2 3 GPIO_ACTIVE_HIGH>;
> +		pinctrl-names = "default";
> +		pinctrl-0 = <&hsic_reset>;
> +	};
> +};
> +
> +&cpu0 {
> +	cpu0-supply = <&buck2_reg>;
> +};
> +
> +&i2c_1 {
> +	#address-cells = <1>;
> +	#size-cells = <0>;
> +	samsung,i2c-sda-delay = <100>;
> +	samsung,i2c-max-bus-freq = <400000>;
> +	pinctrl-0 = <&i2c1_bus>;
> +	pinctrl-names = "default";
> +	status = "okay";
> +
> +	s5m8767_pmic@66 {
> +		compatible = "samsung,s5m8767-pmic";
> +		reg = <0x66>;
> +
> +		s5m8767,pmic-buck-default-dvs-idx = <3>;
> +
> +		s5m8767,pmic-buck-dvs-gpios = <&gpb 5 GPIO_ACTIVE_HIGH>,
> +						 <&gpb 6 GPIO_ACTIVE_HIGH>,
> +						 <&gpb 7 GPIO_ACTIVE_HIGH>;
> +
> +		s5m8767,pmic-buck-ds-gpios = <&gpm3 5 GPIO_ACTIVE_HIGH>,
> +						<&gpm3 6 GPIO_ACTIVE_HIGH>,
> +						<&gpm3 7 GPIO_ACTIVE_HIGH>;
> +
> +		/* VDD_ARM */
> +		s5m8767,pmic-buck2-dvs-voltage = <1356250>, <1300000>,
> +						 <1243750>, <1118750>,
> +						 <1068750>, <1012500>,
> +						 <956250>, <900000>;
> +		/* VDD_INT */
> +		s5m8767,pmic-buck3-dvs-voltage = <1000000>, <1000000>,
> +						 <925000>, <925000>,
> +						 <887500>, <887500>,
> +						 <850000>, <850000>;
> +		/* VDD_G3D */
> +		s5m8767,pmic-buck4-dvs-voltage = <1081250>, <1081250>,
> +						 <1025000>, <950000>,
> +						 <918750>, <900000>,
> +						 <875000>, <831250>;
> +
> +		regulators {
> +			ldo1_reg: LDO1 {
> +				regulator-name = "VDD_ALIVE";
> +				regulator-min-microvolt = <1100000>;
> +				regulator-max-microvolt = <1100000>;
> +				regulator-always-on;
> +				regulator-boot-on;
> +				op_mode = <1>; /* Normal Mode */
> +			};
> +
> +			/* SCP uses 1.5v, POP uses 1.2v */
> +			ldo2_reg: LDO2 {
> +				regulator-name = "VDDQ_M12";
> +				regulator-min-microvolt = <1500000>;
> +				regulator-max-microvolt = <1500000>;
> +				regulator-always-on;
> +				regulator-boot-on;
> +				op_mode = <1>; /* Normal Mode */
> +			};
> +
> +			ldo3_reg: LDO3 {
> +				regulator-name = "VDDIOAP_18";
> +				regulator-min-microvolt = <1800000>;
> +				regulator-max-microvolt = <1800000>;
> +				regulator-always-on;
> +				op_mode = <1>; /* Normal Mode */
> +			};
> +
> +			ldo4_reg: LDO4 {
> +				regulator-name = "VDDQ_PRE";
> +				regulator-min-microvolt = <1800000>;
> +				regulator-max-microvolt = <1800000>;
> +				regulator-always-on;
> +				op_mode = <1>; /* Normal Mode */
> +			};
> +
> +			ldo6_reg: LDO6 {
> +				regulator-name = "VDD10_MPLL";
> +				regulator-min-microvolt = <1000000>;
> +				regulator-max-microvolt = <1000000>;
> +				regulator-always-on;
> +				op_mode = <1>; /* Normal Mode */
> +			};
> +
> +			ldo7_reg: LDO7 {
> +				regulator-name = "VDD10_XPLL";
> +				regulator-min-microvolt = <1000000>;
> +				regulator-max-microvolt = <1000000>;
> +				regulator-always-on;
> +				op_mode = <1>; /* Normal Mode */
> +			};
> +
> +			ldo8_reg: LDO8 {
> +				regulator-name = "VDD10_MIPI";
> +				regulator-min-microvolt = <1000000>;
> +				regulator-max-microvolt = <1000000>;
> +				op_mode = <1>; /* Normal Mode */
> +			};
> +
> +			ldo9_reg: LDO9 {
> +				regulator-name = "VDD33_LCD";
> +				regulator-min-microvolt = <3300000>;
> +				regulator-max-microvolt = <3300000>;
> +				op_mode = <1>; /* Normal Mode */
> +			};
> +
> +			ldo10_reg: LDO10 {
> +				regulator-name = "VDD18_MIPI";
> +				regulator-min-microvolt = <1800000>;
> +				regulator-max-microvolt = <1800000>;
> +				op_mode = <1>; /* Normal Mode */
> +			};
> +
> +			ldo11_reg: LDO11 {
> +				regulator-name = "VDD18_ABB1";
> +				regulator-min-microvolt = <1800000>;
> +				regulator-max-microvolt = <1800000>;
> +				regulator-always-on;
> +				op_mode = <1>; /* Normal Mode */
> +			};
> +
> +			ldo12_reg: LDO12 {
> +				regulator-name = "VDD33_UOTG";
> +				regulator-min-microvolt = <3300000>;
> +				regulator-max-microvolt = <3300000>;
> +				regulator-always-on;
> +				op_mode = <1>; /* Normal Mode */
> +			};
> +
> +			ldo13_reg: LDO13 {
> +				regulator-name = "VDDIOPERI_18";
> +				regulator-min-microvolt = <1800000>;
> +				regulator-max-microvolt = <1800000>;
> +				regulator-always-on;
> +				op_mode = <1>; /* Normal Mode */
> +			};
> +
> +			ldo14_reg: LDO14 {
> +				regulator-name = "VDD18_ABB02";
> +				regulator-min-microvolt = <1800000>;
> +				regulator-max-microvolt = <1800000>;
> +				regulator-always-on;
> +				op_mode = <1>; /* Normal Mode */
> +			};
> +
> +			ldo15_reg: LDO15 {
> +				regulator-name = "VDD10_USH";
> +				regulator-min-microvolt = <1000000>;
> +				regulator-max-microvolt = <1000000>;
> +				regulator-always-on;
> +				op_mode = <1>; /* Normal Mode */
> +			};
> +
> +			ldo16_reg: LDO16 {
> +				regulator-name = "VDD18_HSIC";
> +				regulator-min-microvolt = <1800000>;
> +				regulator-max-microvolt = <1800000>;
> +				regulator-always-on;
> +				op_mode = <1>; /* Normal Mode */
> +			};
> +
> +			ldo17_reg: LDO17 {
> +				regulator-name = "VDDIOAP_MMC012_28";
> +				regulator-min-microvolt = <2800000>;
> +				regulator-max-microvolt = <2800000>;
> +				op_mode = <1>; /* Normal Mode */
> +			};
> +
> +			/* Used by HSIC */
> +			ldo18_reg: LDO18 {
> +				regulator-name = "VDDIOPERI_28";
> +				regulator-min-microvolt = <3300000>;
> +				regulator-max-microvolt = <3300000>;
> +				regulator-always-on;
> +				op_mode = <1>; /* Normal Mode */
> +			};
> +
> +			ldo20_reg: LDO20 {
> +				regulator-name = "VDD28_CAM";
> +				regulator-min-microvolt = <1800000>;
> +				regulator-max-microvolt = <2800000>;
> +				op_mode = <1>; /* Normal Mode */
> +			};
> +
> +			ldo21_reg: LDO21 {
> +				regulator-name = "VDD28_AF";
> +				regulator-min-microvolt = <1800000>;
> +				regulator-max-microvolt = <2800000>;
> +				op_mode = <1>; /* Normal Mode */
> +			};
> +
> +			ldo22_reg: LDO22 {
> +				regulator-name = "VDDA28_2M";
> +				regulator-min-microvolt = <2800000>;
> +				regulator-max-microvolt = <2800000>;
> +				op_mode = <1>; /* Normal Mode */
> +			};
> +
> +			ldo23_reg: LDO23 {
> +				regulator-name = "VDD28_TF";
> +				regulator-min-microvolt = <2800000>;
> +				regulator-max-microvolt = <2800000>;
> +				op_mode = <1>; /* Normal Mode */
> +			};
> +
> +			ldo24_reg: LDO24 {
> +				regulator-name = "VDD33_A31";
> +				regulator-min-microvolt = <3300000>;
> +				regulator-max-microvolt = <3300000>;
> +				op_mode = <1>; /* Normal Mode */
> +			};
> +
> +			ldo25_reg: LDO25 {
> +				regulator-name = "VDD18_CAM";
> +				regulator-min-microvolt = <1800000>;
> +				regulator-max-microvolt = <1800000>;
> +				op_mode = <1>; /* Normal Mode */
> +			};
> +
> +			ldo26_reg: LDO26 {
> +				regulator-name = "VDD18_A31";
> +				regulator-min-microvolt = <1800000>;
> +				regulator-max-microvolt = <1800000>;
> +				op_mode = <1>; /* Normal Mode */
> +			};
> +
> +			ldo27_reg: LDO27 {
> +				regulator-name = "GPS_1V8";
> +				regulator-min-microvolt = <1800000>;
> +				regulator-max-microvolt = <1800000>;
> +				op_mode = <1>; /* Normal Mode */
> +			};
> +
> +			ldo28_reg: LDO28 {
> +				regulator-name = "DVDD12";
> +				regulator-min-microvolt = <1200000>;
> +				regulator-max-microvolt = <1200000>;
> +				op_mode = <1>; /* Normal Mode */
> +			};
> +
> +			buck1_reg: BUCK1 {
> +				regulator-name = "vdd_mif";
> +				regulator-min-microvolt = <850000>;
> +				regulator-max-microvolt	= <1100000>;
> +				regulator-always-on;
> +				regulator-boot-on;
> +				op_mode = <1>; /* Normal Mode */
> +			};
> +
> +			buck2_reg: BUCK2 {
> +				regulator-name = "vdd_arm";
> +				regulator-min-microvolt = <850000>;
> +				regulator-max-microvolt	= <1456250>;
> +				regulator-always-on;
> +				regulator-boot-on;
> +				op_mode = <1>; /* Normal Mode */
> +			};
> +
> +			buck3_reg: BUCK3 {
> +				regulator-name = "vdd_int";
> +				regulator-min-microvolt = <875000>;
> +				regulator-max-microvolt	= <1200000>;
> +				regulator-always-on;
> +				regulator-boot-on;
> +				op_mode = <1>; /* Normal Mode */
> +			};
> +
> +			buck4_reg: BUCK4 {
> +				regulator-name = "vdd_g3d";
> +				regulator-min-microvolt = <750000>;
> +				regulator-max-microvolt	= <1500000>;
> +				regulator-always-on;
> +				regulator-boot-on;
> +				op_mode = <1>; /* Normal Mode */
> +			};
> +
> +			buck5_reg: BUCK5 {
> +				regulator-name = "vdd_m12";
> +				regulator-min-microvolt = <750000>;
> +				regulator-max-microvolt	= <1500000>;
> +				regulator-always-on;
> +				regulator-boot-on;
> +				op_mode = <1>; /* Normal Mode */
> +			};
> +
> +			buck6_reg: BUCK6 {
> +				regulator-name = "vdd12_5m";
> +				regulator-min-microvolt = <750000>;
> +				regulator-max-microvolt	= <1500000>;
> +				regulator-always-on;
> +				regulator-boot-on;
> +				op_mode = <1>; /* Normal Mode */
> +			};
> +
> +			buck7_reg: BUCK7 {
> +				regulator-name = "pvdd_buck7";
> +				regulator-min-microvolt = <750000>;
> +				regulator-max-microvolt	= <2000000>;
> +				regulator-boot-on;
> +				regulator-always-on;
> +				op_mode = <1>; /* Normal Mode */
> +			};
> +
> +			buck8_reg: BUCK8 {
> +				regulator-name = "pvdd_buck8";
> +				regulator-min-microvolt = <750000>;
> +				regulator-max-microvolt	= <1500000>;
> +				regulator-boot-on;
> +				regulator-always-on;
> +				op_mode = <1>; /* Normal Mode */
> +			};
> +
> +			buck9_reg: BUCK9 {
> +				regulator-name = "vddf28_emmc";
> +				regulator-min-microvolt = <750000>;
> +				regulator-max-microvolt	= <3000000>;
> +				op_mode = <1>; /* Normal Mode */
> +			};
> +		};
> +	};
> +};
> +
> +&pinctrl_1 {
> +	hsic_reset: hsic-reset {
> +		samsung,pins = "gpm2-4";
> +		samsung,pin-function = <1>;
> +		samsung,pin-pud = <0>;
> +		samsung,pin-drv = <3>;
> +	};
> +};
> +
> +&mfc {
> +	samsung,mfc-r = <0x43000000 0x800000>;
> +	samsung,mfc-l = <0x51000000 0x800000>;
> +	status = "okay";
> +};

Since v4.8-rc1 MFC driver has been converted to generic reserved memory 
bindings,
so samsung,mfc-* properties are obsoleted and no longer used. If you 
want to use
MFC driver with reserved memory, please just add following line to your dts:
#include "exynos-mfc-reserved-memory.dtsi"

Please refer to dts of other boards for more examples.

> +
> +&mshc_0 {
> +	pinctrl-0 = <&sd4_clk &sd4_cmd &sd4_bus4 &sd4_bus8>;
> +	pinctrl-names = "default";
> +	status = "okay";
> +	vmmc-supply = <&buck9_reg>;
> +
> +	num-slots = <1>;
> +	broken-cd;
> +	card-detect-delay = <200>;
> +	samsung,dw-mshc-ciu-div = <3>;
> +	samsung,dw-mshc-sdr-timing = <2 3>;
> +	samsung,dw-mshc-ddr-timing = <1 2>;
> +	bus-width = <8>;
> +	cap-mmc-highspeed;
> +};
> +
> +&rtc {
> +	status = "okay";
> +};
> +
> +&hsotg {
> +	vusb_d-supply = <&ldo15_reg>;
> +	vusb_a-supply = <&ldo12_reg>;
> +};
> +
> +&watchdog {
> +	status = "okay";
> +};

Best regards
ayaka Aug. 22, 2016, 8:28 a.m. UTC | #2
Thank you
從我的 iPad 傳送

> Marek Szyprowski <m.szyprowski@samsung.com> 於 2016年8月22日 下午2:50 寫道:
> 
> Dear Randy,
> 
> 
>> On 2016-08-21 22:04, Randy Li wrote:
>> The TOPEET itop is a samsung exnynos 4412 core board, which have
>> two package versions. This patch add the support for SCP version.
>> 
>> Currently supported are USB3503A HSIC, USB OTG, eMMC, RTC and PMIC.
>> The future features are in the based board. Also MFC and watchdog
>> have been enabled.
>> 
>> Signed-off-by: Randy Li <ayaka@soulik.info>
>> ---
>>  arch/arm/boot/dts/exynos4412-itop-scp-core.dtsi | 434 ++++++++++++++++++++++++
>>  1 file changed, 434 insertions(+)
>>  create mode 100644 arch/arm/boot/dts/exynos4412-itop-scp-core.dtsi
>> 
>> diff --git a/arch/arm/boot/dts/exynos4412-itop-scp-core.dtsi b/arch/arm/boot/dts/exynos4412-itop-scp-core.dtsi
>> new file mode 100644
>> index 0000000..0860ee6
>> --- /dev/null
>> +++ b/arch/arm/boot/dts/exynos4412-itop-scp-core.dtsi
>> @@ -0,0 +1,434 @@
>> +/*
>> + * TOPEET's Exynos4412 based itop board device tree source
>> + *
>> + * Copyright (c) 2016 SUMOMO Computer Association
>> + *            https://www.sumomo.mobi
>> + *            Randy Li <ayaka@soulik.info>
>> + *            
>> + * Device tree source file for TOPEET iTop Exynos 4412 SCP package core
>> + * board which is based on Samsung's Exynos4412 SoC.
>> + *
>> + * This program is free software; you can redistribute it and/or modify
>> + * it under the terms of the GNU General Public License version 2 as
>> + * published by the Free Software Foundation.
>> +*/
>> +
>> +#include "exynos4412.dtsi"
>> +#include <dt-bindings/gpio/gpio.h>
>> +#include <dt-bindings/input/input.h>
>> +
>> +/ {
>> +    memory {
>> +        reg = <0x40000000 0x40000000>;
>> +    };
>> +
>> +    firmware@0203F000 {
>> +        compatible = "samsung,secure-firmware";
>> +        reg = <0x0203F000 0x1000>;
>> +    };
>> +
>> +    display-timings {
>> +        native-mode = <&timing0>;
>> +        timing0: timing {
>> +            clock-frequency = <47500000>;
>> +            hactive = <1024>;
>> +            vactive = <600>;
>> +            hfront-porch = <64>;
>> +            hback-porch = <16>;
>> +            hsync-len = <48>;
>> +            vback-porch = <64>;
>> +            vfront-porch = <16>;
>> +            vsync-len = <3>;
>> +        };
>> +    };
>> +
>> +    fixed-rate-clocks {
>> +        xxti {
>> +            compatible = "samsung,clock-xxti";
>> +            clock-frequency = <0>;
>> +        };
>> +
>> +        xusbxti {
>> +            compatible = "samsung,clock-xusbxti";
>> +            clock-frequency = <24000000>;
>> +        };
>> +    };
>> +
>> +    usb-hub {
>> +        compatible = "smsc,usb3503a";
>> +        reset-gpios = <&gpm2 4 GPIO_ACTIVE_LOW>;
>> +        connect-gpios = <&gpm3 3 GPIO_ACTIVE_HIGH>;
>> +        intn-gpios = <&gpx2 3 GPIO_ACTIVE_HIGH>;
>> +        pinctrl-names = "default";
>> +        pinctrl-0 = <&hsic_reset>;
>> +    };
>> +};
>> +
>> +&cpu0 {
>> +    cpu0-supply = <&buck2_reg>;
>> +};
>> +
>> +&i2c_1 {
>> +    #address-cells = <1>;
>> +    #size-cells = <0>;
>> +    samsung,i2c-sda-delay = <100>;
>> +    samsung,i2c-max-bus-freq = <400000>;
>> +    pinctrl-0 = <&i2c1_bus>;
>> +    pinctrl-names = "default";
>> +    status = "okay";
>> +
>> +    s5m8767_pmic@66 {
>> +        compatible = "samsung,s5m8767-pmic";
>> +        reg = <0x66>;
>> +
>> +        s5m8767,pmic-buck-default-dvs-idx = <3>;
>> +
>> +        s5m8767,pmic-buck-dvs-gpios = <&gpb 5 GPIO_ACTIVE_HIGH>,
>> +                         <&gpb 6 GPIO_ACTIVE_HIGH>,
>> +                         <&gpb 7 GPIO_ACTIVE_HIGH>;
>> +
>> +        s5m8767,pmic-buck-ds-gpios = <&gpm3 5 GPIO_ACTIVE_HIGH>,
>> +                        <&gpm3 6 GPIO_ACTIVE_HIGH>,
>> +                        <&gpm3 7 GPIO_ACTIVE_HIGH>;
>> +
>> +        /* VDD_ARM */
>> +        s5m8767,pmic-buck2-dvs-voltage = <1356250>, <1300000>,
>> +                         <1243750>, <1118750>,
>> +                         <1068750>, <1012500>,
>> +                         <956250>, <900000>;
>> +        /* VDD_INT */
>> +        s5m8767,pmic-buck3-dvs-voltage = <1000000>, <1000000>,
>> +                         <925000>, <925000>,
>> +                         <887500>, <887500>,
>> +                         <850000>, <850000>;
>> +        /* VDD_G3D */
>> +        s5m8767,pmic-buck4-dvs-voltage = <1081250>, <1081250>,
>> +                         <1025000>, <950000>,
>> +                         <918750>, <900000>,
>> +                         <875000>, <831250>;
>> +
>> +        regulators {
>> +            ldo1_reg: LDO1 {
>> +                regulator-name = "VDD_ALIVE";
>> +                regulator-min-microvolt = <1100000>;
>> +                regulator-max-microvolt = <1100000>;
>> +                regulator-always-on;
>> +                regulator-boot-on;
>> +                op_mode = <1>; /* Normal Mode */
>> +            };
>> +
>> +            /* SCP uses 1.5v, POP uses 1.2v */
>> +            ldo2_reg: LDO2 {
>> +                regulator-name = "VDDQ_M12";
>> +                regulator-min-microvolt = <1500000>;
>> +                regulator-max-microvolt = <1500000>;
>> +                regulator-always-on;
>> +                regulator-boot-on;
>> +                op_mode = <1>; /* Normal Mode */
>> +            };
>> +
>> +            ldo3_reg: LDO3 {
>> +                regulator-name = "VDDIOAP_18";
>> +                regulator-min-microvolt = <1800000>;
>> +                regulator-max-microvolt = <1800000>;
>> +                regulator-always-on;
>> +                op_mode = <1>; /* Normal Mode */
>> +            };
>> +
>> +            ldo4_reg: LDO4 {
>> +                regulator-name = "VDDQ_PRE";
>> +                regulator-min-microvolt = <1800000>;
>> +                regulator-max-microvolt = <1800000>;
>> +                regulator-always-on;
>> +                op_mode = <1>; /* Normal Mode */
>> +            };
>> +
>> +            ldo6_reg: LDO6 {
>> +                regulator-name = "VDD10_MPLL";
>> +                regulator-min-microvolt = <1000000>;
>> +                regulator-max-microvolt = <1000000>;
>> +                regulator-always-on;
>> +                op_mode = <1>; /* Normal Mode */
>> +            };
>> +
>> +            ldo7_reg: LDO7 {
>> +                regulator-name = "VDD10_XPLL";
>> +                regulator-min-microvolt = <1000000>;
>> +                regulator-max-microvolt = <1000000>;
>> +                regulator-always-on;
>> +                op_mode = <1>; /* Normal Mode */
>> +            };
>> +
>> +            ldo8_reg: LDO8 {
>> +                regulator-name = "VDD10_MIPI";
>> +                regulator-min-microvolt = <1000000>;
>> +                regulator-max-microvolt = <1000000>;
>> +                op_mode = <1>; /* Normal Mode */
>> +            };
>> +
>> +            ldo9_reg: LDO9 {
>> +                regulator-name = "VDD33_LCD";
>> +                regulator-min-microvolt = <3300000>;
>> +                regulator-max-microvolt = <3300000>;
>> +                op_mode = <1>; /* Normal Mode */
>> +            };
>> +
>> +            ldo10_reg: LDO10 {
>> +                regulator-name = "VDD18_MIPI";
>> +                regulator-min-microvolt = <1800000>;
>> +                regulator-max-microvolt = <1800000>;
>> +                op_mode = <1>; /* Normal Mode */
>> +            };
>> +
>> +            ldo11_reg: LDO11 {
>> +                regulator-name = "VDD18_ABB1";
>> +                regulator-min-microvolt = <1800000>;
>> +                regulator-max-microvolt = <1800000>;
>> +                regulator-always-on;
>> +                op_mode = <1>; /* Normal Mode */
>> +            };
>> +
>> +            ldo12_reg: LDO12 {
>> +                regulator-name = "VDD33_UOTG";
>> +                regulator-min-microvolt = <3300000>;
>> +                regulator-max-microvolt = <3300000>;
>> +                regulator-always-on;
>> +                op_mode = <1>; /* Normal Mode */
>> +            };
>> +
>> +            ldo13_reg: LDO13 {
>> +                regulator-name = "VDDIOPERI_18";
>> +                regulator-min-microvolt = <1800000>;
>> +                regulator-max-microvolt = <1800000>;
>> +                regulator-always-on;
>> +                op_mode = <1>; /* Normal Mode */
>> +            };
>> +
>> +            ldo14_reg: LDO14 {
>> +                regulator-name = "VDD18_ABB02";
>> +                regulator-min-microvolt = <1800000>;
>> +                regulator-max-microvolt = <1800000>;
>> +                regulator-always-on;
>> +                op_mode = <1>; /* Normal Mode */
>> +            };
>> +
>> +            ldo15_reg: LDO15 {
>> +                regulator-name = "VDD10_USH";
>> +                regulator-min-microvolt = <1000000>;
>> +                regulator-max-microvolt = <1000000>;
>> +                regulator-always-on;
>> +                op_mode = <1>; /* Normal Mode */
>> +            };
>> +
>> +            ldo16_reg: LDO16 {
>> +                regulator-name = "VDD18_HSIC";
>> +                regulator-min-microvolt = <1800000>;
>> +                regulator-max-microvolt = <1800000>;
>> +                regulator-always-on;
>> +                op_mode = <1>; /* Normal Mode */
>> +            };
>> +
>> +            ldo17_reg: LDO17 {
>> +                regulator-name = "VDDIOAP_MMC012_28";
>> +                regulator-min-microvolt = <2800000>;
>> +                regulator-max-microvolt = <2800000>;
>> +                op_mode = <1>; /* Normal Mode */
>> +            };
>> +
>> +            /* Used by HSIC */
>> +            ldo18_reg: LDO18 {
>> +                regulator-name = "VDDIOPERI_28";
>> +                regulator-min-microvolt = <3300000>;
>> +                regulator-max-microvolt = <3300000>;
>> +                regulator-always-on;
>> +                op_mode = <1>; /* Normal Mode */
>> +            };
>> +
>> +            ldo20_reg: LDO20 {
>> +                regulator-name = "VDD28_CAM";
>> +                regulator-min-microvolt = <1800000>;
>> +                regulator-max-microvolt = <2800000>;
>> +                op_mode = <1>; /* Normal Mode */
>> +            };
>> +
>> +            ldo21_reg: LDO21 {
>> +                regulator-name = "VDD28_AF";
>> +                regulator-min-microvolt = <1800000>;
>> +                regulator-max-microvolt = <2800000>;
>> +                op_mode = <1>; /* Normal Mode */
>> +            };
>> +
>> +            ldo22_reg: LDO22 {
>> +                regulator-name = "VDDA28_2M";
>> +                regulator-min-microvolt = <2800000>;
>> +                regulator-max-microvolt = <2800000>;
>> +                op_mode = <1>; /* Normal Mode */
>> +            };
>> +
>> +            ldo23_reg: LDO23 {
>> +                regulator-name = "VDD28_TF";
>> +                regulator-min-microvolt = <2800000>;
>> +                regulator-max-microvolt = <2800000>;
>> +                op_mode = <1>; /* Normal Mode */
>> +            };
>> +
>> +            ldo24_reg: LDO24 {
>> +                regulator-name = "VDD33_A31";
>> +                regulator-min-microvolt = <3300000>;
>> +                regulator-max-microvolt = <3300000>;
>> +                op_mode = <1>; /* Normal Mode */
>> +            };
>> +
>> +            ldo25_reg: LDO25 {
>> +                regulator-name = "VDD18_CAM";
>> +                regulator-min-microvolt = <1800000>;
>> +                regulator-max-microvolt = <1800000>;
>> +                op_mode = <1>; /* Normal Mode */
>> +            };
>> +
>> +            ldo26_reg: LDO26 {
>> +                regulator-name = "VDD18_A31";
>> +                regulator-min-microvolt = <1800000>;
>> +                regulator-max-microvolt = <1800000>;
>> +                op_mode = <1>; /* Normal Mode */
>> +            };
>> +
>> +            ldo27_reg: LDO27 {
>> +                regulator-name = "GPS_1V8";
>> +                regulator-min-microvolt = <1800000>;
>> +                regulator-max-microvolt = <1800000>;
>> +                op_mode = <1>; /* Normal Mode */
>> +            };
>> +
>> +            ldo28_reg: LDO28 {
>> +                regulator-name = "DVDD12";
>> +                regulator-min-microvolt = <1200000>;
>> +                regulator-max-microvolt = <1200000>;
>> +                op_mode = <1>; /* Normal Mode */
>> +            };
>> +
>> +            buck1_reg: BUCK1 {
>> +                regulator-name = "vdd_mif";
>> +                regulator-min-microvolt = <850000>;
>> +                regulator-max-microvolt    = <1100000>;
>> +                regulator-always-on;
>> +                regulator-boot-on;
>> +                op_mode = <1>; /* Normal Mode */
>> +            };
>> +
>> +            buck2_reg: BUCK2 {
>> +                regulator-name = "vdd_arm";
>> +                regulator-min-microvolt = <850000>;
>> +                regulator-max-microvolt    = <1456250>;
>> +                regulator-always-on;
>> +                regulator-boot-on;
>> +                op_mode = <1>; /* Normal Mode */
>> +            };
>> +
>> +            buck3_reg: BUCK3 {
>> +                regulator-name = "vdd_int";
>> +                regulator-min-microvolt = <875000>;
>> +                regulator-max-microvolt    = <1200000>;
>> +                regulator-always-on;
>> +                regulator-boot-on;
>> +                op_mode = <1>; /* Normal Mode */
>> +            };
>> +
>> +            buck4_reg: BUCK4 {
>> +                regulator-name = "vdd_g3d";
>> +                regulator-min-microvolt = <750000>;
>> +                regulator-max-microvolt    = <1500000>;
>> +                regulator-always-on;
>> +                regulator-boot-on;
>> +                op_mode = <1>; /* Normal Mode */
>> +            };
>> +
>> +            buck5_reg: BUCK5 {
>> +                regulator-name = "vdd_m12";
>> +                regulator-min-microvolt = <750000>;
>> +                regulator-max-microvolt    = <1500000>;
>> +                regulator-always-on;
>> +                regulator-boot-on;
>> +                op_mode = <1>; /* Normal Mode */
>> +            };
>> +
>> +            buck6_reg: BUCK6 {
>> +                regulator-name = "vdd12_5m";
>> +                regulator-min-microvolt = <750000>;
>> +                regulator-max-microvolt    = <1500000>;
>> +                regulator-always-on;
>> +                regulator-boot-on;
>> +                op_mode = <1>; /* Normal Mode */
>> +            };
>> +
>> +            buck7_reg: BUCK7 {
>> +                regulator-name = "pvdd_buck7";
>> +                regulator-min-microvolt = <750000>;
>> +                regulator-max-microvolt    = <2000000>;
>> +                regulator-boot-on;
>> +                regulator-always-on;
>> +                op_mode = <1>; /* Normal Mode */
>> +            };
>> +
>> +            buck8_reg: BUCK8 {
>> +                regulator-name = "pvdd_buck8";
>> +                regulator-min-microvolt = <750000>;
>> +                regulator-max-microvolt    = <1500000>;
>> +                regulator-boot-on;
>> +                regulator-always-on;
>> +                op_mode = <1>; /* Normal Mode */
>> +            };
>> +
>> +            buck9_reg: BUCK9 {
>> +                regulator-name = "vddf28_emmc";
>> +                regulator-min-microvolt = <750000>;
>> +                regulator-max-microvolt    = <3000000>;
>> +                op_mode = <1>; /* Normal Mode */
>> +            };
>> +        };
>> +    };
>> +};
>> +
>> +&pinctrl_1 {
>> +    hsic_reset: hsic-reset {
>> +        samsung,pins = "gpm2-4";
>> +        samsung,pin-function = <1>;
>> +        samsung,pin-pud = <0>;
>> +        samsung,pin-drv = <3>;
>> +    };
>> +};
>> +
>> +&mfc {
>> +    samsung,mfc-r = <0x43000000 0x800000>;
>> +    samsung,mfc-l = <0x51000000 0x800000>;
>> +    status = "okay";
>> +};
> 
> Since v4.8-rc1 MFC driver has been converted to generic reserved memory bindings,
> so samsung,mfc-* properties are obsoleted and no longer used. If you want to use
> MFC driver with reserved memory, please just add following line to your dts:
> #include "exynos-mfc-reserved-memory.dtsi"
> 
> Please refer to dts of other boards for more examples.
I see, I would also enabled the bus_mfc and mfc entry.
I notice the new introduce Exynos bus. I need some time to add support it. I will send a new version later time(maybe you have to wait this weekend, sorry about that).
> 
>> +
>> +&mshc_0 {
>> +    pinctrl-0 = <&sd4_clk &sd4_cmd &sd4_bus4 &sd4_bus8>;
>> +    pinctrl-names = "default";
>> +    status = "okay";
>> +    vmmc-supply = <&buck9_reg>;
>> +
>> +    num-slots = <1>;
>> +    broken-cd;
>> +    card-detect-delay = <200>;
>> +    samsung,dw-mshc-ciu-div = <3>;
>> +    samsung,dw-mshc-sdr-timing = <2 3>;
>> +    samsung,dw-mshc-ddr-timing = <1 2>;
>> +    bus-width = <8>;
>> +    cap-mmc-highspeed;
>> +};
>> +
>> +&rtc {
>> +    status = "okay";
>> +};
>> +
>> +&hsotg {
>> +    vusb_d-supply = <&ldo15_reg>;
>> +    vusb_a-supply = <&ldo12_reg>;
>> +};
>> +
>> +&watchdog {
>> +    status = "okay";
>> +};
> 
> Best regards
> -- 
> Marek Szyprowski, PhD
> Samsung R&D Institute Poland
ayaka Aug. 22, 2016, 2:18 p.m. UTC | #3
Changelog:
 - v2:
   - remove rtc node
     the clock source driver is not done yet.
   - add exynos-bus
   - fix the MFC

Randy Li (2):
  ARM: dts: Add TOPEET itop core board SCP package version
  ARM: dts: add TOPEET itop elite based board

 .../bindings/arm/samsung/samsung-boards.txt        |   3 +
 arch/arm/boot/dts/Makefile                         |   1 +
 arch/arm/boot/dts/exynos4412-itop-elite.dts        | 147 +++++++
 arch/arm/boot/dts/exynos4412-itop-scp-core.dtsi    | 472 +++++++++++++++++++++
 4 files changed, 623 insertions(+)
 create mode 100644 arch/arm/boot/dts/exynos4412-itop-elite.dts
 create mode 100644 arch/arm/boot/dts/exynos4412-itop-scp-core.dtsi
Chanwoo Choi Aug. 22, 2016, 2:45 p.m. UTC | #4
Hi,

2016-08-22 17:28 GMT+09:00 Ayaka <ayaka@soulik.info>:
>
> Thank you
> 從我的 iPad 傳送
>
>> Marek Szyprowski <m.szyprowski@samsung.com> 於 2016年8月22日 下午2:50 寫道:
>>
>> Dear Randy,
>>
>>
>>> On 2016-08-21 22:04, Randy Li wrote:
>>> The TOPEET itop is a samsung exnynos 4412 core board, which have
>>> two package versions. This patch add the support for SCP version.
>>>
>>> Currently supported are USB3503A HSIC, USB OTG, eMMC, RTC and PMIC.
>>> The future features are in the based board. Also MFC and watchdog
>>> have been enabled.
>>>
>>> Signed-off-by: Randy Li <ayaka@soulik.info>
>>> ---
>>>  arch/arm/boot/dts/exynos4412-itop-scp-core.dtsi | 434 ++++++++++++++++++++++++
>>>  1 file changed, 434 insertions(+)
>>>  create mode 100644 arch/arm/boot/dts/exynos4412-itop-scp-core.dtsi
>>>
>>> diff --git a/arch/arm/boot/dts/exynos4412-itop-scp-core.dtsi b/arch/arm/boot/dts/exynos4412-itop-scp-core.dtsi
>>> new file mode 100644
>>> index 0000000..0860ee6
>>> --- /dev/null
>>> +++ b/arch/arm/boot/dts/exynos4412-itop-scp-core.dtsi
>>> @@ -0,0 +1,434 @@
>>> +/*
>>> + * TOPEET's Exynos4412 based itop board device tree source
>>> + *
>>> + * Copyright (c) 2016 SUMOMO Computer Association
>>> + *            https://www.sumomo.mobi
>>> + *            Randy Li <ayaka@soulik.info>
>>> + *
>>> + * Device tree source file for TOPEET iTop Exynos 4412 SCP package core
>>> + * board which is based on Samsung's Exynos4412 SoC.
>>> + *
>>> + * This program is free software; you can redistribute it and/or modify
>>> + * it under the terms of the GNU General Public License version 2 as
>>> + * published by the Free Software Foundation.
>>> +*/
>>> +
>>> +#include "exynos4412.dtsi"
>>> +#include <dt-bindings/gpio/gpio.h>
>>> +#include <dt-bindings/input/input.h>
>>> +
>>> +/ {
>>> +    memory {
>>> +        reg = <0x40000000 0x40000000>;
>>> +    };
>>> +
>>> +    firmware@0203F000 {
>>> +        compatible = "samsung,secure-firmware";
>>> +        reg = <0x0203F000 0x1000>;
>>> +    };
>>> +
>>> +    display-timings {
>>> +        native-mode = <&timing0>;
>>> +        timing0: timing {
>>> +            clock-frequency = <47500000>;
>>> +            hactive = <1024>;
>>> +            vactive = <600>;
>>> +            hfront-porch = <64>;
>>> +            hback-porch = <16>;
>>> +            hsync-len = <48>;
>>> +            vback-porch = <64>;
>>> +            vfront-porch = <16>;
>>> +            vsync-len = <3>;
>>> +        };
>>> +    };
>>> +
>>> +    fixed-rate-clocks {
>>> +        xxti {
>>> +            compatible = "samsung,clock-xxti";
>>> +            clock-frequency = <0>;
>>> +        };
>>> +
>>> +        xusbxti {
>>> +            compatible = "samsung,clock-xusbxti";
>>> +            clock-frequency = <24000000>;
>>> +        };
>>> +    };
>>> +
>>> +    usb-hub {
>>> +        compatible = "smsc,usb3503a";
>>> +        reset-gpios = <&gpm2 4 GPIO_ACTIVE_LOW>;
>>> +        connect-gpios = <&gpm3 3 GPIO_ACTIVE_HIGH>;
>>> +        intn-gpios = <&gpx2 3 GPIO_ACTIVE_HIGH>;
>>> +        pinctrl-names = "default";
>>> +        pinctrl-0 = <&hsic_reset>;
>>> +    };
>>> +};
>>> +
>>> +&cpu0 {
>>> +    cpu0-supply = <&buck2_reg>;
>>> +};
>>> +
>>> +&i2c_1 {
>>> +    #address-cells = <1>;
>>> +    #size-cells = <0>;
>>> +    samsung,i2c-sda-delay = <100>;
>>> +    samsung,i2c-max-bus-freq = <400000>;
>>> +    pinctrl-0 = <&i2c1_bus>;
>>> +    pinctrl-names = "default";
>>> +    status = "okay";
>>> +
>>> +    s5m8767_pmic@66 {
>>> +        compatible = "samsung,s5m8767-pmic";
>>> +        reg = <0x66>;
>>> +
>>> +        s5m8767,pmic-buck-default-dvs-idx = <3>;
>>> +
>>> +        s5m8767,pmic-buck-dvs-gpios = <&gpb 5 GPIO_ACTIVE_HIGH>,
>>> +                         <&gpb 6 GPIO_ACTIVE_HIGH>,
>>> +                         <&gpb 7 GPIO_ACTIVE_HIGH>;
>>> +
>>> +        s5m8767,pmic-buck-ds-gpios = <&gpm3 5 GPIO_ACTIVE_HIGH>,
>>> +                        <&gpm3 6 GPIO_ACTIVE_HIGH>,
>>> +                        <&gpm3 7 GPIO_ACTIVE_HIGH>;
>>> +
>>> +        /* VDD_ARM */
>>> +        s5m8767,pmic-buck2-dvs-voltage = <1356250>, <1300000>,
>>> +                         <1243750>, <1118750>,
>>> +                         <1068750>, <1012500>,
>>> +                         <956250>, <900000>;
>>> +        /* VDD_INT */
>>> +        s5m8767,pmic-buck3-dvs-voltage = <1000000>, <1000000>,
>>> +                         <925000>, <925000>,
>>> +                         <887500>, <887500>,
>>> +                         <850000>, <850000>;
>>> +        /* VDD_G3D */
>>> +        s5m8767,pmic-buck4-dvs-voltage = <1081250>, <1081250>,
>>> +                         <1025000>, <950000>,
>>> +                         <918750>, <900000>,
>>> +                         <875000>, <831250>;
>>> +
>>> +        regulators {
>>> +            ldo1_reg: LDO1 {
>>> +                regulator-name = "VDD_ALIVE";
>>> +                regulator-min-microvolt = <1100000>;
>>> +                regulator-max-microvolt = <1100000>;
>>> +                regulator-always-on;
>>> +                regulator-boot-on;
>>> +                op_mode = <1>; /* Normal Mode */
>>> +            };
>>> +
>>> +            /* SCP uses 1.5v, POP uses 1.2v */
>>> +            ldo2_reg: LDO2 {
>>> +                regulator-name = "VDDQ_M12";
>>> +                regulator-min-microvolt = <1500000>;
>>> +                regulator-max-microvolt = <1500000>;
>>> +                regulator-always-on;
>>> +                regulator-boot-on;
>>> +                op_mode = <1>; /* Normal Mode */
>>> +            };
>>> +
>>> +            ldo3_reg: LDO3 {
>>> +                regulator-name = "VDDIOAP_18";
>>> +                regulator-min-microvolt = <1800000>;
>>> +                regulator-max-microvolt = <1800000>;
>>> +                regulator-always-on;
>>> +                op_mode = <1>; /* Normal Mode */
>>> +            };
>>> +
>>> +            ldo4_reg: LDO4 {
>>> +                regulator-name = "VDDQ_PRE";
>>> +                regulator-min-microvolt = <1800000>;
>>> +                regulator-max-microvolt = <1800000>;
>>> +                regulator-always-on;
>>> +                op_mode = <1>; /* Normal Mode */
>>> +            };
>>> +
>>> +            ldo6_reg: LDO6 {
>>> +                regulator-name = "VDD10_MPLL";
>>> +                regulator-min-microvolt = <1000000>;
>>> +                regulator-max-microvolt = <1000000>;
>>> +                regulator-always-on;
>>> +                op_mode = <1>; /* Normal Mode */
>>> +            };
>>> +
>>> +            ldo7_reg: LDO7 {
>>> +                regulator-name = "VDD10_XPLL";
>>> +                regulator-min-microvolt = <1000000>;
>>> +                regulator-max-microvolt = <1000000>;
>>> +                regulator-always-on;
>>> +                op_mode = <1>; /* Normal Mode */
>>> +            };
>>> +
>>> +            ldo8_reg: LDO8 {
>>> +                regulator-name = "VDD10_MIPI";
>>> +                regulator-min-microvolt = <1000000>;
>>> +                regulator-max-microvolt = <1000000>;
>>> +                op_mode = <1>; /* Normal Mode */
>>> +            };
>>> +
>>> +            ldo9_reg: LDO9 {
>>> +                regulator-name = "VDD33_LCD";
>>> +                regulator-min-microvolt = <3300000>;
>>> +                regulator-max-microvolt = <3300000>;
>>> +                op_mode = <1>; /* Normal Mode */
>>> +            };
>>> +
>>> +            ldo10_reg: LDO10 {
>>> +                regulator-name = "VDD18_MIPI";
>>> +                regulator-min-microvolt = <1800000>;
>>> +                regulator-max-microvolt = <1800000>;
>>> +                op_mode = <1>; /* Normal Mode */
>>> +            };
>>> +
>>> +            ldo11_reg: LDO11 {
>>> +                regulator-name = "VDD18_ABB1";
>>> +                regulator-min-microvolt = <1800000>;
>>> +                regulator-max-microvolt = <1800000>;
>>> +                regulator-always-on;
>>> +                op_mode = <1>; /* Normal Mode */
>>> +            };
>>> +
>>> +            ldo12_reg: LDO12 {
>>> +                regulator-name = "VDD33_UOTG";
>>> +                regulator-min-microvolt = <3300000>;
>>> +                regulator-max-microvolt = <3300000>;
>>> +                regulator-always-on;
>>> +                op_mode = <1>; /* Normal Mode */
>>> +            };
>>> +
>>> +            ldo13_reg: LDO13 {
>>> +                regulator-name = "VDDIOPERI_18";
>>> +                regulator-min-microvolt = <1800000>;
>>> +                regulator-max-microvolt = <1800000>;
>>> +                regulator-always-on;
>>> +                op_mode = <1>; /* Normal Mode */
>>> +            };
>>> +
>>> +            ldo14_reg: LDO14 {
>>> +                regulator-name = "VDD18_ABB02";
>>> +                regulator-min-microvolt = <1800000>;
>>> +                regulator-max-microvolt = <1800000>;
>>> +                regulator-always-on;
>>> +                op_mode = <1>; /* Normal Mode */
>>> +            };
>>> +
>>> +            ldo15_reg: LDO15 {
>>> +                regulator-name = "VDD10_USH";
>>> +                regulator-min-microvolt = <1000000>;
>>> +                regulator-max-microvolt = <1000000>;
>>> +                regulator-always-on;
>>> +                op_mode = <1>; /* Normal Mode */
>>> +            };
>>> +
>>> +            ldo16_reg: LDO16 {
>>> +                regulator-name = "VDD18_HSIC";
>>> +                regulator-min-microvolt = <1800000>;
>>> +                regulator-max-microvolt = <1800000>;
>>> +                regulator-always-on;
>>> +                op_mode = <1>; /* Normal Mode */
>>> +            };
>>> +
>>> +            ldo17_reg: LDO17 {
>>> +                regulator-name = "VDDIOAP_MMC012_28";
>>> +                regulator-min-microvolt = <2800000>;
>>> +                regulator-max-microvolt = <2800000>;
>>> +                op_mode = <1>; /* Normal Mode */
>>> +            };
>>> +
>>> +            /* Used by HSIC */
>>> +            ldo18_reg: LDO18 {
>>> +                regulator-name = "VDDIOPERI_28";
>>> +                regulator-min-microvolt = <3300000>;
>>> +                regulator-max-microvolt = <3300000>;
>>> +                regulator-always-on;
>>> +                op_mode = <1>; /* Normal Mode */
>>> +            };
>>> +
>>> +            ldo20_reg: LDO20 {
>>> +                regulator-name = "VDD28_CAM";
>>> +                regulator-min-microvolt = <1800000>;
>>> +                regulator-max-microvolt = <2800000>;
>>> +                op_mode = <1>; /* Normal Mode */
>>> +            };
>>> +
>>> +            ldo21_reg: LDO21 {
>>> +                regulator-name = "VDD28_AF";
>>> +                regulator-min-microvolt = <1800000>;
>>> +                regulator-max-microvolt = <2800000>;
>>> +                op_mode = <1>; /* Normal Mode */
>>> +            };
>>> +
>>> +            ldo22_reg: LDO22 {
>>> +                regulator-name = "VDDA28_2M";
>>> +                regulator-min-microvolt = <2800000>;
>>> +                regulator-max-microvolt = <2800000>;
>>> +                op_mode = <1>; /* Normal Mode */
>>> +            };
>>> +
>>> +            ldo23_reg: LDO23 {
>>> +                regulator-name = "VDD28_TF";
>>> +                regulator-min-microvolt = <2800000>;
>>> +                regulator-max-microvolt = <2800000>;
>>> +                op_mode = <1>; /* Normal Mode */
>>> +            };
>>> +
>>> +            ldo24_reg: LDO24 {
>>> +                regulator-name = "VDD33_A31";
>>> +                regulator-min-microvolt = <3300000>;
>>> +                regulator-max-microvolt = <3300000>;
>>> +                op_mode = <1>; /* Normal Mode */
>>> +            };
>>> +
>>> +            ldo25_reg: LDO25 {
>>> +                regulator-name = "VDD18_CAM";
>>> +                regulator-min-microvolt = <1800000>;
>>> +                regulator-max-microvolt = <1800000>;
>>> +                op_mode = <1>; /* Normal Mode */
>>> +            };
>>> +
>>> +            ldo26_reg: LDO26 {
>>> +                regulator-name = "VDD18_A31";
>>> +                regulator-min-microvolt = <1800000>;
>>> +                regulator-max-microvolt = <1800000>;
>>> +                op_mode = <1>; /* Normal Mode */
>>> +            };
>>> +
>>> +            ldo27_reg: LDO27 {
>>> +                regulator-name = "GPS_1V8";
>>> +                regulator-min-microvolt = <1800000>;
>>> +                regulator-max-microvolt = <1800000>;
>>> +                op_mode = <1>; /* Normal Mode */
>>> +            };
>>> +
>>> +            ldo28_reg: LDO28 {
>>> +                regulator-name = "DVDD12";
>>> +                regulator-min-microvolt = <1200000>;
>>> +                regulator-max-microvolt = <1200000>;
>>> +                op_mode = <1>; /* Normal Mode */
>>> +            };
>>> +
>>> +            buck1_reg: BUCK1 {
>>> +                regulator-name = "vdd_mif";
>>> +                regulator-min-microvolt = <850000>;
>>> +                regulator-max-microvolt    = <1100000>;
>>> +                regulator-always-on;
>>> +                regulator-boot-on;
>>> +                op_mode = <1>; /* Normal Mode */
>>> +            };
>>> +
>>> +            buck2_reg: BUCK2 {
>>> +                regulator-name = "vdd_arm";
>>> +                regulator-min-microvolt = <850000>;
>>> +                regulator-max-microvolt    = <1456250>;
>>> +                regulator-always-on;
>>> +                regulator-boot-on;
>>> +                op_mode = <1>; /* Normal Mode */
>>> +            };
>>> +
>>> +            buck3_reg: BUCK3 {
>>> +                regulator-name = "vdd_int";
>>> +                regulator-min-microvolt = <875000>;
>>> +                regulator-max-microvolt    = <1200000>;
>>> +                regulator-always-on;
>>> +                regulator-boot-on;
>>> +                op_mode = <1>; /* Normal Mode */
>>> +            };
>>> +
>>> +            buck4_reg: BUCK4 {
>>> +                regulator-name = "vdd_g3d";
>>> +                regulator-min-microvolt = <750000>;
>>> +                regulator-max-microvolt    = <1500000>;
>>> +                regulator-always-on;
>>> +                regulator-boot-on;
>>> +                op_mode = <1>; /* Normal Mode */
>>> +            };
>>> +
>>> +            buck5_reg: BUCK5 {
>>> +                regulator-name = "vdd_m12";
>>> +                regulator-min-microvolt = <750000>;
>>> +                regulator-max-microvolt    = <1500000>;
>>> +                regulator-always-on;
>>> +                regulator-boot-on;
>>> +                op_mode = <1>; /* Normal Mode */
>>> +            };
>>> +
>>> +            buck6_reg: BUCK6 {
>>> +                regulator-name = "vdd12_5m";
>>> +                regulator-min-microvolt = <750000>;
>>> +                regulator-max-microvolt    = <1500000>;
>>> +                regulator-always-on;
>>> +                regulator-boot-on;
>>> +                op_mode = <1>; /* Normal Mode */
>>> +            };
>>> +
>>> +            buck7_reg: BUCK7 {
>>> +                regulator-name = "pvdd_buck7";
>>> +                regulator-min-microvolt = <750000>;
>>> +                regulator-max-microvolt    = <2000000>;
>>> +                regulator-boot-on;
>>> +                regulator-always-on;
>>> +                op_mode = <1>; /* Normal Mode */
>>> +            };
>>> +
>>> +            buck8_reg: BUCK8 {
>>> +                regulator-name = "pvdd_buck8";
>>> +                regulator-min-microvolt = <750000>;
>>> +                regulator-max-microvolt    = <1500000>;
>>> +                regulator-boot-on;
>>> +                regulator-always-on;
>>> +                op_mode = <1>; /* Normal Mode */
>>> +            };
>>> +
>>> +            buck9_reg: BUCK9 {
>>> +                regulator-name = "vddf28_emmc";
>>> +                regulator-min-microvolt = <750000>;
>>> +                regulator-max-microvolt    = <3000000>;
>>> +                op_mode = <1>; /* Normal Mode */
>>> +            };
>>> +        };
>>> +    };
>>> +};
>>> +
>>> +&pinctrl_1 {
>>> +    hsic_reset: hsic-reset {
>>> +        samsung,pins = "gpm2-4";
>>> +        samsung,pin-function = <1>;
>>> +        samsung,pin-pud = <0>;
>>> +        samsung,pin-drv = <3>;
>>> +    };
>>> +};
>>> +
>>> +&mfc {
>>> +    samsung,mfc-r = <0x43000000 0x800000>;
>>> +    samsung,mfc-l = <0x51000000 0x800000>;
>>> +    status = "okay";
>>> +};
>>
>> Since v4.8-rc1 MFC driver has been converted to generic reserved memory bindings,
>> so samsung,mfc-* properties are obsoleted and no longer used. If you want to use
>> MFC driver with reserved memory, please just add following line to your dts:
>> #include "exynos-mfc-reserved-memory.dtsi"
>>
>> Please refer to dts of other boards for more examples.
> I see, I would also enabled the bus_mfc and mfc entry.
> I notice the new introduce Exynos bus. I need some time to add support it. I will send a new version later time(maybe you have to wait this weekend, sorry about that).

What is meaning of "new introduce Exynos bus"?
Could you explain it to me?

[snip]
ayaka Aug. 22, 2016, 2:49 p.m. UTC | #5
On 08/22/2016 10:45 PM, Chanwoo Choi wrote:
> Hi,
>
> 2016-08-22 17:28 GMT+09:00 Ayaka <ayaka@soulik.info>:
>> Thank you
>> 從我的 iPad 傳送
>>
>>> Marek Szyprowski <m.szyprowski@samsung.com> 於 2016年8月22日 下午2:50 寫道:
>>>
>>> Dear Randy,
>>>
>>>
>>>> On 2016-08-21 22:04, Randy Li wrote:
>>>> The TOPEET itop is a samsung exnynos 4412 core board, which have
>>>> two package versions. This patch add the support for SCP version.
>>>>
>>>> Currently supported are USB3503A HSIC, USB OTG, eMMC, RTC and PMIC.
>>>> The future features are in the based board. Also MFC and watchdog
>>>> have been enabled.
>>>>
>>>> Signed-off-by: Randy Li <ayaka@soulik.info>
>>>> ---
>>>>   arch/arm/boot/dts/exynos4412-itop-scp-core.dtsi | 434 ++++++++++++++++++++++++
>>>>   1 file changed, 434 insertions(+)
>>>>   create mode 100644 arch/arm/boot/dts/exynos4412-itop-scp-core.dtsi
>>>>
>>>> diff --git a/arch/arm/boot/dts/exynos4412-itop-scp-core.dtsi b/arch/arm/boot/dts/exynos4412-itop-scp-core.dtsi
>>>> new file mode 100644
>>>> index 0000000..0860ee6
>>>> --- /dev/null
>>>> +++ b/arch/arm/boot/dts/exynos4412-itop-scp-core.dtsi
>>>> @@ -0,0 +1,434 @@
>>>> +/*
>>>> + * TOPEET's Exynos4412 based itop board device tree source
>>>> + *
>>>> + * Copyright (c) 2016 SUMOMO Computer Association
>>>> + *            https://www.sumomo.mobi
>>>> + *            Randy Li <ayaka@soulik.info>
>>>> + *
>>>> + * Device tree source file for TOPEET iTop Exynos 4412 SCP package core
>>>> + * board which is based on Samsung's Exynos4412 SoC.
>>>> + *
>>>> + * This program is free software; you can redistribute it and/or modify
>>>> + * it under the terms of the GNU General Public License version 2 as
>>>> + * published by the Free Software Foundation.
>>>> +*/
>>>> +
>>>> +#include "exynos4412.dtsi"
>>>> +#include <dt-bindings/gpio/gpio.h>
>>>> +#include <dt-bindings/input/input.h>
>>>> +
>>>> +/ {
>>>> +    memory {
>>>> +        reg = <0x40000000 0x40000000>;
>>>> +    };
>>>> +
>>>> +    firmware@0203F000 {
>>>> +        compatible = "samsung,secure-firmware";
>>>> +        reg = <0x0203F000 0x1000>;
>>>> +    };
>>>> +
>>>> +    display-timings {
>>>> +        native-mode = <&timing0>;
>>>> +        timing0: timing {
>>>> +            clock-frequency = <47500000>;
>>>> +            hactive = <1024>;
>>>> +            vactive = <600>;
>>>> +            hfront-porch = <64>;
>>>> +            hback-porch = <16>;
>>>> +            hsync-len = <48>;
>>>> +            vback-porch = <64>;
>>>> +            vfront-porch = <16>;
>>>> +            vsync-len = <3>;
>>>> +        };
>>>> +    };
>>>> +
>>>> +    fixed-rate-clocks {
>>>> +        xxti {
>>>> +            compatible = "samsung,clock-xxti";
>>>> +            clock-frequency = <0>;
>>>> +        };
>>>> +
>>>> +        xusbxti {
>>>> +            compatible = "samsung,clock-xusbxti";
>>>> +            clock-frequency = <24000000>;
>>>> +        };
>>>> +    };
>>>> +
>>>> +    usb-hub {
>>>> +        compatible = "smsc,usb3503a";
>>>> +        reset-gpios = <&gpm2 4 GPIO_ACTIVE_LOW>;
>>>> +        connect-gpios = <&gpm3 3 GPIO_ACTIVE_HIGH>;
>>>> +        intn-gpios = <&gpx2 3 GPIO_ACTIVE_HIGH>;
>>>> +        pinctrl-names = "default";
>>>> +        pinctrl-0 = <&hsic_reset>;
>>>> +    };
>>>> +};
>>>> +
>>>> +&cpu0 {
>>>> +    cpu0-supply = <&buck2_reg>;
>>>> +};
>>>> +
>>>> +&i2c_1 {
>>>> +    #address-cells = <1>;
>>>> +    #size-cells = <0>;
>>>> +    samsung,i2c-sda-delay = <100>;
>>>> +    samsung,i2c-max-bus-freq = <400000>;
>>>> +    pinctrl-0 = <&i2c1_bus>;
>>>> +    pinctrl-names = "default";
>>>> +    status = "okay";
>>>> +
>>>> +    s5m8767_pmic@66 {
>>>> +        compatible = "samsung,s5m8767-pmic";
>>>> +        reg = <0x66>;
>>>> +
>>>> +        s5m8767,pmic-buck-default-dvs-idx = <3>;
>>>> +
>>>> +        s5m8767,pmic-buck-dvs-gpios = <&gpb 5 GPIO_ACTIVE_HIGH>,
>>>> +                         <&gpb 6 GPIO_ACTIVE_HIGH>,
>>>> +                         <&gpb 7 GPIO_ACTIVE_HIGH>;
>>>> +
>>>> +        s5m8767,pmic-buck-ds-gpios = <&gpm3 5 GPIO_ACTIVE_HIGH>,
>>>> +                        <&gpm3 6 GPIO_ACTIVE_HIGH>,
>>>> +                        <&gpm3 7 GPIO_ACTIVE_HIGH>;
>>>> +
>>>> +        /* VDD_ARM */
>>>> +        s5m8767,pmic-buck2-dvs-voltage = <1356250>, <1300000>,
>>>> +                         <1243750>, <1118750>,
>>>> +                         <1068750>, <1012500>,
>>>> +                         <956250>, <900000>;
>>>> +        /* VDD_INT */
>>>> +        s5m8767,pmic-buck3-dvs-voltage = <1000000>, <1000000>,
>>>> +                         <925000>, <925000>,
>>>> +                         <887500>, <887500>,
>>>> +                         <850000>, <850000>;
>>>> +        /* VDD_G3D */
>>>> +        s5m8767,pmic-buck4-dvs-voltage = <1081250>, <1081250>,
>>>> +                         <1025000>, <950000>,
>>>> +                         <918750>, <900000>,
>>>> +                         <875000>, <831250>;
>>>> +
>>>> +        regulators {
>>>> +            ldo1_reg: LDO1 {
>>>> +                regulator-name = "VDD_ALIVE";
>>>> +                regulator-min-microvolt = <1100000>;
>>>> +                regulator-max-microvolt = <1100000>;
>>>> +                regulator-always-on;
>>>> +                regulator-boot-on;
>>>> +                op_mode = <1>; /* Normal Mode */
>>>> +            };
>>>> +
>>>> +            /* SCP uses 1.5v, POP uses 1.2v */
>>>> +            ldo2_reg: LDO2 {
>>>> +                regulator-name = "VDDQ_M12";
>>>> +                regulator-min-microvolt = <1500000>;
>>>> +                regulator-max-microvolt = <1500000>;
>>>> +                regulator-always-on;
>>>> +                regulator-boot-on;
>>>> +                op_mode = <1>; /* Normal Mode */
>>>> +            };
>>>> +
>>>> +            ldo3_reg: LDO3 {
>>>> +                regulator-name = "VDDIOAP_18";
>>>> +                regulator-min-microvolt = <1800000>;
>>>> +                regulator-max-microvolt = <1800000>;
>>>> +                regulator-always-on;
>>>> +                op_mode = <1>; /* Normal Mode */
>>>> +            };
>>>> +
>>>> +            ldo4_reg: LDO4 {
>>>> +                regulator-name = "VDDQ_PRE";
>>>> +                regulator-min-microvolt = <1800000>;
>>>> +                regulator-max-microvolt = <1800000>;
>>>> +                regulator-always-on;
>>>> +                op_mode = <1>; /* Normal Mode */
>>>> +            };
>>>> +
>>>> +            ldo6_reg: LDO6 {
>>>> +                regulator-name = "VDD10_MPLL";
>>>> +                regulator-min-microvolt = <1000000>;
>>>> +                regulator-max-microvolt = <1000000>;
>>>> +                regulator-always-on;
>>>> +                op_mode = <1>; /* Normal Mode */
>>>> +            };
>>>> +
>>>> +            ldo7_reg: LDO7 {
>>>> +                regulator-name = "VDD10_XPLL";
>>>> +                regulator-min-microvolt = <1000000>;
>>>> +                regulator-max-microvolt = <1000000>;
>>>> +                regulator-always-on;
>>>> +                op_mode = <1>; /* Normal Mode */
>>>> +            };
>>>> +
>>>> +            ldo8_reg: LDO8 {
>>>> +                regulator-name = "VDD10_MIPI";
>>>> +                regulator-min-microvolt = <1000000>;
>>>> +                regulator-max-microvolt = <1000000>;
>>>> +                op_mode = <1>; /* Normal Mode */
>>>> +            };
>>>> +
>>>> +            ldo9_reg: LDO9 {
>>>> +                regulator-name = "VDD33_LCD";
>>>> +                regulator-min-microvolt = <3300000>;
>>>> +                regulator-max-microvolt = <3300000>;
>>>> +                op_mode = <1>; /* Normal Mode */
>>>> +            };
>>>> +
>>>> +            ldo10_reg: LDO10 {
>>>> +                regulator-name = "VDD18_MIPI";
>>>> +                regulator-min-microvolt = <1800000>;
>>>> +                regulator-max-microvolt = <1800000>;
>>>> +                op_mode = <1>; /* Normal Mode */
>>>> +            };
>>>> +
>>>> +            ldo11_reg: LDO11 {
>>>> +                regulator-name = "VDD18_ABB1";
>>>> +                regulator-min-microvolt = <1800000>;
>>>> +                regulator-max-microvolt = <1800000>;
>>>> +                regulator-always-on;
>>>> +                op_mode = <1>; /* Normal Mode */
>>>> +            };
>>>> +
>>>> +            ldo12_reg: LDO12 {
>>>> +                regulator-name = "VDD33_UOTG";
>>>> +                regulator-min-microvolt = <3300000>;
>>>> +                regulator-max-microvolt = <3300000>;
>>>> +                regulator-always-on;
>>>> +                op_mode = <1>; /* Normal Mode */
>>>> +            };
>>>> +
>>>> +            ldo13_reg: LDO13 {
>>>> +                regulator-name = "VDDIOPERI_18";
>>>> +                regulator-min-microvolt = <1800000>;
>>>> +                regulator-max-microvolt = <1800000>;
>>>> +                regulator-always-on;
>>>> +                op_mode = <1>; /* Normal Mode */
>>>> +            };
>>>> +
>>>> +            ldo14_reg: LDO14 {
>>>> +                regulator-name = "VDD18_ABB02";
>>>> +                regulator-min-microvolt = <1800000>;
>>>> +                regulator-max-microvolt = <1800000>;
>>>> +                regulator-always-on;
>>>> +                op_mode = <1>; /* Normal Mode */
>>>> +            };
>>>> +
>>>> +            ldo15_reg: LDO15 {
>>>> +                regulator-name = "VDD10_USH";
>>>> +                regulator-min-microvolt = <1000000>;
>>>> +                regulator-max-microvolt = <1000000>;
>>>> +                regulator-always-on;
>>>> +                op_mode = <1>; /* Normal Mode */
>>>> +            };
>>>> +
>>>> +            ldo16_reg: LDO16 {
>>>> +                regulator-name = "VDD18_HSIC";
>>>> +                regulator-min-microvolt = <1800000>;
>>>> +                regulator-max-microvolt = <1800000>;
>>>> +                regulator-always-on;
>>>> +                op_mode = <1>; /* Normal Mode */
>>>> +            };
>>>> +
>>>> +            ldo17_reg: LDO17 {
>>>> +                regulator-name = "VDDIOAP_MMC012_28";
>>>> +                regulator-min-microvolt = <2800000>;
>>>> +                regulator-max-microvolt = <2800000>;
>>>> +                op_mode = <1>; /* Normal Mode */
>>>> +            };
>>>> +
>>>> +            /* Used by HSIC */
>>>> +            ldo18_reg: LDO18 {
>>>> +                regulator-name = "VDDIOPERI_28";
>>>> +                regulator-min-microvolt = <3300000>;
>>>> +                regulator-max-microvolt = <3300000>;
>>>> +                regulator-always-on;
>>>> +                op_mode = <1>; /* Normal Mode */
>>>> +            };
>>>> +
>>>> +            ldo20_reg: LDO20 {
>>>> +                regulator-name = "VDD28_CAM";
>>>> +                regulator-min-microvolt = <1800000>;
>>>> +                regulator-max-microvolt = <2800000>;
>>>> +                op_mode = <1>; /* Normal Mode */
>>>> +            };
>>>> +
>>>> +            ldo21_reg: LDO21 {
>>>> +                regulator-name = "VDD28_AF";
>>>> +                regulator-min-microvolt = <1800000>;
>>>> +                regulator-max-microvolt = <2800000>;
>>>> +                op_mode = <1>; /* Normal Mode */
>>>> +            };
>>>> +
>>>> +            ldo22_reg: LDO22 {
>>>> +                regulator-name = "VDDA28_2M";
>>>> +                regulator-min-microvolt = <2800000>;
>>>> +                regulator-max-microvolt = <2800000>;
>>>> +                op_mode = <1>; /* Normal Mode */
>>>> +            };
>>>> +
>>>> +            ldo23_reg: LDO23 {
>>>> +                regulator-name = "VDD28_TF";
>>>> +                regulator-min-microvolt = <2800000>;
>>>> +                regulator-max-microvolt = <2800000>;
>>>> +                op_mode = <1>; /* Normal Mode */
>>>> +            };
>>>> +
>>>> +            ldo24_reg: LDO24 {
>>>> +                regulator-name = "VDD33_A31";
>>>> +                regulator-min-microvolt = <3300000>;
>>>> +                regulator-max-microvolt = <3300000>;
>>>> +                op_mode = <1>; /* Normal Mode */
>>>> +            };
>>>> +
>>>> +            ldo25_reg: LDO25 {
>>>> +                regulator-name = "VDD18_CAM";
>>>> +                regulator-min-microvolt = <1800000>;
>>>> +                regulator-max-microvolt = <1800000>;
>>>> +                op_mode = <1>; /* Normal Mode */
>>>> +            };
>>>> +
>>>> +            ldo26_reg: LDO26 {
>>>> +                regulator-name = "VDD18_A31";
>>>> +                regulator-min-microvolt = <1800000>;
>>>> +                regulator-max-microvolt = <1800000>;
>>>> +                op_mode = <1>; /* Normal Mode */
>>>> +            };
>>>> +
>>>> +            ldo27_reg: LDO27 {
>>>> +                regulator-name = "GPS_1V8";
>>>> +                regulator-min-microvolt = <1800000>;
>>>> +                regulator-max-microvolt = <1800000>;
>>>> +                op_mode = <1>; /* Normal Mode */
>>>> +            };
>>>> +
>>>> +            ldo28_reg: LDO28 {
>>>> +                regulator-name = "DVDD12";
>>>> +                regulator-min-microvolt = <1200000>;
>>>> +                regulator-max-microvolt = <1200000>;
>>>> +                op_mode = <1>; /* Normal Mode */
>>>> +            };
>>>> +
>>>> +            buck1_reg: BUCK1 {
>>>> +                regulator-name = "vdd_mif";
>>>> +                regulator-min-microvolt = <850000>;
>>>> +                regulator-max-microvolt    = <1100000>;
>>>> +                regulator-always-on;
>>>> +                regulator-boot-on;
>>>> +                op_mode = <1>; /* Normal Mode */
>>>> +            };
>>>> +
>>>> +            buck2_reg: BUCK2 {
>>>> +                regulator-name = "vdd_arm";
>>>> +                regulator-min-microvolt = <850000>;
>>>> +                regulator-max-microvolt    = <1456250>;
>>>> +                regulator-always-on;
>>>> +                regulator-boot-on;
>>>> +                op_mode = <1>; /* Normal Mode */
>>>> +            };
>>>> +
>>>> +            buck3_reg: BUCK3 {
>>>> +                regulator-name = "vdd_int";
>>>> +                regulator-min-microvolt = <875000>;
>>>> +                regulator-max-microvolt    = <1200000>;
>>>> +                regulator-always-on;
>>>> +                regulator-boot-on;
>>>> +                op_mode = <1>; /* Normal Mode */
>>>> +            };
>>>> +
>>>> +            buck4_reg: BUCK4 {
>>>> +                regulator-name = "vdd_g3d";
>>>> +                regulator-min-microvolt = <750000>;
>>>> +                regulator-max-microvolt    = <1500000>;
>>>> +                regulator-always-on;
>>>> +                regulator-boot-on;
>>>> +                op_mode = <1>; /* Normal Mode */
>>>> +            };
>>>> +
>>>> +            buck5_reg: BUCK5 {
>>>> +                regulator-name = "vdd_m12";
>>>> +                regulator-min-microvolt = <750000>;
>>>> +                regulator-max-microvolt    = <1500000>;
>>>> +                regulator-always-on;
>>>> +                regulator-boot-on;
>>>> +                op_mode = <1>; /* Normal Mode */
>>>> +            };
>>>> +
>>>> +            buck6_reg: BUCK6 {
>>>> +                regulator-name = "vdd12_5m";
>>>> +                regulator-min-microvolt = <750000>;
>>>> +                regulator-max-microvolt    = <1500000>;
>>>> +                regulator-always-on;
>>>> +                regulator-boot-on;
>>>> +                op_mode = <1>; /* Normal Mode */
>>>> +            };
>>>> +
>>>> +            buck7_reg: BUCK7 {
>>>> +                regulator-name = "pvdd_buck7";
>>>> +                regulator-min-microvolt = <750000>;
>>>> +                regulator-max-microvolt    = <2000000>;
>>>> +                regulator-boot-on;
>>>> +                regulator-always-on;
>>>> +                op_mode = <1>; /* Normal Mode */
>>>> +            };
>>>> +
>>>> +            buck8_reg: BUCK8 {
>>>> +                regulator-name = "pvdd_buck8";
>>>> +                regulator-min-microvolt = <750000>;
>>>> +                regulator-max-microvolt    = <1500000>;
>>>> +                regulator-boot-on;
>>>> +                regulator-always-on;
>>>> +                op_mode = <1>; /* Normal Mode */
>>>> +            };
>>>> +
>>>> +            buck9_reg: BUCK9 {
>>>> +                regulator-name = "vddf28_emmc";
>>>> +                regulator-min-microvolt = <750000>;
>>>> +                regulator-max-microvolt    = <3000000>;
>>>> +                op_mode = <1>; /* Normal Mode */
>>>> +            };
>>>> +        };
>>>> +    };
>>>> +};
>>>> +
>>>> +&pinctrl_1 {
>>>> +    hsic_reset: hsic-reset {
>>>> +        samsung,pins = "gpm2-4";
>>>> +        samsung,pin-function = <1>;
>>>> +        samsung,pin-pud = <0>;
>>>> +        samsung,pin-drv = <3>;
>>>> +    };
>>>> +};
>>>> +
>>>> +&mfc {
>>>> +    samsung,mfc-r = <0x43000000 0x800000>;
>>>> +    samsung,mfc-l = <0x51000000 0x800000>;
>>>> +    status = "okay";
>>>> +};
>>> Since v4.8-rc1 MFC driver has been converted to generic reserved memory bindings,
>>> so samsung,mfc-* properties are obsoleted and no longer used. If you want to use
>>> MFC driver with reserved memory, please just add following line to your dts:
>>> #include "exynos-mfc-reserved-memory.dtsi"
>>>
>>> Please refer to dts of other boards for more examples.
>> I see, I would also enabled the bus_mfc and mfc entry.
>> I notice the new introduce Exynos bus. I need some time to add support it. I will send a new version later time(maybe you have to wait this weekend, sorry about that).
> What is meaning of "new introduce Exynos bus"?
Generic Exynos Bus frequency device
> Could you explain it to me?
It seems not very hard, I  have sent new dts. But I am not sure I 
understand it. For example I don't that C2C, PERIR and FSYS used for.
>
> [snip]
>
diff mbox

Patch

diff --git a/arch/arm/boot/dts/exynos4412-itop-scp-core.dtsi b/arch/arm/boot/dts/exynos4412-itop-scp-core.dtsi
new file mode 100644
index 0000000..0860ee6
--- /dev/null
+++ b/arch/arm/boot/dts/exynos4412-itop-scp-core.dtsi
@@ -0,0 +1,434 @@ 
+/*
+ * TOPEET's Exynos4412 based itop board device tree source
+ *
+ * Copyright (c) 2016 SUMOMO Computer Association
+ *			https://www.sumomo.mobi
+ *			Randy Li <ayaka@soulik.info>
+ *			
+ * Device tree source file for TOPEET iTop Exynos 4412 SCP package core 
+ * board which is based on Samsung's Exynos4412 SoC.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+*/
+
+#include "exynos4412.dtsi"
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+
+/ {
+	memory {
+		reg = <0x40000000 0x40000000>;
+	};
+
+	firmware@0203F000 {
+		compatible = "samsung,secure-firmware";
+		reg = <0x0203F000 0x1000>;
+	};
+
+	display-timings {
+		native-mode = <&timing0>;
+		timing0: timing {
+			clock-frequency = <47500000>;
+			hactive = <1024>;
+			vactive = <600>;
+			hfront-porch = <64>;
+			hback-porch = <16>;
+			hsync-len = <48>;
+			vback-porch = <64>;
+			vfront-porch = <16>;
+			vsync-len = <3>;
+		};
+	};
+
+	fixed-rate-clocks {
+		xxti {
+			compatible = "samsung,clock-xxti";
+			clock-frequency = <0>;
+		};
+
+		xusbxti {
+			compatible = "samsung,clock-xusbxti";
+			clock-frequency = <24000000>;
+		};
+	};
+
+	usb-hub {
+		compatible = "smsc,usb3503a";
+		reset-gpios = <&gpm2 4 GPIO_ACTIVE_LOW>;
+		connect-gpios = <&gpm3 3 GPIO_ACTIVE_HIGH>;
+		intn-gpios = <&gpx2 3 GPIO_ACTIVE_HIGH>;
+		pinctrl-names = "default";
+		pinctrl-0 = <&hsic_reset>;
+	};
+};
+
+&cpu0 {
+	cpu0-supply = <&buck2_reg>;
+};
+
+&i2c_1 {
+	#address-cells = <1>;
+	#size-cells = <0>;
+	samsung,i2c-sda-delay = <100>;
+	samsung,i2c-max-bus-freq = <400000>;
+	pinctrl-0 = <&i2c1_bus>;
+	pinctrl-names = "default";
+	status = "okay";
+
+	s5m8767_pmic@66 {
+		compatible = "samsung,s5m8767-pmic";
+		reg = <0x66>;
+
+		s5m8767,pmic-buck-default-dvs-idx = <3>;
+
+		s5m8767,pmic-buck-dvs-gpios = <&gpb 5 GPIO_ACTIVE_HIGH>,
+						 <&gpb 6 GPIO_ACTIVE_HIGH>,
+						 <&gpb 7 GPIO_ACTIVE_HIGH>;
+
+		s5m8767,pmic-buck-ds-gpios = <&gpm3 5 GPIO_ACTIVE_HIGH>,
+						<&gpm3 6 GPIO_ACTIVE_HIGH>,
+						<&gpm3 7 GPIO_ACTIVE_HIGH>;
+
+		/* VDD_ARM */
+		s5m8767,pmic-buck2-dvs-voltage = <1356250>, <1300000>,
+						 <1243750>, <1118750>,
+						 <1068750>, <1012500>,
+						 <956250>, <900000>;
+		/* VDD_INT */
+		s5m8767,pmic-buck3-dvs-voltage = <1000000>, <1000000>,
+						 <925000>, <925000>,
+						 <887500>, <887500>,
+						 <850000>, <850000>;
+		/* VDD_G3D */
+		s5m8767,pmic-buck4-dvs-voltage = <1081250>, <1081250>,
+						 <1025000>, <950000>,
+						 <918750>, <900000>,
+						 <875000>, <831250>;
+
+		regulators {
+			ldo1_reg: LDO1 {
+				regulator-name = "VDD_ALIVE";
+				regulator-min-microvolt = <1100000>;
+				regulator-max-microvolt = <1100000>;
+				regulator-always-on;
+				regulator-boot-on;
+				op_mode = <1>; /* Normal Mode */
+			};
+
+			/* SCP uses 1.5v, POP uses 1.2v */
+			ldo2_reg: LDO2 {
+				regulator-name = "VDDQ_M12";
+				regulator-min-microvolt = <1500000>;
+				regulator-max-microvolt = <1500000>;
+				regulator-always-on;
+				regulator-boot-on;
+				op_mode = <1>; /* Normal Mode */
+			};
+
+			ldo3_reg: LDO3 {
+				regulator-name = "VDDIOAP_18";
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <1800000>;
+				regulator-always-on;
+				op_mode = <1>; /* Normal Mode */
+			};
+
+			ldo4_reg: LDO4 {
+				regulator-name = "VDDQ_PRE";
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <1800000>;
+				regulator-always-on;
+				op_mode = <1>; /* Normal Mode */
+			};
+
+			ldo6_reg: LDO6 {
+				regulator-name = "VDD10_MPLL";
+				regulator-min-microvolt = <1000000>;
+				regulator-max-microvolt = <1000000>;
+				regulator-always-on;
+				op_mode = <1>; /* Normal Mode */
+			};
+
+			ldo7_reg: LDO7 {
+				regulator-name = "VDD10_XPLL";
+				regulator-min-microvolt = <1000000>;
+				regulator-max-microvolt = <1000000>;
+				regulator-always-on;
+				op_mode = <1>; /* Normal Mode */
+			};
+
+			ldo8_reg: LDO8 {
+				regulator-name = "VDD10_MIPI";
+				regulator-min-microvolt = <1000000>;
+				regulator-max-microvolt = <1000000>;
+				op_mode = <1>; /* Normal Mode */
+			};
+
+			ldo9_reg: LDO9 {
+				regulator-name = "VDD33_LCD";
+				regulator-min-microvolt = <3300000>;
+				regulator-max-microvolt = <3300000>;
+				op_mode = <1>; /* Normal Mode */
+			};
+
+			ldo10_reg: LDO10 {
+				regulator-name = "VDD18_MIPI";
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <1800000>;
+				op_mode = <1>; /* Normal Mode */
+			};
+
+			ldo11_reg: LDO11 {
+				regulator-name = "VDD18_ABB1";
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <1800000>;
+				regulator-always-on;
+				op_mode = <1>; /* Normal Mode */
+			};
+
+			ldo12_reg: LDO12 {
+				regulator-name = "VDD33_UOTG";
+				regulator-min-microvolt = <3300000>;
+				regulator-max-microvolt = <3300000>;
+				regulator-always-on;
+				op_mode = <1>; /* Normal Mode */
+			};
+
+			ldo13_reg: LDO13 {
+				regulator-name = "VDDIOPERI_18";
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <1800000>;
+				regulator-always-on;
+				op_mode = <1>; /* Normal Mode */
+			};
+
+			ldo14_reg: LDO14 {
+				regulator-name = "VDD18_ABB02";
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <1800000>;
+				regulator-always-on;
+				op_mode = <1>; /* Normal Mode */
+			};
+
+			ldo15_reg: LDO15 {
+				regulator-name = "VDD10_USH";
+				regulator-min-microvolt = <1000000>;
+				regulator-max-microvolt = <1000000>;
+				regulator-always-on;
+				op_mode = <1>; /* Normal Mode */
+			};
+
+			ldo16_reg: LDO16 {
+				regulator-name = "VDD18_HSIC";
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <1800000>;
+				regulator-always-on;
+				op_mode = <1>; /* Normal Mode */
+			};
+
+			ldo17_reg: LDO17 {
+				regulator-name = "VDDIOAP_MMC012_28";
+				regulator-min-microvolt = <2800000>;
+				regulator-max-microvolt = <2800000>;
+				op_mode = <1>; /* Normal Mode */
+			};
+
+			/* Used by HSIC */
+			ldo18_reg: LDO18 {
+				regulator-name = "VDDIOPERI_28";
+				regulator-min-microvolt = <3300000>;
+				regulator-max-microvolt = <3300000>;
+				regulator-always-on;
+				op_mode = <1>; /* Normal Mode */
+			};
+
+			ldo20_reg: LDO20 {
+				regulator-name = "VDD28_CAM";
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <2800000>;
+				op_mode = <1>; /* Normal Mode */
+			};
+
+			ldo21_reg: LDO21 {
+				regulator-name = "VDD28_AF";
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <2800000>;
+				op_mode = <1>; /* Normal Mode */
+			};
+
+			ldo22_reg: LDO22 {
+				regulator-name = "VDDA28_2M";
+				regulator-min-microvolt = <2800000>;
+				regulator-max-microvolt = <2800000>;
+				op_mode = <1>; /* Normal Mode */
+			};
+
+			ldo23_reg: LDO23 {
+				regulator-name = "VDD28_TF";
+				regulator-min-microvolt = <2800000>;
+				regulator-max-microvolt = <2800000>;
+				op_mode = <1>; /* Normal Mode */
+			};
+
+			ldo24_reg: LDO24 {
+				regulator-name = "VDD33_A31";
+				regulator-min-microvolt = <3300000>;
+				regulator-max-microvolt = <3300000>;
+				op_mode = <1>; /* Normal Mode */
+			};
+
+			ldo25_reg: LDO25 {
+				regulator-name = "VDD18_CAM";
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <1800000>;
+				op_mode = <1>; /* Normal Mode */
+			};
+
+			ldo26_reg: LDO26 {
+				regulator-name = "VDD18_A31";
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <1800000>;
+				op_mode = <1>; /* Normal Mode */
+			};
+
+			ldo27_reg: LDO27 {
+				regulator-name = "GPS_1V8";
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <1800000>;
+				op_mode = <1>; /* Normal Mode */
+			};
+
+			ldo28_reg: LDO28 {
+				regulator-name = "DVDD12";
+				regulator-min-microvolt = <1200000>;
+				regulator-max-microvolt = <1200000>;
+				op_mode = <1>; /* Normal Mode */
+			};
+
+			buck1_reg: BUCK1 {
+				regulator-name = "vdd_mif";
+				regulator-min-microvolt = <850000>;
+				regulator-max-microvolt	= <1100000>;
+				regulator-always-on;
+				regulator-boot-on;
+				op_mode = <1>; /* Normal Mode */
+			};
+
+			buck2_reg: BUCK2 {
+				regulator-name = "vdd_arm";
+				regulator-min-microvolt = <850000>;
+				regulator-max-microvolt	= <1456250>;
+				regulator-always-on;
+				regulator-boot-on;
+				op_mode = <1>; /* Normal Mode */
+			};
+
+			buck3_reg: BUCK3 {
+				regulator-name = "vdd_int";
+				regulator-min-microvolt = <875000>;
+				regulator-max-microvolt	= <1200000>;
+				regulator-always-on;
+				regulator-boot-on;
+				op_mode = <1>; /* Normal Mode */
+			};
+
+			buck4_reg: BUCK4 {
+				regulator-name = "vdd_g3d";
+				regulator-min-microvolt = <750000>;
+				regulator-max-microvolt	= <1500000>;
+				regulator-always-on;
+				regulator-boot-on;
+				op_mode = <1>; /* Normal Mode */
+			};
+
+			buck5_reg: BUCK5 {
+				regulator-name = "vdd_m12";
+				regulator-min-microvolt = <750000>;
+				regulator-max-microvolt	= <1500000>;
+				regulator-always-on;
+				regulator-boot-on;
+				op_mode = <1>; /* Normal Mode */
+			};
+
+			buck6_reg: BUCK6 {
+				regulator-name = "vdd12_5m";
+				regulator-min-microvolt = <750000>;
+				regulator-max-microvolt	= <1500000>;
+				regulator-always-on;
+				regulator-boot-on;
+				op_mode = <1>; /* Normal Mode */
+			};
+
+			buck7_reg: BUCK7 {
+				regulator-name = "pvdd_buck7";
+				regulator-min-microvolt = <750000>;
+				regulator-max-microvolt	= <2000000>;
+				regulator-boot-on;
+				regulator-always-on;
+				op_mode = <1>; /* Normal Mode */
+			};
+
+			buck8_reg: BUCK8 {
+				regulator-name = "pvdd_buck8";
+				regulator-min-microvolt = <750000>;
+				regulator-max-microvolt	= <1500000>;
+				regulator-boot-on;
+				regulator-always-on;
+				op_mode = <1>; /* Normal Mode */
+			};
+
+			buck9_reg: BUCK9 {
+				regulator-name = "vddf28_emmc";
+				regulator-min-microvolt = <750000>;
+				regulator-max-microvolt	= <3000000>;
+				op_mode = <1>; /* Normal Mode */
+			};
+		};
+	};
+};
+
+&pinctrl_1 {
+	hsic_reset: hsic-reset {
+		samsung,pins = "gpm2-4";
+		samsung,pin-function = <1>;
+		samsung,pin-pud = <0>;
+		samsung,pin-drv = <3>;
+	};
+};
+
+&mfc {
+	samsung,mfc-r = <0x43000000 0x800000>;
+	samsung,mfc-l = <0x51000000 0x800000>;
+	status = "okay";
+};
+
+&mshc_0 {
+	pinctrl-0 = <&sd4_clk &sd4_cmd &sd4_bus4 &sd4_bus8>;
+	pinctrl-names = "default";
+	status = "okay";
+	vmmc-supply = <&buck9_reg>;
+
+	num-slots = <1>;
+	broken-cd;
+	card-detect-delay = <200>;
+	samsung,dw-mshc-ciu-div = <3>;
+	samsung,dw-mshc-sdr-timing = <2 3>;
+	samsung,dw-mshc-ddr-timing = <1 2>;
+	bus-width = <8>;
+	cap-mmc-highspeed;
+};
+
+&rtc {
+	status = "okay";
+};
+
+&hsotg {
+	vusb_d-supply = <&ldo15_reg>;
+	vusb_a-supply = <&ldo12_reg>;
+};
+
+&watchdog {
+	status = "okay";
+};