The Arm Versatile Express system features a bridge device that provides access to various smaller devices like clocks, reset gates and various sensors. Extract the second half of the informal vexpress-sysreg.txt binding and make it proper DT schema compliant. This makes the old .txt binding redundant, so remove it. This describes both the actual parent configuration bridge, as well as all the possible children devices. Signed-off-by: Andre Przywara <andre.przywara@arm.com> Signed-off-by: Rob Herring <robh@kernel.org> Link: https://lore.kernel.org/r/20220506140533.3566431-8-andre.przywara@arm.com
286 lines
6.4 KiB
YAML
286 lines
6.4 KiB
YAML
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
|
%YAML 1.2
|
|
---
|
|
$id: http://devicetree.org/schemas/arm/vexpress-config.yaml#
|
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
|
|
|
title: ARM Versatile Express configuration bus bindings
|
|
|
|
maintainers:
|
|
- Andre Przywara <andre.przywara@arm.com>
|
|
|
|
description:
|
|
This is a system control register block, acting as a bridge to the
|
|
platform's configuration bus via "system control" interface, addressing
|
|
devices with site number, position in the board stack, config controller,
|
|
function and device numbers - see motherboard's TRM for more details.
|
|
|
|
properties:
|
|
compatible:
|
|
const: arm,vexpress,config-bus
|
|
|
|
arm,vexpress,config-bridge:
|
|
$ref: /schemas/types.yaml#/definitions/phandle
|
|
description:
|
|
Phandle to the sysreg node.
|
|
|
|
muxfpga:
|
|
type: object
|
|
properties:
|
|
compatible:
|
|
const: arm,vexpress-muxfpga
|
|
|
|
arm,vexpress-sysreg,func:
|
|
description: FPGA specifier
|
|
$ref: /schemas/types.yaml#/definitions/uint32-array
|
|
items:
|
|
- const: 7
|
|
- description: device number
|
|
|
|
additionalProperties: false
|
|
required:
|
|
- compatible
|
|
- arm,vexpress-sysreg,func
|
|
|
|
shutdown:
|
|
type: object
|
|
properties:
|
|
compatible:
|
|
const: arm,vexpress-shutdown
|
|
|
|
arm,vexpress-sysreg,func:
|
|
description: shutdown identifier
|
|
$ref: /schemas/types.yaml#/definitions/uint32-array
|
|
items:
|
|
- const: 8
|
|
- description: device number
|
|
|
|
additionalProperties: false
|
|
required:
|
|
- compatible
|
|
- arm,vexpress-sysreg,func
|
|
|
|
reboot:
|
|
type: object
|
|
properties:
|
|
compatible:
|
|
const: arm,vexpress-reboot
|
|
|
|
arm,vexpress-sysreg,func:
|
|
description: reboot identifier
|
|
$ref: /schemas/types.yaml#/definitions/uint32-array
|
|
items:
|
|
- const: 9
|
|
- description: device number
|
|
|
|
additionalProperties: false
|
|
required:
|
|
- compatible
|
|
- arm,vexpress-sysreg,func
|
|
|
|
dvimode:
|
|
type: object
|
|
properties:
|
|
compatible:
|
|
const: arm,vexpress-dvimode
|
|
|
|
arm,vexpress-sysreg,func:
|
|
description: DVI mode identifier
|
|
$ref: /schemas/types.yaml#/definitions/uint32-array
|
|
items:
|
|
- const: 11
|
|
- description: device number
|
|
|
|
additionalProperties: false
|
|
required:
|
|
- compatible
|
|
- arm,vexpress-sysreg,func
|
|
|
|
additionalProperties: false
|
|
|
|
required:
|
|
- compatible
|
|
- arm,vexpress,config-bridge
|
|
|
|
patternProperties:
|
|
'clk[0-9]*$':
|
|
type: object
|
|
description:
|
|
clocks
|
|
|
|
properties:
|
|
compatible:
|
|
const: arm,vexpress-osc
|
|
|
|
arm,vexpress-sysreg,func:
|
|
description: clock specifier
|
|
$ref: /schemas/types.yaml#/definitions/uint32-array
|
|
items:
|
|
- const: 1
|
|
- description: clock number
|
|
|
|
freq-range:
|
|
$ref: /schemas/types.yaml#/definitions/uint32-array
|
|
items:
|
|
- description: minimal clock frequency
|
|
- description: maximum clock frequency
|
|
|
|
"#clock-cells":
|
|
const: 0
|
|
|
|
clock-output-names:
|
|
maxItems: 1
|
|
|
|
additionalProperties: false
|
|
required:
|
|
- compatible
|
|
- arm,vexpress-sysreg,func
|
|
- "#clock-cells"
|
|
|
|
"^volt-.+$":
|
|
$ref: /schemas/regulator/regulator.yaml#
|
|
properties:
|
|
compatible:
|
|
const: arm,vexpress-volt
|
|
|
|
arm,vexpress-sysreg,func:
|
|
description: regulator specifier
|
|
$ref: /schemas/types.yaml#/definitions/uint32-array
|
|
items:
|
|
- const: 2
|
|
- description: device number
|
|
|
|
label:
|
|
maxItems: 1
|
|
|
|
unevaluatedProperties: false
|
|
required:
|
|
- compatible
|
|
- arm,vexpress-sysreg,func
|
|
|
|
"^amp-.+$":
|
|
type: object
|
|
properties:
|
|
compatible:
|
|
const: arm,vexpress-amp
|
|
|
|
arm,vexpress-sysreg,func:
|
|
description: current sensor identifier
|
|
$ref: /schemas/types.yaml#/definitions/uint32-array
|
|
items:
|
|
- const: 3
|
|
- description: device number
|
|
|
|
label:
|
|
maxItems: 1
|
|
|
|
additionalProperties: false
|
|
required:
|
|
- compatible
|
|
- arm,vexpress-sysreg,func
|
|
|
|
"^temp-.+$":
|
|
type: object
|
|
properties:
|
|
compatible:
|
|
const: arm,vexpress-temp
|
|
|
|
arm,vexpress-sysreg,func:
|
|
description: temperature sensor identifier
|
|
$ref: /schemas/types.yaml#/definitions/uint32-array
|
|
items:
|
|
- const: 4
|
|
- description: device number
|
|
|
|
label:
|
|
maxItems: 1
|
|
|
|
additionalProperties: false
|
|
required:
|
|
- compatible
|
|
- arm,vexpress-sysreg,func
|
|
|
|
"^reset[0-9]*$":
|
|
type: object
|
|
properties:
|
|
compatible:
|
|
const: arm,vexpress-reset
|
|
|
|
arm,vexpress-sysreg,func:
|
|
description: reset specifier
|
|
$ref: /schemas/types.yaml#/definitions/uint32-array
|
|
items:
|
|
- const: 5
|
|
- description: reset device number
|
|
|
|
additionalProperties: false
|
|
required:
|
|
- compatible
|
|
- arm,vexpress-sysreg,func
|
|
|
|
"^power-.+$":
|
|
type: object
|
|
properties:
|
|
compatible:
|
|
const: arm,vexpress-power
|
|
|
|
arm,vexpress-sysreg,func:
|
|
description: power sensor identifier
|
|
$ref: /schemas/types.yaml#/definitions/uint32-array
|
|
items:
|
|
- const: 12
|
|
- description: device number
|
|
|
|
label:
|
|
maxItems: 1
|
|
|
|
additionalProperties: false
|
|
required:
|
|
- compatible
|
|
- arm,vexpress-sysreg,func
|
|
|
|
"^energy(-.+)?$":
|
|
type: object
|
|
properties:
|
|
compatible:
|
|
const: arm,vexpress-energy
|
|
|
|
arm,vexpress-sysreg,func:
|
|
description: energy sensor identifier
|
|
$ref: /schemas/types.yaml#/definitions/uint32-array
|
|
oneOf:
|
|
- items:
|
|
- const: 13
|
|
- description: device number
|
|
- items:
|
|
- const: 13
|
|
- description: device number
|
|
- const: 13
|
|
- description: second device number
|
|
|
|
label:
|
|
maxItems: 1
|
|
|
|
additionalProperties: false
|
|
required:
|
|
- compatible
|
|
- arm,vexpress-sysreg,func
|
|
|
|
examples:
|
|
- |
|
|
mcc {
|
|
compatible = "arm,vexpress,config-bus";
|
|
arm,vexpress,config-bridge = <&v2m_sysreg>;
|
|
|
|
clk0 {
|
|
compatible = "arm,vexpress-osc";
|
|
arm,vexpress-sysreg,func = <1 0>;
|
|
#clock-cells = <0>;
|
|
};
|
|
|
|
energy {
|
|
compatible = "arm,vexpress-energy";
|
|
arm,vexpress-sysreg,func = <13 0>, <13 1>;
|
|
};
|
|
};
|