summaryrefslogtreecommitdiff
path: root/Documentation/devicetree/bindings/clock
diff options
context:
space:
mode:
authorArnd Bergmann <arnd@arndb.de>2023-12-21 18:41:22 +0300
committerArnd Bergmann <arnd@arndb.de>2023-12-21 18:41:51 +0300
commit2dfe48a85a0702cce70a35b1d9c13d7671ba5fa6 (patch)
tree89b934a115df91b74f9956464115b78348f057b7 /Documentation/devicetree/bindings/clock
parent487e6d8dc6aefdbbdce94d693b1ed127fcf7d6f0 (diff)
parent40af852a7ca59d23ab4afd02af2623121da2f116 (diff)
downloadlinux-2dfe48a85a0702cce70a35b1d9c13d7671ba5fa6.tar.xz
Merge tag 'samsung-dt64-6.8' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux into soc/dt
Samsung DTS ARM64 changes for v6.8 Two (and a half) major items are coming with this pull request: 1. Add specific compatibles to all Samsung Exynos and Tesla FSD blocks, because that's what guidelines expect [1] and is generally recommended practice. Existing compatibles are left untouched, thus no driver changes are needed. The work only cleans things up, so any future contributions will use recommended style: specific and fallback compatibles. Since no driver changes are needed in this work and the DTS is directly affected by bindings change (running tests with `make dtbs_check`), this pull includes all bindings changes, even though usual practice is that bindings come via driver subsystem. Keeping everything here makes review and testing easier. Also will allow us to avoid conflicts related to new platforms (see below). 2. Add ExynosAutov920 SoC and SADK board (Samsung Automotive Development Kit) with minimal support so far: serial console, GPIO-based keys and PWM fan. 3. Add few bindings for upcoming Google GS101 SoC. This pull request does not include its DTS yet, just few reviewed dependencies. DTS will be coming soon. [1] Documentation/devicetree/bindings/writing-bindings.rst * tag 'samsung-dt64-6.8' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux: (38 commits) arm64: dts: exynos: add minimal support for exynosautov920 sadk board arm64: dts: exynos: add initial support for exynosautov920 SoC dt-bindings: samsung: exynos-sysreg: combine exynosautov920 with other enum dt-bindings: soc: google: exynos-sysreg: add dedicated SYSREG compatibles to GS101 dt-bindings: clock: Add Google gs101 clock management unit bindings dt-bindings: soc: samsung: exynos-pmu: Add gs101 compatible arm64: dts: fsd: add specific compatibles for Tesla FSD dt-bindings: watchdog: samsung: add specific compatible for Tesla FSD dt-bindings: samsung: exynos-pmu: add specific compatible for Tesla FSD dt-bindings: serial: samsung: add specific compatible for Tesla FSD dt-bindings: pwm: samsung: add specific compatible for Tesla FSD dt-bindings: i2c: exynos5: add specific compatible for Tesla FSD arm64: dts: exynosautov9: use Exynos7 fallbacks for pin wake-up controller arm64: dts: exynos850: use Exynos7 fallbacks for pin wake-up controllers dt-bindings: hwinfo: samsung,exynos-chipid: add exynosautov920 compatible dt-bindings: arm: samsung: Document exynosautov920 SADK board binding dt-bindings: pwm: samsung: add exynosautov920 compatible dt-bindings: serial: samsung: add exynosautov920-uart compatible dt-bindings: samsung: usi: add exynosautov920-usi compatible dt-bindings: samsung: exynos-pmu: add exynosautov920 compatible ... Link: https://lore.kernel.org/r/20231212093105.13938-1-krzysztof.kozlowski@linaro.org Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Diffstat (limited to 'Documentation/devicetree/bindings/clock')
-rw-r--r--Documentation/devicetree/bindings/clock/google,gs101-clock.yaml106
1 files changed, 106 insertions, 0 deletions
diff --git a/Documentation/devicetree/bindings/clock/google,gs101-clock.yaml b/Documentation/devicetree/bindings/clock/google,gs101-clock.yaml
new file mode 100644
index 000000000000..3eebc03a309b
--- /dev/null
+++ b/Documentation/devicetree/bindings/clock/google,gs101-clock.yaml
@@ -0,0 +1,106 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/clock/google,gs101-clock.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Google GS101 SoC clock controller
+
+maintainers:
+ - Peter Griffin <peter.griffin@linaro.org>
+
+description: |
+ Google GS101 clock controller is comprised of several CMU units, generating
+ clocks for different domains. Those CMU units are modeled as separate device
+ tree nodes, and might depend on each other. The root clock in that clock tree
+ is OSCCLK (24.576 MHz). That external clock must be defined as a fixed-rate
+ clock in dts.
+
+ CMU_TOP is a top-level CMU, where all base clocks are prepared using PLLs and
+ dividers; all other leaf clocks (other CMUs) are usually derived from CMU_TOP.
+
+ Each clock is assigned an identifier and client nodes can use this identifier
+ to specify the clock which they consume. All clocks available for usage
+ in clock consumer nodes are defined as preprocessor macros in
+ 'dt-bindings/clock/gs101.h' header.
+
+properties:
+ compatible:
+ enum:
+ - google,gs101-cmu-top
+ - google,gs101-cmu-apm
+ - google,gs101-cmu-misc
+
+ clocks:
+ minItems: 1
+ maxItems: 2
+
+ clock-names:
+ minItems: 1
+ maxItems: 2
+
+ "#clock-cells":
+ const: 1
+
+ reg:
+ maxItems: 1
+
+required:
+ - compatible
+ - "#clock-cells"
+ - clocks
+ - clock-names
+ - reg
+
+allOf:
+ - if:
+ properties:
+ compatible:
+ contains:
+ enum:
+ - google,gs101-cmu-top
+ - google,gs101-cmu-apm
+ then:
+ properties:
+ clocks:
+ items:
+ - description: External reference clock (24.576 MHz)
+
+ clock-names:
+ items:
+ - const: oscclk
+
+ - if:
+ properties:
+ compatible:
+ contains:
+ const: google,gs101-cmu-misc
+
+ then:
+ properties:
+ clocks:
+ items:
+ - description: Misc bus clock (from CMU_TOP)
+ - description: Misc sss clock (from CMU_TOP)
+
+ clock-names:
+ items:
+ - const: dout_cmu_misc_bus
+ - const: dout_cmu_misc_sss
+
+additionalProperties: false
+
+examples:
+ # Clock controller node for CMU_TOP
+ - |
+ #include <dt-bindings/clock/google,gs101.h>
+
+ cmu_top: clock-controller@1e080000 {
+ compatible = "google,gs101-cmu-top";
+ reg = <0x1e080000 0x8000>;
+ #clock-cells = <1>;
+ clocks = <&ext_24_5m>;
+ clock-names = "oscclk";
+ };
+
+...