* [PATCH 0/2] Support for CMU_ISP clock domain on Exynos3250
@ 2015-03-02 13:17 Beata Michalska
2015-03-02 13:17 ` [PATCH 1/2] clk: samsung: exynos3250: Add driver for CMU_ISP clock domain Beata Michalska
2015-03-02 13:17 ` [PATCH 2/2] ARM: dts: exynos3250: Add assigned clock parents to CMU node Beata Michalska
0 siblings, 2 replies; 7+ messages in thread
From: Beata Michalska @ 2015-03-02 13:17 UTC (permalink / raw)
To: s.nawrocki, tomasz.figa, mturquette, kgene
Cc: linux-kernel, linux-samsung-soc, devicetree, cw00.choi,
kyungmin.park, sw0312.kim
Hi All,
This simple patchset adds support for CMU_ISP clock domain
on Exynos3250.
Best Regards
Beata Michalska
---
Beata Michalska (1):
ARM: dts: exynos3250: Add assigned clock parents to CMU node
Tomasz Figa (1):
clk: samsung: exynos3250: Add driver for CMU_ISP clock domain
.../devicetree/bindings/clock/exynos3250-clock.txt | 8 +
arch/arm/boot/dts/exynos3250.dtsi | 4 +
drivers/clk/samsung/clk-exynos3250.c | 163 ++++++++++++++++++++
include/dt-bindings/clock/exynos3250.h | 61 ++++++++
4 files changed, 236 insertions(+)
--
1.7.9.5
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH 1/2] clk: samsung: exynos3250: Add driver for CMU_ISP clock domain
2015-03-02 13:17 [PATCH 0/2] Support for CMU_ISP clock domain on Exynos3250 Beata Michalska
@ 2015-03-02 13:17 ` Beata Michalska
2015-03-17 10:52 ` Sylwester Nawrocki
2015-03-02 13:17 ` [PATCH 2/2] ARM: dts: exynos3250: Add assigned clock parents to CMU node Beata Michalska
1 sibling, 1 reply; 7+ messages in thread
From: Beata Michalska @ 2015-03-02 13:17 UTC (permalink / raw)
To: s.nawrocki, tomasz.figa, mturquette, kgene
Cc: linux-kernel, linux-samsung-soc, devicetree, cw00.choi,
kyungmin.park, sw0312.kim
From: Tomasz Figa <t.figa@samsung.com>
Add clock controller for CMU ISP clock domain on Exynos3250,
providing clocks for FIMC-IS subsystem.
[b.michalska:use samsung_cmu_register_one to register
the provider; updated DT binding documentation]
Signed-off-by: Tomasz Figa <t.figa@samsung.com>
Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
Signed-off-by: Beata Michalska <b.michalska@samsung.com>
Acked-by: Kyungmin Park <kyungmin.park@samsung.com>
---
.../devicetree/bindings/clock/exynos3250-clock.txt | 8 +
drivers/clk/samsung/clk-exynos3250.c | 163 ++++++++++++++++++++
include/dt-bindings/clock/exynos3250.h | 61 ++++++++
3 files changed, 232 insertions(+)
diff --git a/Documentation/devicetree/bindings/clock/exynos3250-clock.txt b/Documentation/devicetree/bindings/clock/exynos3250-clock.txt
index f57d9dd..f1738b8 100644
--- a/Documentation/devicetree/bindings/clock/exynos3250-clock.txt
+++ b/Documentation/devicetree/bindings/clock/exynos3250-clock.txt
@@ -9,6 +9,8 @@ Required Properties:
- "samsung,exynos3250-cmu" - controller compatible with Exynos3250 SoC.
- "samsung,exynos3250-cmu-dmc" - controller compatible with
Exynos3250 SoC for Dynamic Memory Controller domain.
+ - "samsung,exynos3250-cmu-isp" - ISP block clock controller compatible
+ with Exynos3250 SOC
- reg: physical base address of the controller and length of memory mapped
region.
@@ -36,6 +38,12 @@ Example 1: Examples of clock controller nodes are listed below.
#clock-cells = <1>;
};
+ cmu_isp: clock-controller@10048000 {
+ compatible = "samsung,exynos3250-cmu-isp";
+ reg = <0x10048000 0x1000>;
+ #clock-cells = <1>;
+ };
+
Example 2: UART controller node that consumes the clock generated by the clock
controller. Refer to the standard clock bindings for information
about 'clocks' and 'clock-names' property.
diff --git a/drivers/clk/samsung/clk-exynos3250.c b/drivers/clk/samsung/clk-exynos3250.c
index cc4c348..e5dc48c 100644
--- a/drivers/clk/samsung/clk-exynos3250.c
+++ b/drivers/clk/samsung/clk-exynos3250.c
@@ -894,3 +894,166 @@ static void __init exynos3250_cmu_dmc_init(struct device_node *np)
}
CLK_OF_DECLARE(exynos3250_cmu_dmc, "samsung,exynos3250-cmu-dmc",
exynos3250_cmu_dmc_init);
+
+
+/*
+ * CMU ISP
+ */
+
+#define DIV_ISP0 0x300
+#define DIV_ISP1 0x304
+#define GATE_IP_ISP0 0x800
+#define GATE_IP_ISP1 0x804
+#define GATE_SCLK_ISP 0x900
+
+static struct samsung_div_clock isp_div_clks[] __initdata = {
+ /*
+ * NOTE: Following table is sorted by register address in ascending
+ * order and then bitfield shift in descending order, as it is done
+ * in the User's Manual. When adding new entries, please make sure
+ * that the order is preserved, to avoid merge conflicts and make
+ * further work with defined data easier.
+ */
+ /* DIV_ISP0 */
+ DIV(CLK_DIV_ISP1, "div_isp1", "mout_aclk_266_sub", DIV_ISP0, 4, 3),
+ DIV(CLK_DIV_ISP0, "div_isp0", "mout_aclk_266_sub", DIV_ISP0, 0, 3),
+
+ /* DIV_ISP1 */
+ DIV(CLK_DIV_MCUISP1, "div_mcuisp1", "mout_aclk_400_mcuisp_sub",
+ DIV_ISP1, 8, 3),
+ DIV(CLK_DIV_MCUISP0, "div_mcuisp0", "mout_aclk_400_mcuisp_sub",
+ DIV_ISP1, 4, 3),
+ DIV(CLK_DIV_MPWM, "div_mpwm", "div_isp1", DIV_ISP1, 0, 3),
+};
+
+static struct samsung_gate_clock isp_gate_clks[] __initdata = {
+ /*
+ * NOTE: Following table is sorted by register address in ascending
+ * order and then bitfield shift in descending order, as it is done
+ * in the User's Manual. When adding new entries, please make sure
+ * that the order is preserved, to avoid merge conflicts and make
+ * further work with defined data easier.
+ */
+
+ /* GATE_IP_ISP0 */
+ GATE(CLK_UART_ISP, "uart_isp", "uart_isp_top",
+ GATE_IP_ISP0, 31, CLK_IGNORE_UNUSED, 0),
+ GATE(CLK_WDT_ISP, "wdt_isp", "mout_aclk_266_sub",
+ GATE_IP_ISP0, 30, CLK_IGNORE_UNUSED, 0),
+ GATE(CLK_PWM_ISP, "pwm_isp", "mout_aclk_266_sub",
+ GATE_IP_ISP0, 28, CLK_IGNORE_UNUSED, 0),
+ GATE(CLK_I2C1_ISP, "i2c1_isp", "mout_aclk_266_sub",
+ GATE_IP_ISP0, 26, CLK_IGNORE_UNUSED, 0),
+ GATE(CLK_I2C0_ISP, "i2c0_isp", "mout_aclk_266_sub",
+ GATE_IP_ISP0, 25, CLK_IGNORE_UNUSED, 0),
+ GATE(CLK_MPWM_ISP, "mpwm_isp", "mout_aclk_266_sub",
+ GATE_IP_ISP0, 24, CLK_IGNORE_UNUSED, 0),
+ GATE(CLK_MCUCTL_ISP, "mcuctl_isp", "mout_aclk_266_sub",
+ GATE_IP_ISP0, 23, CLK_IGNORE_UNUSED, 0),
+ GATE(CLK_PPMUISPX, "ppmuispx", "mout_aclk_266_sub",
+ GATE_IP_ISP0, 21, CLK_IGNORE_UNUSED, 0),
+ GATE(CLK_PPMUISPMX, "ppmuispmx", "mout_aclk_266_sub",
+ GATE_IP_ISP0, 20, CLK_IGNORE_UNUSED, 0),
+ GATE(CLK_QE_LITE1, "qe_lite1", "mout_aclk_266_sub",
+ GATE_IP_ISP0, 18, CLK_IGNORE_UNUSED, 0),
+ GATE(CLK_QE_LITE0, "qe_lite0", "mout_aclk_266_sub",
+ GATE_IP_ISP0, 17, CLK_IGNORE_UNUSED, 0),
+ GATE(CLK_QE_FD, "qe_fd", "mout_aclk_266_sub",
+ GATE_IP_ISP0, 16, CLK_IGNORE_UNUSED, 0),
+ GATE(CLK_QE_DRC, "qe_drc", "mout_aclk_266_sub",
+ GATE_IP_ISP0, 15, CLK_IGNORE_UNUSED, 0),
+ GATE(CLK_QE_ISP, "qe_isp", "mout_aclk_266_sub",
+ GATE_IP_ISP0, 14, CLK_IGNORE_UNUSED, 0),
+ GATE(CLK_CSIS1, "csis1", "mout_aclk_266_sub",
+ GATE_IP_ISP0, 13, CLK_IGNORE_UNUSED, 0),
+ GATE(CLK_SMMU_LITE1, "smmu_lite1", "mout_aclk_266_sub",
+ GATE_IP_ISP0, 12, CLK_IGNORE_UNUSED, 0),
+ GATE(CLK_SMMU_LITE0, "smmu_lite0", "mout_aclk_266_sub",
+ GATE_IP_ISP0, 11, CLK_IGNORE_UNUSED, 0),
+ GATE(CLK_SMMU_FD, "smmu_fd", "mout_aclk_266_sub",
+ GATE_IP_ISP0, 10, CLK_IGNORE_UNUSED, 0),
+ GATE(CLK_SMMU_DRC, "smmu_drc", "mout_aclk_266_sub",
+ GATE_IP_ISP0, 9, CLK_IGNORE_UNUSED, 0),
+ GATE(CLK_SMMU_ISP, "smmu_isp", "mout_aclk_266_sub",
+ GATE_IP_ISP0, 8, CLK_IGNORE_UNUSED, 0),
+ GATE(CLK_GICISP, "gicisp", "mout_aclk_266_sub",
+ GATE_IP_ISP0, 7, CLK_IGNORE_UNUSED, 0),
+ GATE(CLK_CSIS0, "csis0", "mout_aclk_266_sub",
+ GATE_IP_ISP0, 6, CLK_IGNORE_UNUSED, 0),
+ GATE(CLK_MCUISP, "mcuisp", "mout_aclk_266_sub",
+ GATE_IP_ISP0, 5, CLK_IGNORE_UNUSED, 0),
+ GATE(CLK_LITE1, "lite1", "mout_aclk_266_sub",
+ GATE_IP_ISP0, 4, CLK_IGNORE_UNUSED, 0),
+ GATE(CLK_LITE0, "lite0", "mout_aclk_266_sub",
+ GATE_IP_ISP0, 3, CLK_IGNORE_UNUSED, 0),
+ GATE(CLK_FD, "fd", "mout_aclk_266_sub",
+ GATE_IP_ISP0, 2, CLK_IGNORE_UNUSED, 0),
+ GATE(CLK_DRC, "drc", "mout_aclk_266_sub",
+ GATE_IP_ISP0, 1, CLK_IGNORE_UNUSED, 0),
+ GATE(CLK_ISP, "isp", "mout_aclk_266_sub",
+ GATE_IP_ISP0, 0, CLK_IGNORE_UNUSED, 0),
+
+ /* GATE_IP_ISP1 */
+ GATE(CLK_QE_ISPCX, "qe_ispcx", "uart_isp_top",
+ GATE_IP_ISP0, 21, CLK_IGNORE_UNUSED, 0),
+ GATE(CLK_QE_SCALERP, "qe_scalerp", "uart_isp_top",
+ GATE_IP_ISP0, 20, CLK_IGNORE_UNUSED, 0),
+ GATE(CLK_QE_SCALERC, "qe_scalerc", "uart_isp_top",
+ GATE_IP_ISP0, 19, CLK_IGNORE_UNUSED, 0),
+ GATE(CLK_SMMU_SCALERP, "smmu_scalerp", "uart_isp_top",
+ GATE_IP_ISP0, 18, CLK_IGNORE_UNUSED, 0),
+ GATE(CLK_SMMU_SCALERC, "smmu_scalerc", "uart_isp_top",
+ GATE_IP_ISP0, 17, CLK_IGNORE_UNUSED, 0),
+ GATE(CLK_SCALERP, "scalerp", "uart_isp_top",
+ GATE_IP_ISP0, 16, CLK_IGNORE_UNUSED, 0),
+ GATE(CLK_SCALERC, "scalerc", "uart_isp_top",
+ GATE_IP_ISP0, 15, CLK_IGNORE_UNUSED, 0),
+ GATE(CLK_SPI1_ISP, "spi1_isp", "uart_isp_top",
+ GATE_IP_ISP0, 13, CLK_IGNORE_UNUSED, 0),
+ GATE(CLK_SPI0_ISP, "spi0_isp", "uart_isp_top",
+ GATE_IP_ISP0, 12, CLK_IGNORE_UNUSED, 0),
+ GATE(CLK_SMMU_ISPCX, "smmu_ispcx", "uart_isp_top",
+ GATE_IP_ISP0, 4, CLK_IGNORE_UNUSED, 0),
+ GATE(CLK_ASYNCAXIM, "asyncaxim", "uart_isp_top",
+ GATE_IP_ISP0, 0, CLK_IGNORE_UNUSED, 0),
+
+ /* GATE_SCLK_ISP */
+ GATE(CLK_SCLK_MPWM_ISP, "sclk_mpwm_isp", "div_mpwm",
+ GATE_SCLK_ISP, 0, CLK_IGNORE_UNUSED, 0),
+};
+
+static struct samsung_cmu_info isp_cmu_info __initdata = {
+ .div_clks = isp_div_clks,
+ .nr_div_clks = ARRAY_SIZE(isp_div_clks),
+ .gate_clks = isp_gate_clks,
+ .nr_gate_clks = ARRAY_SIZE(isp_gate_clks),
+ .nr_clk_ids = NR_CLKS_ISP,
+};
+
+static int __init exynos3250_cmu_isp_probe(struct platform_device *pdev)
+{
+ struct device_node *np = pdev->dev.of_node;
+
+ samsung_cmu_register_one(np, &isp_cmu_info);
+ return 0;
+}
+
+static const struct of_device_id exynos3250_cmu_isp_of_match[] = {
+ { .compatible = "samsung,exynos3250-cmu-isp", },
+ { /* sentinel */ }
+};
+
+static struct platform_driver exynos3250_cmu_isp_driver = {
+ .driver = {
+ .name = "exynos3250-cmu-isp",
+ .of_match_table = exynos3250_cmu_isp_of_match,
+ },
+};
+
+static int exynos3250_cmu_platform_init(void)
+{
+ return platform_driver_probe(&exynos3250_cmu_isp_driver,
+ exynos3250_cmu_isp_probe);
+}
+subsys_initcall(exynos3250_cmu_platform_init);
+
diff --git a/include/dt-bindings/clock/exynos3250.h b/include/dt-bindings/clock/exynos3250.h
index 961b9c1..aab088d 100644
--- a/include/dt-bindings/clock/exynos3250.h
+++ b/include/dt-bindings/clock/exynos3250.h
@@ -282,4 +282,65 @@
*/
#define NR_CLKS_DMC 21
+/*
+ * CMU ISP
+ */
+
+/* Dividers */
+
+#define CLK_DIV_ISP1 1
+#define CLK_DIV_ISP0 2
+#define CLK_DIV_MCUISP1 3
+#define CLK_DIV_MCUISP0 4
+#define CLK_DIV_MPWM 5
+
+/* Gates */
+
+#define CLK_UART_ISP 8
+#define CLK_WDT_ISP 9
+#define CLK_PWM_ISP 10
+#define CLK_I2C1_ISP 11
+#define CLK_I2C0_ISP 12
+#define CLK_MPWM_ISP 13
+#define CLK_MCUCTL_ISP 14
+#define CLK_PPMUISPX 15
+#define CLK_PPMUISPMX 16
+#define CLK_QE_LITE1 17
+#define CLK_QE_LITE0 18
+#define CLK_QE_FD 19
+#define CLK_QE_DRC 20
+#define CLK_QE_ISP 21
+#define CLK_CSIS1 22
+#define CLK_SMMU_LITE1 23
+#define CLK_SMMU_LITE0 24
+#define CLK_SMMU_FD 25
+#define CLK_SMMU_DRC 26
+#define CLK_SMMU_ISP 27
+#define CLK_GICISP 28
+#define CLK_CSIS0 29
+#define CLK_MCUISP 30
+#define CLK_LITE1 31
+#define CLK_LITE0 32
+#define CLK_FD 33
+#define CLK_DRC 34
+#define CLK_ISP 35
+#define CLK_QE_ISPCX 36
+#define CLK_QE_SCALERP 37
+#define CLK_QE_SCALERC 38
+#define CLK_SMMU_SCALERP 39
+#define CLK_SMMU_SCALERC 40
+#define CLK_SCALERP 41
+#define CLK_SCALERC 42
+#define CLK_SPI1_ISP 43
+#define CLK_SPI0_ISP 44
+#define CLK_SMMU_ISPCX 45
+#define CLK_ASYNCAXIM 46
+#define CLK_SCLK_MPWM_ISP 47
+
+/*
+ * Total number of clocks of CMU_ISP.
+ * NOTE: Must be equal to last clock ID increased by one.
+ */
+#define NR_CLKS_ISP 48
+
#endif /* _DT_BINDINGS_CLOCK_SAMSUNG_EXYNOS3250_CLOCK_H */
--
1.7.9.5
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH 2/2] ARM: dts: exynos3250: Add assigned clock parents to CMU node
2015-03-02 13:17 [PATCH 0/2] Support for CMU_ISP clock domain on Exynos3250 Beata Michalska
2015-03-02 13:17 ` [PATCH 1/2] clk: samsung: exynos3250: Add driver for CMU_ISP clock domain Beata Michalska
@ 2015-03-02 13:17 ` Beata Michalska
2015-03-17 10:53 ` Sylwester Nawrocki
1 sibling, 1 reply; 7+ messages in thread
From: Beata Michalska @ 2015-03-02 13:17 UTC (permalink / raw)
To: s.nawrocki, tomasz.figa, mturquette, kgene
Cc: linux-kernel, linux-samsung-soc, devicetree, cw00.choi,
kyungmin.park, sw0312.kim
Use assigned-clocks/assigned-clock-parents properties for
CMU clock controller DT node to secure proper clock setup:
switching the two muxes to root oscillator clock is not only
required for proper powering down the ISP power domain,
but it also reduces the risk of accessing the ISP CMU
registers while the ISP power domain remains turned off
(i.e. through the common clock framework by clk_summary)
Signed-off-by: Beata Michalska <b.michalska@samsung.com>
Acked-by: Kyungmin Park <kyungmin.park@samsung.com>
---
arch/arm/boot/dts/exynos3250.dtsi | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/arch/arm/boot/dts/exynos3250.dtsi b/arch/arm/boot/dts/exynos3250.dtsi
index 277b48b..6d6118e 100644
--- a/arch/arm/boot/dts/exynos3250.dtsi
+++ b/arch/arm/boot/dts/exynos3250.dtsi
@@ -172,6 +172,10 @@
compatible = "samsung,exynos3250-cmu";
reg = <0x10030000 0x20000>;
#clock-cells = <1>;
+ assigned-clocks = <&cmu CLK_MOUT_ACLK_400_MCUISP_SUB>,
+ <&cmu CLK_MOUT_ACLK_266_SUB>;
+ assigned-clock-parents = <&cmu CLK_FIN_PLL>,
+ <&cmu CLK_FIN_PLL>;
};
cmu_dmc: clock-controller@105C0000 {
--
1.7.9.5
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH 1/2] clk: samsung: exynos3250: Add driver for CMU_ISP clock domain
2015-03-02 13:17 ` [PATCH 1/2] clk: samsung: exynos3250: Add driver for CMU_ISP clock domain Beata Michalska
@ 2015-03-17 10:52 ` Sylwester Nawrocki
2015-03-17 12:07 ` Beata Michalska
0 siblings, 1 reply; 7+ messages in thread
From: Sylwester Nawrocki @ 2015-03-17 10:52 UTC (permalink / raw)
To: Beata Michalska
Cc: tomasz.figa, mturquette, kgene, linux-kernel, linux-samsung-soc,
devicetree, cw00.choi, kyungmin.park, sw0312.kim
On 02/03/15 14:17, Beata Michalska wrote:
> From: Tomasz Figa <t.figa@samsung.com>
>
> Add clock controller for CMU ISP clock domain on Exynos3250,
> providing clocks for FIMC-IS subsystem.
>
> [b.michalska:use samsung_cmu_register_one to register
> the provider; updated DT binding documentation]
Thanks for moving the initial clocks settings to dts, I've added this
patch to my tree.
In future please don't forget to add version information to subsequent
patch iterations, it helps to ensure the right patch version is being
applied.
--
Regards,
Sylwester
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 2/2] ARM: dts: exynos3250: Add assigned clock parents to CMU node
2015-03-02 13:17 ` [PATCH 2/2] ARM: dts: exynos3250: Add assigned clock parents to CMU node Beata Michalska
@ 2015-03-17 10:53 ` Sylwester Nawrocki
2015-03-17 15:19 ` Kukjin Kim
0 siblings, 1 reply; 7+ messages in thread
From: Sylwester Nawrocki @ 2015-03-17 10:53 UTC (permalink / raw)
To: Beata Michalska, kgene
Cc: tomasz.figa, mturquette, linux-kernel, linux-samsung-soc,
devicetree, cw00.choi, kyungmin.park, sw0312.kim
On 02/03/15 14:17, Beata Michalska wrote:
> Use assigned-clocks/assigned-clock-parents properties for
> CMU clock controller DT node to secure proper clock setup:
> switching the two muxes to root oscillator clock is not only
> required for proper powering down the ISP power domain,
> but it also reduces the risk of accessing the ISP CMU
> registers while the ISP power domain remains turned off
> (i.e. through the common clock framework by clk_summary)
>
> Signed-off-by: Beata Michalska <b.michalska@samsung.com>
> Acked-by: Kyungmin Park <kyungmin.park@samsung.com>
Acked-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Kukjin, please merge this patch for v4.1. I merged the exynos3250
CMU ISP driver patch and we will have regression if $subject patch
is not applied, i.e. reading /sys/kernel/debug/clk/clk_summary
would cause system hang on exynos3250.
> ---
> arch/arm/boot/dts/exynos3250.dtsi | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/arch/arm/boot/dts/exynos3250.dtsi b/arch/arm/boot/dts/exynos3250.dtsi
> index 277b48b..6d6118e 100644
> --- a/arch/arm/boot/dts/exynos3250.dtsi
> +++ b/arch/arm/boot/dts/exynos3250.dtsi
> @@ -172,6 +172,10 @@
> compatible = "samsung,exynos3250-cmu";
> reg = <0x10030000 0x20000>;
> #clock-cells = <1>;
> + assigned-clocks = <&cmu CLK_MOUT_ACLK_400_MCUISP_SUB>,
> + <&cmu CLK_MOUT_ACLK_266_SUB>;
> + assigned-clock-parents = <&cmu CLK_FIN_PLL>,
> + <&cmu CLK_FIN_PLL>;
> };
>
> cmu_dmc: clock-controller@105C0000 {
>
Thanks,
Sylwester
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 1/2] clk: samsung: exynos3250: Add driver for CMU_ISP clock domain
2015-03-17 10:52 ` Sylwester Nawrocki
@ 2015-03-17 12:07 ` Beata Michalska
0 siblings, 0 replies; 7+ messages in thread
From: Beata Michalska @ 2015-03-17 12:07 UTC (permalink / raw)
To: Sylwester Nawrocki
Cc: tomasz.figa, mturquette, kgene, linux-kernel, linux-samsung-soc,
devicetree, cw00.choi, kyungmin.park, sw0312.kim
On 03/17/2015 11:52 AM, Sylwester Nawrocki wrote:
> On 02/03/15 14:17, Beata Michalska wrote:
>> From: Tomasz Figa <t.figa@samsung.com>
>>
>> Add clock controller for CMU ISP clock domain on Exynos3250,
>> providing clocks for FIMC-IS subsystem.
>>
>> [b.michalska:use samsung_cmu_register_one to register
>> the provider; updated DT binding documentation]
>
> Thanks for moving the initial clocks settings to dts, I've added this
> patch to my tree.
> In future please don't forget to add version information to subsequent
> patch iterations, it helps to ensure the right patch version is being
> applied.
>
This must have slipped my mind, obviously - the patch version.
Apologies for that.
BR
Beata
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 2/2] ARM: dts: exynos3250: Add assigned clock parents to CMU node
2015-03-17 10:53 ` Sylwester Nawrocki
@ 2015-03-17 15:19 ` Kukjin Kim
0 siblings, 0 replies; 7+ messages in thread
From: Kukjin Kim @ 2015-03-17 15:19 UTC (permalink / raw)
To: Sylwester Nawrocki
Cc: Beata Michalska, kgene, tomasz.figa, mturquette, linux-kernel,
linux-samsung-soc, devicetree, cw00.choi, kyungmin.park,
sw0312.kim
On 03/17/15 19:53, Sylwester Nawrocki wrote:
> On 02/03/15 14:17, Beata Michalska wrote:
>> Use assigned-clocks/assigned-clock-parents properties for
>> CMU clock controller DT node to secure proper clock setup:
>> switching the two muxes to root oscillator clock is not only
>> required for proper powering down the ISP power domain,
>> but it also reduces the risk of accessing the ISP CMU
>> registers while the ISP power domain remains turned off
>> (i.e. through the common clock framework by clk_summary)
>>
>> Signed-off-by: Beata Michalska <b.michalska@samsung.com>
>> Acked-by: Kyungmin Park <kyungmin.park@samsung.com>
>
> Acked-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
>
> Kukjin, please merge this patch for v4.1. I merged the exynos3250
> CMU ISP driver patch and we will have regression if $subject patch
> is not applied, i.e. reading /sys/kernel/debug/clk/clk_summary
> would cause system hang on exynos3250.
>
OK, applied.
Thanks,
Kukjin
>> ---
>> arch/arm/boot/dts/exynos3250.dtsi | 4 ++++
>> 1 file changed, 4 insertions(+)
>>
>> diff --git a/arch/arm/boot/dts/exynos3250.dtsi b/arch/arm/boot/dts/exynos3250.dtsi
>> index 277b48b..6d6118e 100644
>> --- a/arch/arm/boot/dts/exynos3250.dtsi
>> +++ b/arch/arm/boot/dts/exynos3250.dtsi
>> @@ -172,6 +172,10 @@
>> compatible = "samsung,exynos3250-cmu";
>> reg = <0x10030000 0x20000>;
>> #clock-cells = <1>;
>> + assigned-clocks = <&cmu CLK_MOUT_ACLK_400_MCUISP_SUB>,
>> + <&cmu CLK_MOUT_ACLK_266_SUB>;
>> + assigned-clock-parents = <&cmu CLK_FIN_PLL>,
>> + <&cmu CLK_FIN_PLL>;
>> };
>>
>> cmu_dmc: clock-controller@105C0000 {
>>
>
> Thanks,
> Sylwester
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2015-03-17 15:19 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-03-02 13:17 [PATCH 0/2] Support for CMU_ISP clock domain on Exynos3250 Beata Michalska
2015-03-02 13:17 ` [PATCH 1/2] clk: samsung: exynos3250: Add driver for CMU_ISP clock domain Beata Michalska
2015-03-17 10:52 ` Sylwester Nawrocki
2015-03-17 12:07 ` Beata Michalska
2015-03-02 13:17 ` [PATCH 2/2] ARM: dts: exynos3250: Add assigned clock parents to CMU node Beata Michalska
2015-03-17 10:53 ` Sylwester Nawrocki
2015-03-17 15:19 ` Kukjin Kim
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.