lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Date:   Tue, 15 Dec 2020 10:42:31 -0600
From:   Rob Herring <robh@...nel.org>
To:     Linus Walleij <linus.walleij@...aro.org>
Cc:     lee.jones@...aro.org, linux-kernel@...r.kernel.org,
        devicetree@...r.kernel.org
Subject: Re: [PATCH v2] mfd: db8500-prcmu: Add devicetree bindings

On Sat, Dec 12, 2020 at 01:37:18PM +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@...r.kernel.org
> Signed-off-by: Linus Walleij <linus.walleij@...aro.org>
> ---
> ChangeLog v1->v2:
> - Make the main PRCMU node name more generic instead of
>   hammering it down to a specific address.
> ---
>  .../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..cf8e2cc25f9d
> --- /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@...aro.org>
> +
> +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(@.*|-[0-9a-f])*$'

As 'reg' required, a unit-address is too. Though presumbly the 
simple-bus schema will enforce the unit-address. So I'd do:

'^prcmu@' 

> +
> +  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@...573c0:

This address too?

> +    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@...57450:

And this one...

> +    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@...573c0
> +  - prcmu-timer-4@...57450
> +
> +dependencies:
> +  interrupt-controller: [ interrupts ]

If 'interrupt-controller' is present, then 'interrupts' is required. But 
'interrupt-controller' is required, so you can just add 'interrupts' to 
'required'.
 
> +
> +additionalProperties: false
> -- 
> 2.26.2
> 

Powered by blists - more mailing lists