On Fri, Dec 04, 2020 at 02:06:55PM +0100, Linus Walleij wrote: > This driver was merged in the early days of device tree > on Arm in 2012 and somehow we failed to provide bindings > for it. Fix it up with some YAML bindings. > > Cc: devicetree@xxxxxxxxxxxxxxx > Signed-off-by: Linus Walleij <linus.walleij@xxxxxxxxxx> > --- > .../bindings/mfd/stericsson,db8500-prcmu.yaml | 282 ++++++++++++++++++ > 1 file changed, 282 insertions(+) > create mode 100644 Documentation/devicetree/bindings/mfd/stericsson,db8500-prcmu.yaml > > diff --git a/Documentation/devicetree/bindings/mfd/stericsson,db8500-prcmu.yaml b/Documentation/devicetree/bindings/mfd/stericsson,db8500-prcmu.yaml > new file mode 100644 > index 000000000000..10cb7d40ebf2 > --- /dev/null > +++ b/Documentation/devicetree/bindings/mfd/stericsson,db8500-prcmu.yaml > @@ -0,0 +1,282 @@ > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/mfd/stericsson,db8500-prcmu.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: ST-Ericsson DB8500 PRCMU - Power Reset and Control Management Unit > + > +maintainers: > + - Linus Walleij <linus.walleij@xxxxxxxxxx> > + > +description: > + The DB8500 Power Reset and Control Management Unit is an XP70 8-bit > + microprocessor that is embedded in the always-on power domain of the > + DB8500 SoCs to manage the low power states, powering up and down parts > + of the silicon, and controlling reset of different IP blocks. > + > +properties: > + $nodename: > + pattern: '^prcmu@80157000$' That's awfully specific. While I guess this will only ever be this one platform, it could still have some address translations that would change the unit-addresses. So I wouldn't enforce the unit-addresses here. > + > + compatible: > + description: The device is compatible both to the device-specific > + compatible "stericsson,db8500-prcmu" and "syscon". The latter > + compatible is needed for the device to be exposed as a system > + controller so that arbitrary registers can be access by > + different operating system components. > + items: > + - const: stericsson,db8500-prcmu > + - const: syscon > + > + reg: > + items: > + - description: Main PRCMU register area > + - description: PRCMU TCPM register area > + - description: PRCMU TCDM register area > + > + reg-names: > + items: > + - const: prcmu > + - const: prcmu-tcpm > + - const: prcmu-tcdm > + > + interrupts: > + maxItems: 1 > + > + '#address-cells': > + const: 1 > + > + '#size-cells': > + const: 1 > + > + ranges: true > + > + interrupt-controller: true > + > + '#interrupt-cells': > + const: 2 > + > + db8500-prcmu-regulators: > + description: Node describing the DB8500 regulators. These are mainly > + power rails inside the silicon but some of those are also routed > + out to external pins. > + type: object > + > + properties: > + compatible: > + const: stericsson,db8500-prcmu-regulator > + > + db8500_vape: > + description: The voltage for the application processor, the > + main voltage domain for the chip. > + type: object > + $ref: ../regulator/regulator.yaml# > + > + db8500_varm: > + description: The voltage for the ARM Cortex A-9 CPU. > + type: object > + $ref: ../regulator/regulator.yaml# > + > + db8500_vmodem: > + description: The voltage for the modem subsystem. > + type: object > + $ref: ../regulator/regulator.yaml# > + > + db8500_vpll: > + description: The voltage for the phase locked loop clocks. > + type: object > + $ref: ../regulator/regulator.yaml# > + > + db8500_vsmps1: > + description: Also known as VIO12, is a step-down voltage regulator > + for 1.2V I/O. SMPS means System Management Power Source. > + type: object > + $ref: ../regulator/regulator.yaml# > + > + db8500_vsmps2: > + description: Also known as VIO18, is a step-down voltage regulator > + for 1.8V I/O. SMPS means System Management Power Source. > + type: object > + $ref: ../regulator/regulator.yaml# > + > + db8500_vsmps3: > + description: This is a step-down voltage regulator > + for 0.87 thru 1.875V I/O. SMPS means System Management Power Source. > + type: object > + $ref: ../regulator/regulator.yaml# > + > + db8500_vrf1: > + description: RF transciever voltage regulator. > + type: object > + $ref: ../regulator/regulator.yaml# > + > + db8500_sva_mmdsp: > + description: Smart Video Accelerator (SVA) multimedia DSP (MMDSP) > + voltage regulator. This is the voltage for the accelerator DSP > + for video encoding and decoding. > + type: object > + $ref: ../regulator/regulator.yaml# > + > + db8500_sva_mmdsp_ret: > + description: Smart Video Accelerator (SVA) multimedia DSP (MMDSP) > + voltage regulator for retention mode. > + type: object > + $ref: ../regulator/regulator.yaml# > + > + db8500_sva_pipe: > + description: Smart Video Accelerator (SVA) multimedia DSP (MMDSP) > + voltage regulator for the data pipe. > + type: object > + $ref: ../regulator/regulator.yaml# > + > + db8500_sia_mmdsp: > + description: Smart Image Accelerator (SIA) multimedia DSP (MMDSP) > + voltage regulator. This is the voltage for the accelerator DSP > + for image encoding and decoding. > + type: object > + $ref: ../regulator/regulator.yaml# > + > + db8500_sia_mmdsp_ret: > + description: Smart Image Accelerator (SIA) multimedia DSP (MMDSP) > + voltage regulator for retention mode. > + type: object > + $ref: ../regulator/regulator.yaml# > + > + db8500_sia_pipe: > + description: Smart Image Accelerator (SIA) multimedia DSP (MMDSP) > + voltage regulator for the data pipe. > + type: object > + $ref: ../regulator/regulator.yaml# > + > + db8500_sga: > + description: Smart Graphics Accelerator (SGA) voltage regulator. > + This is in effect controlling the power to the MALI400 3D > + accelerator block. > + type: object > + $ref: ../regulator/regulator.yaml# > + > + db8500_b2r2_mcde: > + description: Blit Blend Rotate and Rescale (B2R2), and Multi-Channel > + Display Engine (MCDE) voltage regulator. These are two graphics > + blocks. > + type: object > + $ref: ../regulator/regulator.yaml# > + > + db8500_esram12: > + description: Embedded Static RAM (ESRAM) 1 and 2 voltage regulator. > + type: object > + $ref: ../regulator/regulator.yaml# > + > + db8500_esram12_ret: > + description: Embedded Static RAM (ESRAM) 1 and 2 voltage regulator for > + retention mode. > + type: object > + $ref: ../regulator/regulator.yaml# > + > + db8500_esram34: > + description: Embedded Static RAM (ESRAM) 3 and 4 voltage regulator. > + type: object > + $ref: ../regulator/regulator.yaml# > + > + db8500_esram34_ret: > + description: Embedded Static RAM (ESRAM) 3 and 4 voltage regulator for > + retention mode. > + type: object > + $ref: ../regulator/regulator.yaml# > + > + required: > + - compatible > + - db8500_vape > + - db8500_varm > + - db8500_vmodem > + - db8500_vpll > + - db8500_vsmps1 > + - db8500_vsmps2 > + - db8500_vsmps3 > + - db8500_vrf1 > + - db8500_sva_mmdsp > + - db8500_sva_mmdsp_ret > + - db8500_sva_pipe > + - db8500_sia_mmdsp > + - db8500_sia_mmdsp_ret > + - db8500_sia_pipe > + - db8500_sga > + - db8500_b2r2_mcde > + - db8500_esram12 > + - db8500_esram12_ret > + - db8500_esram34 > + - db8500_esram34_ret > + > + additionalProperties: false > + > + thermal@801573c0: > + description: Node describing the DB8500 thermal control functions. > + This binds to an operating system driver that monitors the > + temperature of the SoC. > + type: object > + > + properties: > + compatible: > + const: stericsson,db8500-thermal > + > + reg: > + maxItems: 1 > + > + interrupts: > + items: > + - description: Hotmon low interrupt (falling temperature) > + - description: Hotmon high interrupt (rising temperature) > + > + interrupt-names: > + items: > + - const: IRQ_HOTMON_LOW > + - const: IRQ_HOTMON_HIGH > + > + '#thermal-sensor-cells': > + const: 0 > + > + additionalProperties: false > + > + prcmu-timer-4@80157450: > + description: Node describing the externally visible timer 4 in the > + PRCMU block. This timer is interesting to the operating system > + since even thought it has a very low resolution (32768 Hz) it is > + always on, and thus provides a consistent monotonic timeline for > + the system. > + type: object > + > + properties: > + compatible: > + const: stericsson,db8500-prcmu-timer-4 > + > + reg: > + maxItems: 1 > + > + additionalProperties: false > + > +patternProperties: > + "^ab850[05]$": > + description: Node describing the Analog Baseband 8500 mixed-signals > + ASIC AB8500 and subcomponents. The AB8500 is accessed through the > + PRCMU and hence it appears here. This component has a separate > + set of devicetree bindings. The AB8505 is a newer version of the > + same ASIC. > + type: object > + > +required: > + - compatible > + - reg > + - '#address-cells' > + - '#size-cells' > + - ranges > + - interrupt-controller > + - '#interrupt-cells' > + - db8500-prcmu-regulators > + - thermal@801573c0 > + - prcmu-timer-4@80157450 > + > +dependencies: > + interrupt-controller: [ interrupts ] > + > +additionalProperties: false > -- > 2.26.2 >