Add clock and DT support for a few IPs on Exynos7
Subsystems (5)
v2 cover Add clock and DT support for a few IPs on Exynos7
Changes since v1:
- Added documentation for input clocks of the newly added CMUs
Following are the dependencies:
1) dts, kbuild: Implement support for dtb vendor subdirs patchset
http://comments.gmane.org/gmane.linux.kbuild.devel/12131
2) arch: arm64: Enable support for Samsung Exynos7 SoC
http://www.spinics.net/lists/linux-samsung-soc/msg37047.html
3) Serial clean-up patches for Exynos7
http://www.spinics.net/lists/arm-kernel/msg367348.html
http://www.spinics.net/lists/arm-kernel/msg367349.html
4) Add initial support for pinctrl on Exynos7
http://www.spinics.net/lists/linux-samsung-soc/msg37708.html
For testing I have applied the following:
1) mmc: dw_mmc: Add IDMAC 64-bit address mode support
http://www.spinics.net/lists/kernel/msg1842300.html
2) mmc: dw_mmc: Reset DMA before enabling IDMAC
http://www.gossamer-threads.com/lists/linux/kernel/2021576?page=last
3) drivers: rtc: fix s3c-rtc initialization failure without rtc source clock
https://lkml.org/lkml/2014/10/15/210
4) mfd: sec: add S2MPS15 PMIC support
https://lkml.org/lkml/2014/10/14/50
5) regulator: s2mps11: add support for S2MPS15 regulators
https://lkml.org/lkml/2014/10/14/52
6) Regulators dt nodes were added in the espresso dts file and I2C channel 4 which has the PMIC on it was tested.
7) watchdog: s3c2410_wdt: Fix the mask bit offset for Exynos7
http://www.spinics.net/lists/linux-watchdog/msg05292.html
Abhilash Kesavan (3):
arm64: dts: Add PMU DT node for exynos7 SoC
arm64: dts: Add nodes for mmc, i2c, rtc, watchdog on Exynos7
arm64: exynos: Enable rtc and watchdog support for Exynos7
Naveen Krishna Ch (4):
clk: samsung: exynos7: add clocks for I2C block
clk: samsung: exynos7: add clocks for MMC block
clk: samsung: exynos7: add clocks for RTC block
clk: samsung: exynos7: add gate clocks for WDT, TMU and PWM blocks
.../devicetree/bindings/arm/samsung/pmu.txt | 1 + .../devicetree/bindings/clock/exynos7-clock.txt | 26 ++ arch/arm64/Kconfig | 3 + arch/arm64/boot/dts/exynos/exynos7-espresso.dts | 41 +++ arch/arm64/boot/dts/exynos/exynos7.dtsi | 261 ++++++++++++++++ drivers/clk/samsung/clk-exynos7.c | 316 ++++++++++++++++++++ include/dt-bindings/clock/exynos7-clk.h | 60 +++- 7 files changed, 699 insertions(+), 9 deletions(-)
Signature · 1 line
1.7.9.5
PATCH v2 1/7 clk: samsung: exynos7: add clocks for I2C block
From: Naveen Krishna Ch <[email protected]>
Exynos7 supports 12 I2C channels, add the I2C gate clocks to support them.
--- drivers/clk/samsung/clk-exynos7.c | 24 ++++++++++++++++++++++++ include/dt-bindings/clock/exynos7-clk.h | 16 ++++++++++++++-- 2 files changed, 38 insertions(+), 2 deletions(-)
drivers/clk/samsung/clk-exynos7.c +24 -0
@@ -290,6 +290,20 @@ static struct samsung_mux_clock peric0_mux_clks[] __initdata = { };static struct samsung_gate_clock peric0_gate_clks[]__initdata = { +GATE (PCLK_HSI2C0 ,"pclk_hsi2c0" ,"mout_aclk_peric0_66_user" , +ENABLE_PCLK_PERIC0 ,8 ,0 ,0 ), +GATE (PCLK_HSI2C1 ,"pclk_hsi2c1" ,"mout_aclk_peric0_66_user" , +ENABLE_PCLK_PERIC0 ,9 ,0 ,0 ), +GATE (PCLK_HSI2C4 ,"pclk_hsi2c4" ,"mout_aclk_peric0_66_user" , +ENABLE_PCLK_PERIC0 ,10 ,0 ,0 ), +GATE (PCLK_HSI2C5 ,"pclk_hsi2c5" ,"mout_aclk_peric0_66_user" , +ENABLE_PCLK_PERIC0 ,11 ,0 ,0 ), +GATE (PCLK_HSI2C9 ,"pclk_hsi2c9" ,"mout_aclk_peric0_66_user" , +ENABLE_PCLK_PERIC0 ,12 ,0 ,0 ), +GATE (PCLK_HSI2C10 ,"pclk_hsi2c10" ,"mout_aclk_peric0_66_user" , +ENABLE_PCLK_PERIC0 ,13 ,0 ,0 ), +GATE (PCLK_HSI2C11 ,"pclk_hsi2c11" ,"mout_aclk_peric0_66_user" , +ENABLE_PCLK_PERIC0 ,14 ,0 ,0 ),GATE (PCLK_UART0 ,"pclk_uart0" ,"mout_aclk_peric0_66_user" ,ENABLE_PCLK_PERIC0 ,16 ,0 ,0 ),
@@ -347,6 +361,16 @@ static struct samsung_mux_clock peric1_mux_clks[] __initdata = { };static struct samsung_gate_clock peric1_gate_clks[]__initdata = { +GATE (PCLK_HSI2C2 ,"pclk_hsi2c2" ,"mout_aclk_peric1_66_user" , +ENABLE_PCLK_PERIC1 ,4 ,0 ,0 ), +GATE (PCLK_HSI2C3 ,"pclk_hsi2c3" ,"mout_aclk_peric1_66_user" , +ENABLE_PCLK_PERIC1 ,5 ,0 ,0 ), +GATE (PCLK_HSI2C6 ,"pclk_hsi2c6" ,"mout_aclk_peric1_66_user" , +ENABLE_PCLK_PERIC1 ,6 ,0 ,0 ), +GATE (PCLK_HSI2C7 ,"pclk_hsi2c7" ,"mout_aclk_peric1_66_user" , +ENABLE_PCLK_PERIC1 ,7 ,0 ,0 ), +GATE (PCLK_HSI2C8 ,"pclk_hsi2c8" ,"mout_aclk_peric1_66_user" , +ENABLE_PCLK_PERIC1 ,8 ,0 ,0 ),GATE (PCLK_UART1 ,"pclk_uart1" ,"mout_aclk_peric1_66_user" ,ENABLE_PCLK_PERIC1 ,9 ,0 ,0 ), GATE(PCLK_UART2, "pclk_uart2", "mout_aclk_peric1_66_user",
include/dt-bindings/clock/exynos7-clk.h +14 -2
@@ -30,7 +30,14 @@/* PERIC0 */ #define PCLK_UART0 1#define SCLK_UART0 2 -#define PERIC0_NR_CLK 3 +#define PCLK_HSI2C0 3 +#define PCLK_HSI2C1 4 +#define PCLK_HSI2C4 5 +#define PCLK_HSI2C5 6 +#define PCLK_HSI2C9 7 +#define PCLK_HSI2C10 8 +#define PCLK_HSI2C11 9 +#define PERIC0_NR_CLK 10/* PERIC1 */ #define PCLK_UART1 1
@@ -39,7 +46,12 @@#define SCLK_UART1 4#define SCLK_UART2 5#define SCLK_UART3 6 -#define PERIC1_NR_CLK 7 +#define PCLK_HSI2C2 7 +#define PCLK_HSI2C3 8 +#define PCLK_HSI2C6 9 +#define PCLK_HSI2C7 10 +#define PCLK_HSI2C8 11 +#define PERIC1_NR_CLK 12/* PERIS */ #define PCLK_CHIPID 1
Signature · 1 line
1.7.9.5
PATCH v2 2/7 clk: samsung: exynos7: add clocks for MMC block
In reply to Abhilash KesavanFrom: Naveen Krishna Ch <[email protected]>
Exynos7 supports 3 MMC channels, add the MMC gate clocks to support them.
--- .../devicetree/bindings/clock/exynos7-clock.txt | 21 ++ drivers/clk/samsung/clk-exynos7.c | 224 ++++++++++++++++++++ include/dt-bindings/clock/exynos7-clk.h | 20 ++ 3 files changed, 265 insertions(+)
Documentation/devicetree/bindings/clock/exynos7-clock.txt +21 -0
@@ -27,9 +27,12 @@ Required Properties for Clock Controller: - "samsung,exynos7-clock-topc" - "samsung,exynos7-clock-top0" + - "samsung,exynos7-clock-top1" - "samsung,exynos7-clock-peric0" - "samsung,exynos7-clock-peric1" - "samsung,exynos7-clock-peris" + - "samsung,exynos7-clock-fsys0" + - "samsung,exynos7-clock-fsys1" - reg: physical base address of the controller and the length of memory mapped region.
@@ -50,6 +53,13 @@ Input clocks for top0 clock controller: - dout_sclk_cc_pll - dout_sclk_mfc_pll +Input clocks for top1 clock controller: + - fin_pll + - dout_sclk_bus0_pll + - dout_sclk_bus1_pll + - dout_sclk_cc_pll + - dout_sclk_mfc_pll + Input clocks for peric0 clock controller: - fin_pll - dout_aclk_peric0_66
@@ -65,3 +75,14 @@ Input clocks for peric1 clock controller: Input clocks for peris clock controller: - fin_pll - dout_aclk_peris_66 + +Input clocks for fsys0 clock controller: + - fin_pll + - dout_aclk_fsys0_200 + - dout_sclk_mmc2 + +Input clocks for fsys1 clock controller: + - fin_pll + - dout_aclk_fsys1_200 + - dout_sclk_mmc0 + - dout_sclk_mmc1
drivers/clk/samsung/clk-exynos7.c +224 -0
233 lines not on this page · raw message
include/dt-bindings/clock/exynos7-clk.h +20 -0
@@ -27,6 +27,17 @@#define CLK_SCLK_UART3 6#define TOP0_NR_CLK 7 +/* TOP1 */ +#define DOUT_ACLK_FSYS1_200 1 +#define DOUT_ACLK_FSYS0_200 2 +#define DOUT_SCLK_MMC2 3 +#define DOUT_SCLK_MMC1 4 +#define DOUT_SCLK_MMC0 5 +#define CLK_SCLK_MMC2 6 +#define CLK_SCLK_MMC1 7 +#define CLK_SCLK_MMC0 8 +#define TOP1_NR_CLK 9 +/* PERIC0 */ #define PCLK_UART0 1#define SCLK_UART0 2
@@ -58,4 +69,13 @@#define SCLK_CHIPID 2#define PERIS_NR_CLK 3 +/* FSYS0 */ +#define ACLK_MMC2 1 +#define FSYS0_NR_CLK 2 + +/* FSYS1 */ +#define ACLK_MMC1 1 +#define ACLK_MMC0 2 +#define FSYS1_NR_CLK 3 +#endif /* _DT_BINDINGS_CLOCK_EXYNOS7_H */
Signature · 1 line
1.7.9.5
PATCH v2 3/7 clk: samsung: exynos7: add clocks for RTC block
In reply to Abhilash KesavanFrom: Naveen Krishna Ch <[email protected]>
Add clock support for the RTC block in Exynos7.
--- .../devicetree/bindings/clock/exynos7-clock.txt | 5 ++ drivers/clk/samsung/clk-exynos7.c | 54 ++++++++++++++++++++ include/dt-bindings/clock/exynos7-clk.h | 17 +++--- 3 files changed, 70 insertions(+), 6 deletions(-)
Documentation/devicetree/bindings/clock/exynos7-clock.txt +5 -0
@@ -28,6 +28,7 @@ Required Properties for Clock Controller: - "samsung,exynos7-clock-topc" - "samsung,exynos7-clock-top0" - "samsung,exynos7-clock-top1" + - "samsung,exynos7-clock-ccore" - "samsung,exynos7-clock-peric0" - "samsung,exynos7-clock-peric1" - "samsung,exynos7-clock-peris"
@@ -60,6 +61,10 @@ Input clocks for top1 clock controller: - dout_sclk_cc_pll - dout_sclk_mfc_pll +Input clocks for ccore clock controller: + - fin_pll + - dout_aclk_ccore_133 + Input clocks for peric0 clock controller: - fin_pll - dout_aclk_peric0_66
drivers/clk/samsung/clk-exynos7.c +54 -0
84 lines not on this page · raw message
include/dt-bindings/clock/exynos7-clk.h +11 -6
@@ -11,12 +11,13 @@#define _DT_BINDINGS_CLOCK_EXYNOS7_H/* TOPC */ -#define DOUT_ACLK_PERIS 1 -#define DOUT_SCLK_BUS0_PLL 2 -#define DOUT_SCLK_BUS1_PLL 3 -#define DOUT_SCLK_CC_PLL 4 -#define DOUT_SCLK_MFC_PLL 5 -#define TOPC_NR_CLK 6 +#define DOUT_ACLK_CCORE_133 1 +#define DOUT_ACLK_PERIS 2 +#define DOUT_SCLK_BUS0_PLL 3 +#define DOUT_SCLK_BUS1_PLL 4 +#define DOUT_SCLK_CC_PLL 5 +#define DOUT_SCLK_MFC_PLL 6 +#define TOPC_NR_CLK 7/* TOP0 */ #define DOUT_ACLK_PERIC1 1
@@ -38,6 +39,10 @@#define CLK_SCLK_MMC0 8#define TOP1_NR_CLK 9 +/* CCORE */ +#define PCLK_RTC 1 +#define CCORE_NR_CLK 2 +/* PERIC0 */ #define PCLK_UART0 1#define SCLK_UART0 2
Signature · 1 line
1.7.9.5
Sylwester Nawrocki
maintainerPATCH v2 3/7 clk: samsung: exynos7: add clocks for RTC block
Hi,
Quoted 11 lines · Abhilash Kesavan
From: Naveen Krishna Ch <[email protected]>
Add clock support for the RTC block in Exynos7.
Signed-off-by Naveen Krishna Ch <[email protected]>Signed-off-by Abhilash Kesavan <[email protected]>--- .../devicetree/bindings/clock/exynos7-clock.txt | 5 ++ drivers/clk/samsung/clk-exynos7.c | 54 ++++++++++++++++++++ include/dt-bindings/clock/exynos7-clk.h | 17 +++--- 3 files changed, 70 insertions(+), 6 deletions(-)
[...]
Quoted 11 lines
include/dt-bindings/clock/exynos7-clk.h +0
-3@@ -11,12 +11,13 @@#define _DT_BINDINGS_CLOCK_EXYNOS7_H/* TOPC */ -#define DOUT_ACLK_PERIS 1 -#define DOUT_SCLK_BUS0_PLL 2 -#define DOUT_SCLK_BUS1_PLL 3
include/dt-bindings/clock/exynos7-clk.h line 20
Quoted 10 lines
include/dt-bindings/clock/exynos7-clk.h +7
-3-#define DOUT_SCLK_CC_PLL 4 -#define DOUT_SCLK_MFC_PLL 5 -#define TOPC_NR_CLK 6 +#define DOUT_ACLK_CCORE_133 1 +#define DOUT_ACLK_PERIS 2 +#define DOUT_SCLK_BUS0_PLL 3 +#define DOUT_SCLK_BUS1_PLL 4 +#define DOUT_SCLK_CC_PLL 5 +#define DOUT_SCLK_MFC_PLL 6 +#define TOPC_NR_CLK 7
Please don't do that, don't change the meaning of already defined clock identifiers. We should carefully assign the clock identifiers based on the SoC documentation beforehand, not at will when we see fit for development of the Linux driver. Please either add DOUT_ACLK_CCORE_133 at the end of list or move this change to the first patch in your series adding initial support for Exynos7 SoC.
--
Thanks,
Sylwester
PATCH v2 3/7 clk: samsung: exynos7: add clocks for RTC block
Hello Sylwester,
Quoted 35 lines · Sylwester Nawrocki
Hi,
Quoted 11 lines · Abhilash Kesavan
From: Naveen Krishna Ch <[email protected]>
Add clock support for the RTC block in Exynos7.
Signed-off-by Naveen Krishna Ch <[email protected]>Signed-off-by Abhilash Kesavan <[email protected]>--- .../devicetree/bindings/clock/exynos7-clock.txt | 5 ++ drivers/clk/samsung/clk-exynos7.c | 54 ++++++++++++++++++++ include/dt-bindings/clock/exynos7-clk.h | 17 +++--- 3 files changed, 70 insertions(+), 6 deletions(-)[...]
Quoted 20 lines
include/dt-bindings/clock/exynos7-clk.h +6
-6@@ -11,12 +11,13 @@#define _DT_BINDINGS_CLOCK_EXYNOS7_H/* TOPC */ -#define DOUT_ACLK_PERIS 1 -#define DOUT_SCLK_BUS0_PLL 2 -#define DOUT_SCLK_BUS1_PLL 3 -#define DOUT_SCLK_CC_PLL 4 -#define DOUT_SCLK_MFC_PLL 5 -#define TOPC_NR_CLK 6 +#define DOUT_ACLK_CCORE_133 1 +#define DOUT_ACLK_PERIS 2 +#define DOUT_SCLK_BUS0_PLL 3 +#define DOUT_SCLK_BUS1_PLL 4 +#define DOUT_SCLK_CC_PLL 5 +#define DOUT_SCLK_MFC_PLL 6
Quoted 8 lines
include/dt-bindings/clock/exynos7-clk.h line 20
Quoted 1 line
include/dt-bindings/clock/exynos7-clk.h +1
-0+#define TOPC_NR_CLK 7Please don't do that, don't change the meaning of already defined clock identifiers. We should carefully assign the clock identifiers based on the SoC documentation beforehand, not at will when we see fit for development of the Linux driver. Please either add
DOUT_ACLK_CCORE_133at the end of list or move this change to the first patch in your series adding initial support for Exynos7 SoC.
Thanks for reviewing this series and picking up the initial patchset. I will re-post this patchset with the ccore clock at the end of the list. All the future clock id entries will be added at the bottom of the list.
Regards,
Abhilash
Quoted 10 lines
--
Thanks,
Sylwester_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel at lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
PATCH v2 4/7 clk: samsung: exynos7: add gate clocks for WDT, TMU and PWM blocks
In reply to Abhilash KesavanFrom: Naveen Krishna Ch <[email protected]>
Add clock support for the watchdog timer, pwm timer and thermal management unit IPs in Exynos7.
--- drivers/clk/samsung/clk-exynos7.c | 14 ++++++++++++++ include/dt-bindings/clock/exynos7-clk.h | 9 +++++++-- 2 files changed, 21 insertions(+), 2 deletions(-)
drivers/clk/samsung/clk-exynos7.c +14 -0
@@ -486,9 +486,12 @@ static struct samsung_gate_clock peric0_gate_clks[] __initdata = { ENABLE_PCLK_PERIC0, 14, 0, 0),GATE (PCLK_UART0 ,"pclk_uart0" ,"mout_aclk_peric0_66_user" ,ENABLE_PCLK_PERIC0 ,16 ,0 ,0 ), +GATE (PCLK_PWM ,"pclk_pwm" ,"mout_aclk_peric0_66_user" , +ENABLE_PCLK_PERIC0 ,21 ,0 ,0 ),GATE (SCLK_UART0 ,"sclk_uart0_user" ,"mout_sclk_uart0_user" ,ENABLE_SCLK_PERIC0 ,16 ,0 ,0 ), + GATE(SCLK_PWM, "sclk_pwm", "fin_pll", ENABLE_SCLK_PERIC0, 21, 0, 0), }; static struct samsung_cmu_info peric0_cmu_info __initdata = {
@@ -586,7 +589,9 @@ CLK_OF_DECLARE(exynos7_clk_peric1, "samsung,exynos7-clock-peric1",/* Register Offset definitions for CMU_PERIS (0x10040000) */ #define MUX_SEL_PERIS 0x0200 +#define ENABLE_PCLK_PERIS 0x0900#define ENABLE_PCLK_PERIS_SECURE_CHIPID 0x0910 +#define ENABLE_SCLK_PERIS 0x0A00#define ENABLE_SCLK_PERIS_SECURE_CHIPID 0x0A10/* List of parent clocks for Muxes in CMU_PERIS */
@@ -594,7 +599,9 @@ PNAME(mout_aclk_peris_66_p) = { "fin_pll", "dout_aclk_peris_66" };static unsigned long peris_clk_regs[]__initdata = {MUX_SEL_PERIS , +ENABLE_PCLK_PERIS ,ENABLE_PCLK_PERIS_SECURE_CHIPID , +ENABLE_SCLK_PERIS ,ENABLE_SCLK_PERIS_SECURE_CHIPID , };
@@ -604,10 +611,17 @@ static struct samsung_mux_clock peris_mux_clks[] __initdata = { };static struct samsung_gate_clock peris_gate_clks[]__initdata = { +GATE (PCLK_WDT ,"pclk_wdt" ,"mout_aclk_peris_66_user" , +ENABLE_PCLK_PERIS ,6 ,0 ,0 ), +GATE (PCLK_TMU ,"pclk_tmu_apbif" ,"mout_aclk_peris_66_user" , +ENABLE_PCLK_PERIS ,10 ,0 ,0 ), +GATE (PCLK_CHIPID ,"pclk_chipid" ,"mout_aclk_peris_66_user" ,ENABLE_PCLK_PERIS_SECURE_CHIPID ,0 ,0 ,0 ),GATE (SCLK_CHIPID ,"sclk_chipid" ,"fin_pll" ,ENABLE_SCLK_PERIS_SECURE_CHIPID ,0 ,0 ,0 ), + +GATE (SCLK_TMU ,"sclk_tmu" ,"fin_pll" ,ENABLE_SCLK_PERIS ,10 ,0 ,0 ), };static struct samsung_cmu_info peris_cmu_info__initdata = {
include/dt-bindings/clock/exynos7-clk.h +7 -2
@@ -53,7 +53,9 @@#define PCLK_HSI2C9 7#define PCLK_HSI2C10 8#define PCLK_HSI2C11 9 -#define PERIC0_NR_CLK 10 +#define PCLK_PWM 10 +#define SCLK_PWM 11 +#define PERIC0_NR_CLK 12/* PERIC1 */ #define PCLK_UART1 1
@@ -72,7 +74,10 @@/* PERIS */ #define PCLK_CHIPID 1#define SCLK_CHIPID 2 -#define PERIS_NR_CLK 3 +#define PCLK_WDT 3 +#define PCLK_TMU 4 +#define SCLK_TMU 5 +#define PERIS_NR_CLK 6/* FSYS0 */ #define ACLK_MMC2 1
Signature · 1 line
1.7.9.5
PATCH v2 5/7 arm64: dts: Add PMU DT node for exynos7 SoC
In reply to Abhilash KesavanAdds PMU DT node for exynos7 SoC.
--- .../devicetree/bindings/arm/samsung/pmu.txt | 1 + arch/arm64/boot/dts/exynos/exynos7.dtsi | 5 +++++ 2 files changed, 6 insertions(+)
Documentation/devicetree/bindings/arm/samsung/pmu.txt +1 -0
@@ -10,6 +10,7 @@ Properties: - "samsung,exynos5260-pmu" - for Exynos5260 SoC. - "samsung,exynos5410-pmu" - for Exynos5410 SoC, - "samsung,exynos5420-pmu" - for Exynos5420 SoC. + - "samsung,exynos7-pmu" - for Exynos7 SoC. second value must be always "syscon". - reg : offset and length of the register set.
arch/arm64/boot/dts/exynos/exynos7.dtsi +5 -0
@@ -243,6 +243,11 @@ <1 11 0xff01>, <1 10 0xff01>; }; + + pmu_system_controller: system-controller at 105c0000 { + compatible = "samsung,exynos7-pmu", "syscon"; + reg = <0x105c0000 0x5000>; + }; }; };
Signature · 1 line
1.7.9.5
PATCH v2 6/7 arm64: dts: Add nodes for mmc, i2c, rtc, watchdog on Exynos7
In reply to Abhilash KesavanAdd nodes for 3 mmc channels, 12 i2c channels, rtc, and watchdog on Exynos7.
--- arch/arm64/boot/dts/exynos/exynos7-espresso.dts | 41 ++++ arch/arm64/boot/dts/exynos/exynos7.dtsi | 256 +++++++++++++++++++++++ 2 files changed, 297 insertions(+)
arch/arm64/boot/dts/exynos/exynos7-espresso.dts +41 -0
@@ -18,6 +18,8 @@ aliases { serial0 = &serial_2; + mshc0 = &mmc_0; + mshc2 = &mmc_2; }; chosen {
@@ -37,3 +39,42 @@ &serial_2 { status = "okay"; }; + +&rtc { + status = "okay"; +}; + +&watchdog { + status = "okay"; +}; + +&mmc_0 { + status = "okay"; + num-slots = <1>; + broken-cd; + caps2-mmc-hs200-1_8v; + supports-highspeed; + non-removable; + card-detect-delay = <200>; + clock-frequency = <800000000>; + samsung,dw-mshc-ciu-div = <3>; + samsung,dw-mshc-sdr-timing = <0 4>; + samsung,dw-mshc-ddr-timing = <0 2>; + pinctrl-names = "default"; + pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_qrdy &sd0_bus1 &sd0_bus4 &sd0_bus8>; + bus-width = <8>; +}; + +&mmc_2 { + status = "okay"; + num-slots = <1>; + supports-highspeed; + card-detect-delay = <200>; + clock-frequency = <400000000>; + samsung,dw-mshc-ciu-div = <3>; + samsung,dw-mshc-sdr-timing = <2 3>; + samsung,dw-mshc-ddr-timing = <1 2>; + pinctrl-names = "default"; + pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus1 &sd2_bus4>; + bus-width = <4>; +};
arch/arm64/boot/dts/exynos/exynos7.dtsi +256 -0
280 lines not on this page · raw message
Signature · 1 line
1.7.9.5
PATCH v2 6/7 arm64: dts: Add nodes for mmc, i2c, rtc, watchdog on Exynos7
Hi Abhilash,
Quoted 31 lines · Abhilash Kesavan
Add nodes for 3 mmc channels, 12 i2c channels, rtc, and watchdog on Exynos7.
Signed-off-by Naveen Krishna Ch <[email protected]>Signed-off-by Abhilash Kesavan <[email protected]>--- arch/arm64/boot/dts/exynos/exynos7-espresso.dts | 41 ++++ arch/arm64/boot/dts/exynos/exynos7.dtsi | 256 +++++++++++++++++++++++ 2 files changed, 297 insertions(+)arch/arm64/boot/dts/exynos/exynos7-espresso.dts +6
-0@@ -18,6 +18,8 @@ aliases { serial0 = &serial_2; + mshc0 = &mmc_0; + mshc2 = &mmc_2; }; chosen {@@ -37,3 +39,42 @@ &serial_2 { status = "okay"; }; + +&rtc { + status = "okay"; +};
arch/arm64/boot/dts/exynos/exynos7-espresso.dts line 55
Quoted 10 lines
arch/arm64/boot/dts/exynos/exynos7-espresso.dts +10
-0+ +&watchdog { + status = "okay"; +}; + +&mmc_0 { + status = "okay"; + num-slots = <1>; + broken-cd; + caps2-mmc-hs200-1_8v;
Please use mmc_hs200-1_8v instead.
arch/arm64/boot/dts/exynos/exynos7-espresso.dts line 56
Quoted 1 line
arch/arm64/boot/dts/exynos/exynos7-espresso.dts +1
-0+ supports-highspeed;
As per synopsys-dw-mshc DT binding documentation, supports-highspeed property is deprecated, so please use common DT binding for this, which is "cap-mmc-highspeed".
Quoted 5 lines
arch/arm64/boot/dts/exynos/exynos7-espresso.dts +5
-0+ non-removable; + card-detect-delay = <200>; + clock-frequency = <800000000>; + samsung,dw-mshc-ciu-div = <3>; + samsung,dw-mshc-sdr-timing = <0 4>;
arch/arm64/boot/dts/exynos/exynos7-espresso.dts line 71
Quoted 10 lines
arch/arm64/boot/dts/exynos/exynos7-espresso.dts +10
-0+ samsung,dw-mshc-ddr-timing = <0 2>; + pinctrl-names = "default"; + pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_qrdy &sd0_bus1 &sd0_bus4 &sd0_bus8>; + bus-width = <8>; +}; + +&mmc_2 { + status = "okay"; + num-slots = <1>; + supports-highspeed;
Here also common DT binding please "cap-sd-highspeed"
Quoted 305 lines
arch/arm64/boot/dts/exynos/exynos7-espresso.dts +9
-0+ card-detect-delay = <200>; + clock-frequency = <400000000>; + samsung,dw-mshc-ciu-div = <3>; + samsung,dw-mshc-sdr-timing = <2 3>; + samsung,dw-mshc-ddr-timing = <1 2>; + pinctrl-names = "default"; + pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus1 &sd2_bus4>; + bus-width = <4>; +};arch/arm64/boot/dts/exynos/exynos7.dtsi +256
-1@@ -113,6 +113,27 @@ "dout_sclk_mfc_pll"; }; + clock_top1: clock-controller at 105e0000 { + compatible = "samsung,exynos7-clock-top1"; + reg = <0x105e0000 0xb000>; + #clock-cells = <1>; + clocks = <&fin_pll>, <&clock_topc DOUT_SCLK_BUS0_PLL>, + <&clock_topc DOUT_SCLK_BUS1_PLL>, + <&clock_topc DOUT_SCLK_CC_PLL>, + <&clock_topc DOUT_SCLK_MFC_PLL>; + clock-names = "fin_pll", "dout_sclk_bus0_pll", + "dout_sclk_bus1_pll", "dout_sclk_cc_pll", + "dout_sclk_mfc_pll"; + }; + + clock_ccore: clock-controller at 105b0000 { + compatible = "samsung,exynos7-clock-ccore"; + reg = <0x105b0000 0xd00>; + #clock-cells = <1>; + clocks = <&fin_pll>, <&clock_topc DOUT_ACLK_CCORE_133>; + clock-names = "fin_pll", "dout_aclk_ccore_133"; + }; + clock_peric0: clock-controller at 13610000 { compatible = "samsung,exynos7-clock-peric0"; reg = <0x13610000 0xd00>;@@ -143,6 +164,27 @@ clock-names = "fin_pll", "dout_aclk_peris_66"; }; + clock_fsys0: clock-controller at 10e90000 { + compatible = "samsung,exynos7-clock-fsys0"; + reg = <0x10e90000 0xd00>; + #clock-cells = <1>; + clocks = <&fin_pll>, <&clock_top1 DOUT_ACLK_FSYS0_200>, + <&clock_top1 DOUT_SCLK_MMC2>; + clock-names = "fin_pll", "dout_aclk_fsys0_200", + "dout_sclk_mmc2"; + }; + + clock_fsys1: clock-controller at 156e0000 { + compatible = "samsung,exynos7-clock-fsys1"; + reg = <0x156e0000 0xd00>; + #clock-cells = <1>; + clocks = <&fin_pll>, <&clock_top1 DOUT_ACLK_FSYS1_200>, + <&clock_top1 DOUT_SCLK_MMC0>, + <&clock_top1 DOUT_SCLK_MMC1>; + clock-names = "fin_pll", "dout_aclk_fsys1_200", + "dout_sclk_mmc0", "dout_sclk_mmc1"; + }; + serial_0: serial at 13630000 { compatible = "samsung,exynos4210-uart"; reg = <0x13630000 0x100>;@@ -236,6 +278,162 @@ interrupts = <0 203 0>; }; + hsi2c_0: hsi2c at 13640000 { + compatible = "samsung,exynos7-hsi2c"; + reg = <0x13640000 0x1000>; + interrupts = <0 441 0>; + #address-cells = <1>; + #size-cells = <0>; + pinctrl-names = "default"; + pinctrl-0 = <&hs_i2c0_bus>; + clocks = <&clock_peric0 PCLK_HSI2C0>; + clock-names = "hsi2c"; + status = "disabled"; + }; + + hsi2c_1: hsi2c at 13650000 { + compatible = "samsung,exynos7-hsi2c"; + reg = <0x13650000 0x1000>; + interrupts = <0 442 0>; + #address-cells = <1>; + #size-cells = <0>; + pinctrl-names = "default"; + pinctrl-0 = <&hs_i2c1_bus>; + clocks = <&clock_peric0 PCLK_HSI2C1>; + clock-names = "hsi2c"; + status = "disabled"; + }; + + hsi2c_2: hsi2c at 14e60000 { + compatible = "samsung,exynos7-hsi2c"; + reg = <0x14e60000 0x1000>; + interrupts = <0 459 0>; + #address-cells = <1>; + #size-cells = <0>; + pinctrl-names = "default"; + pinctrl-0 = <&hs_i2c2_bus>; + clocks = <&clock_peric1 PCLK_HSI2C2>; + clock-names = "hsi2c"; + status = "disabled"; + }; + + hsi2c_3: hsi2c at 14e70000 { + compatible = "samsung,exynos7-hsi2c"; + reg = <0x14e70000 0x1000>; + interrupts = <0 460 0>; + #address-cells = <1>; + #size-cells = <0>; + pinctrl-names = "default"; + pinctrl-0 = <&hs_i2c3_bus>; + clocks = <&clock_peric1 PCLK_HSI2C3>; + clock-names = "hsi2c"; + status = "disabled"; + }; + + hsi2c_4: hsi2c at 13660000 { + compatible = "samsung,exynos7-hsi2c"; + reg = <0x13660000 0x1000>; + interrupts = <0 443 0>; + #address-cells = <1>; + #size-cells = <0>; + pinctrl-names = "default"; + pinctrl-0 = <&hs_i2c4_bus>; + clocks = <&clock_peric0 PCLK_HSI2C4>; + clock-names = "hsi2c"; + status = "disabled"; + }; + + hsi2c_5: hsi2c at 13670000 { + compatible = "samsung,exynos7-hsi2c"; + reg = <0x13670000 0x1000>; + interrupts = <0 444 0>; + #address-cells = <1>; + #size-cells = <0>; + pinctrl-names = "default"; + pinctrl-0 = <&hs_i2c5_bus>; + clocks = <&clock_peric0 PCLK_HSI2C5>; + clock-names = "hsi2c"; + status = "disabled"; + }; + + hsi2c_6: hsi2c at 14e00000 { + compatible = "samsung,exynos7-hsi2c"; + reg = <0x14e00000 0x1000>; + interrupts = <0 461 0>; + #address-cells = <1>; + #size-cells = <0>; + pinctrl-names = "default"; + pinctrl-0 = <&hs_i2c6_bus>; + clocks = <&clock_peric1 PCLK_HSI2C6>; + clock-names = "hsi2c"; + status = "disabled"; + }; + + hsi2c_7: hsi2c at 13e10000 { + compatible = "samsung,exynos7-hsi2c"; + reg = <0x13e10000 0x1000>; + interrupts = <0 462 0>; + #address-cells = <1>; + #size-cells = <0>; + pinctrl-names = "default"; + pinctrl-0 = <&hs_i2c7_bus>; + clocks = <&clock_peric1 PCLK_HSI2C7>; + clock-names = "hsi2c"; + status = "disabled"; + }; + + hsi2c_8: hsi2c at 14e20000 { + compatible = "samsung,exynos7-hsi2c"; + reg = <0x14e20000 0x1000>; + interrupts = <0 463 0>; + #address-cells = <1>; + #size-cells = <0>; + pinctrl-names = "default"; + pinctrl-0 = <&hs_i2c8_bus>; + clocks = <&clock_peric1 PCLK_HSI2C8>; + clock-names = "hsi2c"; + status = "disabled"; + }; + + hsi2c_9: hsi2c at 13680000 { + compatible = "samsung,exynos7-hsi2c"; + reg = <0x13680000 0x1000>; + interrupts = <0 445 0>; + #address-cells = <1>; + #size-cells = <0>; + pinctrl-names = "default"; + pinctrl-0 = <&hs_i2c9_bus>; + clocks = <&clock_peric0 PCLK_HSI2C9>; + clock-names = "hsi2c"; + status = "disabled"; + }; + + hsi2c_10: hsi2c at 13690000 { + compatible = "samsung,exynos7-hsi2c"; + reg = <0x13690000 0x1000>; + interrupts = <0 446 0>; + #address-cells = <1>; + #size-cells = <0>; + pinctrl-names = "default"; + pinctrl-0 = <&hs_i2c10_bus>; + clocks = <&clock_peric0 PCLK_HSI2C10>; + clock-names = "hsi2c"; + status = "disabled"; + }; + + hsi2c_11: hsi2c at 136a0000 { + compatible = "samsung,exynos7-hsi2c"; + reg = <0x136a0000 0x1000>; + interrupts = <0 447 0>; + #address-cells = <1>; + #size-cells = <0>; + pinctrl-names = "default"; + pinctrl-0 = <&hs_i2c11_bus>; + clocks = <&clock_peric0 PCLK_HSI2C11>; + clock-names = "hsi2c"; + status = "disabled"; + }; + timer { compatible = "arm,armv8-timer"; interrupts = <1 13 0xff01>,@@ -248,6 +446,64 @@ compatible = "samsung,exynos7-pmu", "syscon"; reg = <0x105c0000 0x5000>; }; + + rtc: rtc at 10590000 { + compatible = "samsung,s3c6410-rtc"; + reg = <0x10590000 0x100>; + interrupts = <0 355 0>, <0 356 0>; + clocks = <&clock_ccore PCLK_RTC>; + clock-names = "rtc"; + status = "disabled"; + }; + + watchdog: watchdog at 101d0000 { + compatible = "samsung,exynos7-wdt"; + reg = <0x101d0000 0x100>; + interrupts = <0 110 0>; + clocks = <&clock_peris PCLK_WDT>; + clock-names = "watchdog"; + samsung,syscon-phandle = <&pmu_system_controller>; + status = "disabled"; + }; + + mmc_0: mmc at 15740000 { + compatible = "samsung,exynos7-dw-mshc-smu"; + interrupts = <0 201 0>; + #address-cells = <1>; + #size-cells = <0>; + reg = <0x15740000 0x2000>; + clocks = <&clock_fsys1 ACLK_MMC0>, + <&clock_top1 CLK_SCLK_MMC0>; + clock-names = "biu", "ciu"; + fifo-depth = <0x40>; + status = "disabled"; + }; + + mmc_1: mmc at 15750000 { + compatible = "samsung,exynos7-dw-mshc"; + interrupts = <0 202 0>; + #address-cells = <1>; + #size-cells = <0>; + reg = <0x15750000 0x2000>; + clocks = <&clock_fsys1 ACLK_MMC1>, + <&clock_top1 CLK_SCLK_MMC1>; + clock-names = "biu", "ciu"; + fifo-depth = <0x40>; + status = "disabled"; + }; + + mmc_2: mmc at 15560000 { + compatible = "samsung,exynos7-dw-mshc-smu"; + interrupts = <0 216 0>; + #address-cells = <1>; + #size-cells = <0>; + reg = <0x15560000 0x2000>; + clocks = <&clock_fsys0 ACLK_MMC2>, + <&clock_top1 CLK_SCLK_MMC2>; + clock-names = "biu", "ciu"; + fifo-depth = <0x40>; + status = "disabled"; + }; }; }; --1.7.9.5
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel at lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Signature · 2 lines
Regards, Alim
PATCH v2 6/7 arm64: dts: Add nodes for mmc, i2c, rtc, watchdog on Exynos7
Quoted 6 lines · Alim Akhtar
arch/arm64/boot/dts/exynos/exynos7-espresso.dts line 55
Quoted 5 lines
+&mmc_0 {
arch/arm64/boot/dts/exynos/exynos7-espresso.dts +4
-0+ status = "okay"; + num-slots = <1>; + broken-cd; + caps2-mmc-hs200-1_8v;Please use mmc_hs200-1_8v instead.
I guess you mean "mmc-hs200-1_8v" (with a hyphen between mmc and hs200).
Quoted 4 lines
Quoted 1 line
+ supports-highspeed;
As per synopsys-dw-mshc DT binding documentation, supports-highspeed property is deprecated, so please use common DT binding for this, which is "cap-mmc-highspeed".
Quoted 16 lines
Quoted 5 lines
arch/arm64/boot/dts/exynos/exynos7-espresso.dts +5
-0+ non-removable; + card-detect-delay = <200>; + clock-frequency = <800000000>; + samsung,dw-mshc-ciu-div = <3>; + samsung,dw-mshc-sdr-timing = <0 4>;arch/arm64/boot/dts/exynos/exynos7-espresso.dts line 71
Quoted 10 lines
arch/arm64/boot/dts/exynos/exynos7-espresso.dts +10
-0+ samsung,dw-mshc-ddr-timing = <0 2>; + pinctrl-names = "default"; + pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_qrdy &sd0_bus1 &sd0_bus4 &sd0_bus8>; + bus-width = <8>; +}; + +&mmc_2 { + status = "okay"; + num-slots = <1>; + supports-highspeed;Here also common DT binding please "cap-sd-highspeed"
Above you suggest "cap-mmc-highspeed" to replace the same deprecated property, but here "cap-sd-highspeed". What is the rationale behind using only one particular new property and not both for both controllers?
Best regards,
Tomasz
PATCH v2 6/7 arm64: dts: Add nodes for mmc, i2c, rtc, watchdog on Exynos7
Hi Tomasz,
Quoted 10 lines · Tomasz Figa
Quoted 6 lines · Alim Akhtar
arch/arm64/boot/dts/exynos/exynos7-espresso.dts line 55
Quoted 5 lines
+&mmc_0 {
arch/arm64/boot/dts/exynos/exynos7-espresso.dts +4
-0+ status = "okay"; + num-slots = <1>; + broken-cd; + caps2-mmc-hs200-1_8v;Please use mmc_hs200-1_8v instead.
I guess you mean "mmc-hs200-1_8v" (with a hyphen between mmc and hs200).
Yes, right, that was a typo. Thanks.
Quoted 21 lines
Quoted 4 lines
Quoted 1 line
+ supports-highspeed;
As per synopsys-dw-mshc DT binding documentation, supports-highspeed property is deprecated, so please use common DT binding for this, which is "cap-mmc-highspeed".
Quoted 16 lines
Quoted 5 lines
arch/arm64/boot/dts/exynos/exynos7-espresso.dts +5
-0+ non-removable; + card-detect-delay = <200>; + clock-frequency = <800000000>; + samsung,dw-mshc-ciu-div = <3>; + samsung,dw-mshc-sdr-timing = <0 4>;arch/arm64/boot/dts/exynos/exynos7-espresso.dts line 71
Quoted 10 lines
arch/arm64/boot/dts/exynos/exynos7-espresso.dts +10
-0+ samsung,dw-mshc-ddr-timing = <0 2>; + pinctrl-names = "default"; + pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_qrdy &sd0_bus1 &sd0_bus4 &sd0_bus8>; + bus-width = <8>; +}; + +&mmc_2 { + status = "okay"; + num-slots = <1>; + supports-highspeed;Here also common DT binding please "cap-sd-highspeed"
Quoted 4 lines
Above you suggest "cap-mmc-highspeed" to replace the same deprecated property, but here "cap-sd-highspeed". What is the rationale behind using only one particular new property and not both for both controllers?
Well, on this particular board dw_mmc channels are dedicated to use only one kind of card. e.g. mmc_0 is for eMMC and which is non-removable and mmc_2 is for SD cards. Although controller supports both the properties on all channel on this SoC.
Quoted 2 lines
Best regards,
Tomasz
Signature · 2 lines
Regards, Alim
PATCH v2 6/7 arm64: dts: Add nodes for mmc, i2c, rtc, watchdog on Exynos7
Hi Alim and Tomasz,
Thanks for the review.
Quoted 9 lines · Alim Akhtar
Hi Tomasz,
Quoted 6 lines · Tomasz Figa
Quoted 5 lines · Alim Akhtar
Quoted 5 lines
+&mmc_0 {
arch/arm64/boot/dts/exynos/exynos7-espresso.dts +4
-0+ status = "okay"; + num-slots = <1>; + broken-cd; + caps2-mmc-hs200-1_8v;
Quoted 5 lines
Quoted 4 lines
Quoted 1 line
Please use mmc_hs200-1_8v instead.
I guess you mean "mmc-hs200-1_8v" (with a hyphen between mmc and hs200).
Yes, right, that was a typo. Thanks.
Will modify it to "mmc-hs200-1_8v".
Quoted 21 lines
Quoted 21 lines
Quoted 20 lines
Quoted 1 line
+ supports-highspeed;
As per synopsys-dw-mshc DT binding documentation, supports-highspeed property is deprecated, so please use common DT binding for this, which is "cap-mmc-highspeed".
Quoted 5 lines
arch/arm64/boot/dts/exynos/exynos7-espresso.dts +5
-0+ non-removable; + card-detect-delay = <200>; + clock-frequency = <800000000>; + samsung,dw-mshc-ciu-div = <3>; + samsung,dw-mshc-sdr-timing = <0 4>;arch/arm64/boot/dts/exynos/exynos7-espresso.dts line 71
Quoted 10 lines
arch/arm64/boot/dts/exynos/exynos7-espresso.dts +10
-0+ samsung,dw-mshc-ddr-timing = <0 2>; + pinctrl-names = "default"; + pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_qrdy &sd0_bus1 &sd0_bus4 &sd0_bus8>; + bus-width = <8>; +}; + +&mmc_2 { + status = "okay"; + num-slots = <1>; + supports-highspeed;Here also common DT binding please "cap-sd-highspeed"
Quoted 8 lines
Quoted 4 lines
Above you suggest "cap-mmc-highspeed" to replace the same deprecated property, but here "cap-sd-highspeed". What is the rationale behind using only one particular new property and not both for both controllers?
Well, on this particular board
dw_mmcchannels are dedicated to use only one kind of card. e.g.mmc_0is for eMMC and which is non-removable andmmc_2is for SD cards. Although controller supports both the properties on all channel on this SoC.
Will use "cap-sd/mmc-highspeed" instead of "supports-highspeed".
Regards,
Abhilash
Quoted 14 lines
Quoted 3 lines
Best regards,
Tomasz--
Regards,
Alim_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel at lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
PATCH v2 7/7 arm64: exynos: Enable rtc and watchdog support for Exynos7
In reply to Abhilash KesavanEnable rtc and watchdog support for exynos7 SoCs.
--- arch/arm64/Kconfig | 3 +++ 1 file changed, 3 insertions(+)
arch/arm64/Kconfig +3 -0
@@ -158,6 +158,9 @@ config ARCH_EXYNOS7 select COMMON_CLK_SAMSUNG select PINCTRL select PINCTRL_EXYNOS + select HAVE_S3C2410_WATCHDOG if WATCHDOG + select HAVE_S3C_RTC if RTC_CLASS + help This enables support for Samsung Exynos7 SoC family
Signature · 1 line
1.7.9.5