@@ -1,41 +0,0 @@-* Samsung Exynos5250 Clock Controller--The Exynos5250 clock controller generates and supplies clock to various-controllers within the Exynos5250 SoC.--Required Properties:--- compatible: should be one of the following.- - "samsung,exynos5250-clock" - controller compatible with Exynos5250 SoC.--- reg: physical base address of the controller and length of memory mapped- region.--- #clock-cells: should be 1.--Each clock is assigned an identifier and client nodes can use this identifier-to specify the clock which they consume.--All available clocks are defined as preprocessor macros in-dt-bindings/clock/exynos5250.h header and can be used in device-tree sources.--Example 1: An example of a clock controller node is listed below.-- clock: clock-controller@10010000 {- compatible = "samsung,exynos5250-clock";- reg = <0x10010000 0x30000>;- #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.-- serial@13820000 {- compatible = "samsung,exynos4210-uart";- reg = <0x13820000 0x100>;- interrupts = <0 54 0>;- clocks = <&clock CLK_UART2>, <&clock CLK_SCLK_UART2>;- clock-names = "uart", "clk_uart_baud0";- };
From: Krzysztof Kozlowski <hidden> Date: 2021-08-25 13:41:45
Document the bindings for Samsung Exynos external to SoC
(oscclk/XXTI/XusbXTI) clock provided on boards. The bindings are
already implemented in most of the Exynos clock drivers and DTS files.
Signed-off-by: Krzysztof Kozlowski <redacted>
Reviewed-by: Sam Protsenko <semen.protsenko@linaro.org>
Reviewed-by: Rob Herring <robh@kernel.org>
---
.../clock/samsung,exynos-ext-clock.yaml | 46 +++++++++++++++++++
1 file changed, 46 insertions(+)
create mode 100644 Documentation/devicetree/bindings/clock/samsung,exynos-ext-clock.yaml
@@ -1,42 +0,0 @@-* Samsung Exynos5420 Clock Controller--The Exynos5420 clock controller generates and supplies clock to various-controllers within the Exynos5420 SoC and for the Exynos5800 SoC.--Required Properties:--- compatible: should be one of the following.- - "samsung,exynos5420-clock" - controller compatible with Exynos5420 SoC.- - "samsung,exynos5800-clock" - controller compatible with Exynos5800 SoC.--- reg: physical base address of the controller and length of memory mapped- region.--- #clock-cells: should be 1.--Each clock is assigned an identifier and client nodes can use this identifier-to specify the clock which they consume.--All available clocks are defined as preprocessor macros in-dt-bindings/clock/exynos5420.h header and can be used in device-tree sources.--Example 1: An example of a clock controller node is listed below.-- clock: clock-controller@10010000 {- compatible = "samsung,exynos5420-clock";- reg = <0x10010000 0x30000>;- #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.-- serial@13820000 {- compatible = "samsung,exynos4210-uart";- reg = <0x13820000 0x100>;- interrupts = <0 54 0>;- clocks = <&clock CLK_UART2>, <&clock CLK_SCLK_UART2>;- clock-names = "uart", "clk_uart_baud0";- };
@@ -1,57 +0,0 @@-* Samsung Exynos3250 Clock Controller--The Exynos3250 clock controller generates and supplies clock to various-controllers within the Exynos3250 SoC.--Required Properties:--- compatible: should be one of the following.- - "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.--- #clock-cells: should be 1.--Each clock is assigned an identifier and client nodes can use this identifier-to specify the clock which they consume.--All available clocks are defined as preprocessor macros in-dt-bindings/clock/exynos3250.h header and can be used in device-tree sources.--Example 1: Examples of clock controller nodes are listed below.-- cmu: clock-controller@10030000 {- compatible = "samsung,exynos3250-cmu";- reg = <0x10030000 0x20000>;- #clock-cells = <1>;- };-- cmu_dmc: clock-controller@105c0000 {- compatible = "samsung,exynos3250-cmu-dmc";- reg = <0x105C0000 0x2000>;- #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.-- serial@13800000 {- compatible = "samsung,exynos4210-uart";- reg = <0x13800000 0x100>;- interrupts = <0 109 0>;- clocks = <&cmu CLK_UART0>, <&cmu CLK_SCLK_UART0>;- clock-names = "uart", "clk_uart_baud0";- };
@@ -1,86 +0,0 @@-* Samsung Exynos4 Clock Controller--The Exynos4 clock controller generates and supplies clock to various controllers-within the Exynos4 SoC. The clock binding described here is applicable to all-SoC's in the Exynos4 family.--Required Properties:--- compatible: should be one of the following.- - "samsung,exynos4210-clock" - controller compatible with Exynos4210 SoC.- - "samsung,exynos4412-clock" - controller compatible with Exynos4412 SoC.--- reg: physical base address of the controller and length of memory mapped- region.--- #clock-cells: should be 1.--Each clock is assigned an identifier and client nodes can use this identifier-to specify the clock which they consume.--All available clocks are defined as preprocessor macros in-dt-bindings/clock/exynos4.h header and can be used in device-tree sources.--Example 1: An example of a clock controller node is listed below.-- clock: clock-controller@10030000 {- compatible = "samsung,exynos4210-clock";- reg = <0x10030000 0x20000>;- #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.-- serial@13820000 {- compatible = "samsung,exynos4210-uart";- reg = <0x13820000 0x100>;- interrupts = <0 54 0>;- clocks = <&clock CLK_UART2>, <&clock CLK_SCLK_UART2>;- clock-names = "uart", "clk_uart_baud0";- };--Exynos4412 SoC contains some additional clocks for FIMC-ISP (Camera ISP)-subsystem. Registers for those clocks are located in the ISP power domain.-Because those registers are also located in a different memory region than-the main clock controller, a separate clock controller has to be defined for-handling them.--Required Properties:--- compatible: should be "samsung,exynos4412-isp-clock".--- reg: physical base address of the ISP clock controller and length of memory- mapped region.--- #clock-cells: should be 1.--- clocks: list of the clock controller input clock identifiers,- from common clock bindings, should point to CLK_ACLK200 and- CLK_ACLK400_MCUISP clocks from the main clock controller.--- clock-names: list of the clock controller input clock names,- as described in clock-bindings.txt, should be "aclk200" and- "aclk400_mcuisp".--- power-domains: a phandle to ISP power domain node as described by- generic PM domain bindings.--Example 3: The clock controllers bindings for Exynos4412 SoCs.-- clock: clock-controller@10030000 {- compatible = "samsung,exynos4412-clock";- reg = <0x10030000 0x18000>;- #clock-cells = <1>;- };-- isp_clock: clock-controller@10048000 {- compatible = "samsung,exynos4412-isp-clock";- reg = <0x10048000 0x1000>;- #clock-cells = <1>;- power-domains = <&pd_isp>;- clocks = <&clock CLK_ACLK200>, <&clock CLK_ACLK400_MCUISP>;- clock-names = "aclk200", "aclk400_mcuisp";- };
@@ -1,103 +0,0 @@-* Samsung Audio Subsystem Clock Controller--The Samsung Audio Subsystem clock controller generates and supplies clocks-to Audio Subsystem block available in the S5PV210 and Exynos SoCs. The clock-binding described here is applicable to all SoCs in Exynos family.--Required Properties:--- compatible: should be one of the following:- - "samsung,exynos4210-audss-clock" - controller compatible with all Exynos4 SoCs.- - "samsung,exynos5250-audss-clock" - controller compatible with Exynos5250- SoCs.- - "samsung,exynos5410-audss-clock" - controller compatible with Exynos5410- SoCs.- - "samsung,exynos5420-audss-clock" - controller compatible with Exynos5420- SoCs.-- reg: physical base address and length of the controller's register set.--- #clock-cells: should be 1.--- clocks:- - pll_ref: Fixed rate PLL reference clock, parent of mout_audss. "fin_pll"- is used if not specified.- - pll_in: Input PLL to the AudioSS block, parent of mout_audss. "fout_epll"- is used if not specified.- - cdclk: External i2s clock, parent of mout_i2s. "cdclk0" is used if not- specified.- - sclk_audio: Audio bus clock, parent of mout_i2s. "sclk_audio0" is used if- not specified.- - sclk_pcm_in: PCM clock, parent of sclk_pcm. "sclk_pcm0" is used if not- specified.--- clock-names: Aliases for the above clocks. They should be "pll_ref",- "pll_in", "cdclk", "sclk_audio", and "sclk_pcm_in" respectively.--Optional Properties:-- - power-domains: a phandle to respective power domain node as described by- generic PM domain bindings (see power/power_domain.txt for more- information).--The following is the list of clocks generated by the controller. Each clock is-assigned an identifier and client nodes use this identifier to specify the-clock which they consume. Some of the clocks are available only on a particular-Exynos4 SoC and this is specified where applicable.--Provided clocks:--Clock ID SoC (if specific)--------------------------------------------------mout_audss 0-mout_i2s 1-dout_srp 2-dout_aud_bus 3-dout_i2s 4-srp_clk 5-i2s_bus 6-sclk_i2s 7-pcm_bus 8-sclk_pcm 9-adma 10 Exynos5420--Example 1: An example of a clock controller node using the default input- clock names is listed below.--clock_audss: audss-clock-controller@3810000 {- compatible = "samsung,exynos5250-audss-clock";- reg = <0x03810000 0x0C>;- #clock-cells = <1>;-};--Example 2: An example of a clock controller node with the input clocks- specified.--clock_audss: audss-clock-controller@3810000 {- compatible = "samsung,exynos5250-audss-clock";- reg = <0x03810000 0x0C>;- #clock-cells = <1>;- clocks = <&clock 1>, <&clock 7>, <&clock 138>, <&clock 160>,- <&ext_i2s_clk>;- clock-names = "pll_ref", "pll_in", "sclk_audio", "sclk_pcm_in", "cdclk";-};--Example 3: I2S 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.--i2s0: i2s@3830000 {- compatible = "samsung,i2s-v5";- reg = <0x03830000 0x100>;- dmas = <&pdma0 10- &pdma0 9- &pdma0 8>;- dma-names = "tx", "rx", "tx-sec";- clocks = <&clock_audss EXYNOS_I2S_BUS>,- <&clock_audss EXYNOS_I2S_BUS>,- <&clock_audss EXYNOS_SCLK_I2S>,- <&clock_audss EXYNOS_MOUT_AUDSS>,- <&clock_audss EXYNOS_MOUT_I2S>;- clock-names = "iis", "i2s_opclk0", "i2s_opclk1",- "mout_audss", "mout_i2s";-};
@@ -0,0 +1,80 @@+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)+%YAML1.2+---+$id:http://devicetree.org/schemas/clock/samsung,exynos-audss-clock.yaml#+$schema:http://devicetree.org/meta-schemas/core.yaml#++title:Samsung Exynos SoC Audio SubSystem clock controller++maintainers:+-Chanwoo Choi <cw00.choi@samsung.com>+-Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>+-Sylwester Nawrocki <s.nawrocki@samsung.com>+-Tomasz Figa <tomasz.figa@gmail.com>++description:|+All available clocks are defined as preprocessor macros in+include/dt-bindings/clock/exynos-audss-clk.h header.++properties:+compatible:+enum:+-samsung,exynos4210-audss-clock+-samsung,exynos5250-audss-clock+-samsung,exynos5410-audss-clock+-samsung,exynos5420-audss-clock++clocks:+minItems:2+items:+-description:+Fixed rate PLL reference clock, parent of mout_audss. "fin_pll" is+used if not specified.+-description:+Input PLL to the AudioSS block, parent of mout_audss. "fout_epll" is+used if not specified.+-description:+Audio bus clock, parent of mout_i2s. "sclk_audio0" is used if not+specified.+-description:+PCM clock, parent of sclk_pcm. "sclk_pcm0" is used if not specified.+-description:+External i2s clock, parent of mout_i2s. "cdclk0" is used if not+specified.++clock-names:+minItems:2+items:+-const:pll_ref+-const:pll_in+-const:sclk_audio+-const:sclk_pcm_in+-const:cdclk++"#clock-cells":+const:1++power-domains:+maxItems:1++reg:+maxItems:1++required:+-compatible+-clocks+-clock-names+-"#clock-cells"+-reg++additionalProperties:false++examples:+-|+clock-controller@3810000 {+compatible = "samsung,exynos5250-audss-clock";+reg = <0x03810000 0x0c>;+#clock-cells = <1>;+clocks = <&clock 1>, <&clock 7>, <&clock 138>, <&clock 160>, <&ext_i2s_clk>;+clock-names = "pll_ref", "pll_in", "sclk_audio", "sclk_pcm_in", "cdclk";+};
@@ -1,53 +0,0 @@-* Samsung Audio Subsystem Clock Controller--The Samsung Audio Subsystem clock controller generates and supplies clocks-to Audio Subsystem block available in the S5PV210 and compatible SoCs.--Required Properties:--- compatible: should be "samsung,s5pv210-audss-clock".-- reg: physical base address and length of the controller's register set.--- #clock-cells: should be 1.--- clocks:- - hclk: AHB bus clock of the Audio Subsystem.- - xxti: Optional fixed rate PLL reference clock, parent of mout_audss. If- not specified (i.e. xusbxti is used for PLL reference), it is fixed to- a clock named "xxti".- - fout_epll: Input PLL to the AudioSS block, parent of mout_audss.- - iiscdclk0: Optional external i2s clock, parent of mout_i2s. If not- specified, it is fixed to a clock named "iiscdclk0".- - sclk_audio0: Audio bus clock, parent of mout_i2s.--- clock-names: Aliases for the above clocks. They should be "hclk",- "xxti", "fout_epll", "iiscdclk0", and "sclk_audio0" respectively.--All available clocks are defined as preprocessor macros in-dt-bindings/clock/s5pv210-audss-clk.h header and can be used in device-tree sources.--Example: Clock controller node.-- clk_audss: clock-controller@c0900000 {- compatible = "samsung,s5pv210-audss-clock";- reg = <0xc0900000 0x1000>;- #clock-cells = <1>;- clock-names = "hclk", "xxti",- "fout_epll", "sclk_audio0";- clocks = <&clocks DOUT_HCLKP>, <&xxti>,- <&clocks FOUT_EPLL>, <&clocks SCLK_AUDIO0>;- };--Example: I2S 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.-- i2s0: i2s@3830000 {- /* ... */- clock-names = "iis", "i2s_opclk0",- "i2s_opclk1";- clocks = <&clk_audss CLK_I2S>, <&clk_audss CLK_I2S>,- <&clk_audss CLK_DOUT_AUD_BUS>;- /* ... */- };
@@ -0,0 +1,78 @@+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)+%YAML1.2+---+$id:http://devicetree.org/schemas/clock/samsung,s5pv210-audss-clock.yaml#+$schema:http://devicetree.org/meta-schemas/core.yaml#++title:Samsung S5Pv210 SoC Audio SubSystem clock controller++maintainers:+-Chanwoo Choi <cw00.choi@samsung.com>+-Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>+-Sylwester Nawrocki <s.nawrocki@samsung.com>+-Tomasz Figa <tomasz.figa@gmail.com>++description:|+All available clocks are defined as preprocessor macros in+include/dt-bindings/clock/s5pv210-audss.h header.++properties:+compatible:+const:samsung,s5pv210-audss-clock++clocks:+minItems:4+items:+-description:+AHB bus clock of the Audio Subsystem.+-description:+Optional fixed rate PLL reference clock, parent of mout_audss. If not+specified (i.e. xusbxti is used for PLL reference), it is fixed to a+clock named "xxti".+-description:+Input PLL to the AudioSS block, parent of mout_audss.+-description:+Audio bus clock, parent of mout_i2s.+-description:+Optional external i2s clock, parent of mout_i2s. If not specified, it+is fixed to a clock named "iiscdclk0".++clock-names:+minItems:4+items:+-const:hclk+-const:xxti+-const:fout_epll+-const:sclk_audio0+-const:iiscdclk0++"#clock-cells":+const:1++power-domains:+maxItems:1++reg:+maxItems:1++required:+-compatible+-clocks+-clock-names+-"#clock-cells"+-reg++additionalProperties:false++examples:+-|+#include <dt-bindings/clock/s5pv210.h>++clock-controller@c0900000 {+compatible = "samsung,s5pv210-audss-clock";+reg = <0xc0900000 0x1000>;+#clock-cells = <1>;+clock-names = "hclk", "xxti", "fout_epll", "sclk_audio0";+clocks = <&clocks DOUT_HCLKP>, <&xxti>, <&clocks FOUT_EPLL>,+<&clocks SCLK_AUDIO0>;+};
From: Stephen Boyd <sboyd@kernel.org> Date: 2021-08-29 07:06:10
Quoting Krzysztof Kozlowski (2021-08-25 06:40:49)
Convert Samsung Exynos5250 clock controller bindings to DT schema format
using json-schema.
Signed-off-by: Krzysztof Kozlowski <redacted>
Reviewed-by: Sam Protsenko <semen.protsenko@linaro.org>
---
From: Stephen Boyd <sboyd@kernel.org> Date: 2021-08-29 07:06:13
Quoting Krzysztof Kozlowski (2021-08-25 06:40:50)
Document the bindings for Samsung Exynos external to SoC
(oscclk/XXTI/XusbXTI) clock provided on boards. The bindings are
already implemented in most of the Exynos clock drivers and DTS files.
Signed-off-by: Krzysztof Kozlowski <redacted>
Reviewed-by: Sam Protsenko <semen.protsenko@linaro.org>
Reviewed-by: Rob Herring <robh@kernel.org>
---
From: Stephen Boyd <sboyd@kernel.org> Date: 2021-08-29 07:08:25
Quoting Krzysztof Kozlowski (2021-08-25 06:42:49)
Convert Samsung Exynos Audio SubSystem clock controller bindings to DT
schema format using json-schema.
Signed-off-by: Krzysztof Kozlowski <redacted>
Reviewed-by: Sam Protsenko <semen.protsenko@linaro.org>
---
From: Stephen Boyd <sboyd@kernel.org> Date: 2021-08-29 07:08:37
Quoting Krzysztof Kozlowski (2021-08-25 06:42:50)
Convert Samsung S5Pv210 Audio SubSystem clock controller bindings to DT
schema format using json-schema.
Signed-off-by: Krzysztof Kozlowski <redacted>
Reviewed-by: Sam Protsenko <semen.protsenko@linaro.org>
---
From: Stephen Boyd <sboyd@kernel.org> Date: 2021-08-29 07:09:48
Quoting Krzysztof Kozlowski (2021-08-25 06:40:48)
Hi,
Changes since v2:
1. Add reviews.
2. Split Exynos4 ISP into separate schema.
3. Add maxItems to clocks and power-domains (review feedback).
4. Do not allow samsung,exynos5420-clock and samsung,exynos5800-clock
without syscon. These clock controllers should always use syscon
to allow DMC bindings access the registers.
5. Drop assigned-clocks.
Changes since v1:
1. Patch 7/8: include header to fix clock IDs error in example.
From: Krzysztof Kozlowski <hidden> Date: 2021-08-30 06:52:11
On 29/08/2021 09:09, Stephen Boyd wrote:
Quoting Krzysztof Kozlowski (2021-08-25 06:40:48)
quoted
Hi,
Changes since v2:
1. Add reviews.
2. Split Exynos4 ISP into separate schema.
3. Add maxItems to clocks and power-domains (review feedback).
4. Do not allow samsung,exynos5420-clock and samsung,exynos5800-clock
without syscon. These clock controllers should always use syscon
to allow DMC bindings access the registers.
5. Drop assigned-clocks.
Changes since v1:
1. Patch 7/8: include header to fix clock IDs error in example.
I think this header file isn't in clk tree?
It is in Linus' tree... full path is:
include/dt-bindings/clock/s5pv210.h
What's missing is entry in MAINTAINERS.
Best regards,
Krzysztof
Where is this header? linux-next is now failing:
Documentation/devicetree/bindings/clock/samsung,exynos4412-isp-clock.example.dts:19:18:
fatal error: dt-bindings/clock/exynos4412.h: No such file or directory
19 | #include <dt-bindings/clock/exynos4412.h>
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[1]: *** [scripts/Makefile.lib:398:
Documentation/devicetree/bindings/clock/samsung,exynos4412-isp-clock.example.dt.yaml]
Error 1
Rob
Argh, it should be exynos4.h. Stephen mentioned it but I missed the
difference in number. I wonder how it passed dt_binding_check on my
machine...
Sorry for the mess, I'll send the fix.
Best regards,
Krzysztof