mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-12-27 10:01:39 -05:00
The first reg region in this binding is not exclusively for clocks, as evidenced by the dual role of this device as a reset controller at present. The first region is however better described by a simple-mfd syscon, but this would have require a significant re-write of the devicetree for the platform, so the easy way out was chosen when reset support was first introduced. The region doesn't just contain clock and reset registers, it also contains pinctrl and interrupt controller functionality, so drop the region from the clock binding so that it can be described instead by a simple-mfd syscon rather than propagate this incorrect description of the hardware to the new pic64gx SoC. Acked-by: Rob Herring (Arm) <robh@kernel.org> Signed-off-by: Conor Dooley <conor.dooley@microchip.com> Link: https://lore.kernel.org/r/20251029-unwatched-family-e47cb29ea815@spud Signed-off-by: Claudiu Beznea <claudiu.beznea@tuxon.dev>
89 lines
2.5 KiB
YAML
89 lines
2.5 KiB
YAML
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
|
%YAML 1.2
|
|
---
|
|
$id: http://devicetree.org/schemas/clock/microchip,mpfs-clkcfg.yaml#
|
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
|
|
|
title: Microchip PolarFire Clock Control Module
|
|
|
|
maintainers:
|
|
- Daire McNamara <daire.mcnamara@microchip.com>
|
|
|
|
description: |
|
|
Microchip PolarFire clock control (CLKCFG) is an integrated clock controller,
|
|
which gates and enables all peripheral clocks.
|
|
|
|
This device tree binding describes 33 gate clocks. Clocks are referenced by
|
|
user nodes by the CLKCFG node phandle and the clock index in the group, from
|
|
0 to 32.
|
|
|
|
properties:
|
|
compatible:
|
|
const: microchip,mpfs-clkcfg
|
|
|
|
reg:
|
|
oneOf:
|
|
- items:
|
|
- description: |
|
|
clock config registers:
|
|
These registers contain enable, reset & divider tables for the, cpu,
|
|
axi, ahb and rtc/mtimer reference clocks as well as enable and reset
|
|
for the peripheral clocks.
|
|
- description: |
|
|
mss pll dri registers:
|
|
Block of registers responsible for dynamic reconfiguration of the mss
|
|
pll
|
|
deprecated: true
|
|
- items:
|
|
- description: |
|
|
mss pll dri registers:
|
|
Block of registers responsible for dynamic reconfiguration of the mss
|
|
pll
|
|
|
|
clocks:
|
|
maxItems: 1
|
|
|
|
'#clock-cells':
|
|
const: 1
|
|
description: |
|
|
The clock consumer should specify the desired clock by having the clock
|
|
ID in its "clocks" phandle cell.
|
|
See include/dt-bindings/clock/microchip,mpfs-clock.h for the full list of
|
|
PolarFire clock IDs.
|
|
|
|
resets:
|
|
maxItems: 1
|
|
|
|
'#reset-cells':
|
|
description:
|
|
The AHB/AXI peripherals on the PolarFire SoC have reset support, so from
|
|
CLK_ENVM to CLK_CFM. The reset consumer should specify the desired
|
|
peripheral via the clock ID in its "resets" phandle cell.
|
|
See include/dt-bindings/clock/microchip,mpfs-clock.h for the full list of
|
|
PolarFire clock IDs.
|
|
const: 1
|
|
|
|
required:
|
|
- compatible
|
|
- reg
|
|
- clocks
|
|
- '#clock-cells'
|
|
|
|
additionalProperties: false
|
|
|
|
examples:
|
|
# Clock Config node:
|
|
- |
|
|
#include <dt-bindings/clock/microchip,mpfs-clock.h>
|
|
soc {
|
|
#address-cells = <1>;
|
|
#size-cells = <1>;
|
|
|
|
clkcfg: clock-controller@3E001000 {
|
|
compatible = "microchip,mpfs-clkcfg";
|
|
reg = <0x3E001000 0x1000>;
|
|
clocks = <&ref>;
|
|
#clock-cells = <1>;
|
|
};
|
|
};
|