@@ -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-10 09:32:39
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>
---
.../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";- };
@@ -35,11 +38,18 @@ properties:assigned-clocks:trueassigned-clock-parents:trueassigned-clock-rates:true-clocks:true+clocks:+description:|+For samsung,exynos4412-isp-clock, the input clocks should be CLK_ACLK200+and CLK_ACLK400_MCUISP from the main clock controller.++clock-names:true"#clock-cells":const:1+power-domains:true+reg:maxItems:1
@@ -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,79 @@+# 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:true++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";+};
--
2.30.2
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
@@ -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,77 @@+# 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:true++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>;+};
--
2.30.2
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
@@ -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";-};
Seems like some examples and "Provided clocks" table were dropped in
in yaml binding. Also there is no description for example present in
yaml file. Is that some redundant info and was dropped intentionally?
I'm just worrying about losing some useful info during the conversion.
@@ -0,0 +1,79 @@+# 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:true++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";+};--
From: Sam Protsenko <semen.protsenko@linaro.org> Date: 2021-08-10 18:17:18
On Tue, 10 Aug 2021 at 12:32, Krzysztof Kozlowski
[off-list ref] wrote:
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>
---
Just want to mention that remaining users of such fixed clocks can be
converted to regular fixed-rate-clock, and then this binding can be
removed along with samsung_clk_of_register_fixed_ext() API? Just a
thought.
@@ -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";- };
@@ -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";- };
Are there any exynos*.txt bindings actually left after this series? If
no, maybe it's worth to remove this line while at it.
Yes, there are. These are the bindings which expect specific external
fixed clock and I don't know yet how to model it in dtschema.
Best regards,
Krzysztof
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
From: Krzysztof Kozlowski <hidden> Date: 2021-08-11 06:45:24
On 10/08/2021 19:49, Sam Protsenko wrote:
On Tue, 10 Aug 2021 at 12:32, Krzysztof Kozlowski
[off-list ref] wrote:
quoted
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>
---
Just want to mention that remaining users of such fixed clocks can be
converted to regular fixed-rate-clock, and then this binding can be
removed along with samsung_clk_of_register_fixed_ext() API? Just a
thought.
Removal of samsung_clk_of_register_fixed_ext() would cause ABI break,
probably acceptable for these devices. Yet still, someone would have to
do it and test it.
Best regards,
Krzysztof
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
@@ -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";-};
Seems like some examples and "Provided clocks" table were dropped in
in yaml binding. Also there is no description for example present in
yaml file. Is that some redundant info and was dropped intentionally?
I'm just worrying about losing some useful info during the conversion.
I don't see any point of having a clock consumer example in a clock
provider binding.
Best regards,
Krzysztof
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
@@ -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: Rob Herring <robh@kernel.org> Date: 2021-08-17 20:19:34
On Tue, 10 Aug 2021 11:31:39 +0200, Krzysztof Kozlowski wrote:
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>
---
.../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,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";- };
@@ -35,11 +38,18 @@ properties:assigned-clocks:trueassigned-clock-parents:trueassigned-clock-rates:true-clocks:true+clocks:+description:|+For samsung,exynos4412-isp-clock, the input clocks should be CLK_ACLK200+and CLK_ACLK400_MCUISP from the main clock controller.++clock-names:true"#clock-cells":const:1+power-domains:true+
How many?
Now all the flavors can have a power domain? Maybe this should be a
separate binding given this and the if/then below.
@@ -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";-};
Seems like some examples and "Provided clocks" table were dropped in
in yaml binding. Also there is no description for example present in
yaml file. Is that some redundant info and was dropped intentionally?
I'm just worrying about losing some useful info during the conversion.
I don't see any point of having a clock consumer example in a clock
provider binding.
@@ -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,79 @@+# 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:true
@@ -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";- };
@@ -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";- };
Is there a reason these are supported with or without 'syscon'?
Yes, the syscon is optional and needed only by the Exynos5422 DMC driver
(exynos5422-dmc.txt/samsung,exynos5422-dmc.yaml with
samsung,exynos5422-dmc compatible). Without that driver, there is no
need for syscon.
Best regards,
Krzysztof
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
@@ -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";- };
@@ -35,11 +38,18 @@ properties:assigned-clocks:trueassigned-clock-parents:trueassigned-clock-rates:true-clocks:true+clocks:+description:|+For samsung,exynos4412-isp-clock, the input clocks should be CLK_ACLK200+and CLK_ACLK400_MCUISP from the main clock controller.++clock-names:true"#clock-cells":const:1+power-domains:true+
How many?
I'll add it.
Now all the flavors can have a power domain? Maybe this should be a
separate binding given this and the if/then below.
If you ask about the hardware specifically - almost all flavors could
have a power domain.
There are actually several clock controllers in every SoC responsible
for different parts (e.g. display, GPU, audio, video encoder) and most
of them could have a power domain.
However the clock controller bindings and drivers for all ARMv7 Exynos
SoCs were designed as one device with one device node. Inside the driver
spawns sub-controllers but still there is one device node.
Therefore the answer, if you ask about bindings and hardware-driver
model, is that only some of the flavors will have a power domain.
If you think that having to separate bindings, without that "allOf: if:"
below, is simpler then I can split it.
@@ -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,79 @@+# 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:true