Message ID | 1471809893-31147-2-git-send-email-ayaka@soulik.info (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
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
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
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
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]
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 --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"; +};
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