linux-loongson/Documentation/devicetree/bindings/clock/ti/ti,gate-clock.yaml
Andreas Kemnade be7638a0d5 dt-bindings: clock: ti: Convert gate.txt to json-schema
Convert the OMAP gate clock device tree binding to json-schema.
Specify the creator of the original binding as a maintainer.
Choose GPL-only license because original binding was also GPL.
Clean up the examples during conversion to meet modern standards and
remove examples with no additional value.
Due to usage in code and existing devicetree binding, add the
ti,set-rate-parent property.

Signed-off-by: Andreas Kemnade <andreas@kemnade.info>
Link: https://lore.kernel.org/r/20250105170854.408875-2-andreas@kemnade.info
Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
Signed-off-by: Stephen Boyd <sboyd@kernel.org>
2025-01-06 15:45:11 -08:00

126 lines
3.4 KiB
YAML

# SPDX-License-Identifier: GPL-2.0-only
%YAML 1.2
---
$id: http://devicetree.org/schemas/clock/ti/ti,gate-clock.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Texas Instruments gate clock
maintainers:
- Tero Kristo <kristo@kernel.org>
description: |
*Deprecated design pattern: one node per clock*
This clock is quite much similar to the basic gate-clock [1], however,
it supports a number of additional features. If no register
is provided for this clock, the code assumes that a clockdomain
will be controlled instead and the corresponding hw-ops for
that is used.
[1] Documentation/devicetree/bindings/clock/gpio-gate-clock.yaml
[2] Documentation/devicetree/bindings/clock/ti/clockdomain.txt
properties:
compatible:
enum:
- ti,gate-clock # basic gate clock
- ti,wait-gate-clock # gate clock which waits until clock is
# active before returning from clk_enable()
- ti,dss-gate-clock # gate clock with DSS specific hardware
# handling
- ti,am35xx-gate-clock # gate clock with AM35xx specific hardware
# handling
- ti,clkdm-gate-clock # clockdomain gate clock, which derives its
# functional clock directly from a
# clockdomain, see [2] how to map
# clockdomains properly
- ti,hsdiv-gate-clock # gate clock with OMAP36xx specific hardware
# handling, required for a hardware errata
- ti,composite-gate-clock # composite gate clock, to be part of
# composite clock
- ti,composite-no-wait-gate-clock # composite gate clock that does not
# wait for clock to be active before
# returning from clk_enable()
"#clock-cells":
const: 0
clocks: true
clock-output-names:
maxItems: 1
reg:
maxItems: 1
ti,bit-shift:
$ref: /schemas/types.yaml#/definitions/uint32
description:
Number of bits to shift the bit-mask
maximum: 31
default: 0
ti,set-bit-to-disable:
type: boolean
description:
Inverts default gate programming. Setting the bit
gates the clock and clearing the bit ungates the clock.
ti,set-rate-parent:
type: boolean
description:
clk_set_rate is propagated to parent clock,
if:
properties:
compatible:
contains:
const: ti,clkdm-gate-clock
then:
properties:
reg: false
required:
- compatible
- "#clock-cells"
- clocks
else:
required:
- compatible
- "#clock-cells"
- clocks
- reg
additionalProperties: false
examples:
- |
bus {
#address-cells = <1>;
#size-cells = <0>;
clock-controller@a00 {
#clock-cells = <0>;
compatible = "ti,gate-clock";
clocks = <&core_96m_fck>;
reg = <0x0a00>;
ti,bit-shift = <25>;
};
clock-controller@d00 {
compatible = "ti,hsdiv-gate-clock";
reg = <0x0d00>;
#clock-cells = <0>;
clocks = <&dpll4_m2x2_mul_ck>;
ti,bit-shift = <0x1b>;
ti,set-bit-to-disable;
};
};
- |
clock-controller {
#clock-cells = <0>;
compatible = "ti,clkdm-gate-clock";
clocks = <&emu_src_mux_ck>;
};