On Wed, Feb 16, 2022 at 12:39:09PM +0000, Robin Murphy wrote: > On 2022-02-15 21:15, Chris Morgan wrote: > [...] > > diff --git a/Documentation/devicetree/bindings/mfd/rockchip,rk805.yaml b/Documentation/devicetree/bindings/mfd/rockchip,rk805.yaml > > new file mode 100644 > > index 000000000000..1b928b94fbfd > > --- /dev/null > > +++ b/Documentation/devicetree/bindings/mfd/rockchip,rk805.yaml > > @@ -0,0 +1,88 @@ > > +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause > > +%YAML 1.2 > > +--- > > +$id: http://devicetree.org/schemas/mfd/rockchip,rk805.yaml# > > +$schema: http://devicetree.org/meta-schemas/core.yaml# > > + > > +title: RK805 Power Management Integrated Circuit > > + > > +maintainers: > > + - Chris Zhong <zyw@xxxxxxxxxxxxxx> > > + - Zhang Qing <zhangqing@xxxxxxxxxxxxxx> > > + > > +description: | > > + Rockchip RK805 series PMIC. This device consists of an i2c controlled MFD > > + that includes multiple switchable regulators. > > + > > +properties: > > + compatible: > > + enum: > > + - rockchip,rk805 > > + > > + reg: > > + maxItems: 1 > > + > > + interrupts: > > + maxItems: 1 > > + > > + '#clock-cells': > > + const: 1 > > + > > + clock-output-names: > > + maxItems: 2 > > I think this should be 1, since RK805 only has a single CLK32K output - > ditto for RK817. > > [...] > > diff --git a/Documentation/devicetree/bindings/mfd/rockchip,rk808.yaml b/Documentation/devicetree/bindings/mfd/rockchip,rk808.yaml > > new file mode 100644 > > index 000000000000..f5908fa01a61 > > --- /dev/null > > +++ b/Documentation/devicetree/bindings/mfd/rockchip,rk808.yaml > > @@ -0,0 +1,257 @@ > > +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause > > +%YAML 1.2 > > +--- > > +$id: http://devicetree.org/schemas/mfd/rockchip,rk808.yaml# > > +$schema: http://devicetree.org/meta-schemas/core.yaml# > > + > > +title: RK808 Power Management Integrated Circuit > > + > > +maintainers: > > + - Chris Zhong <zyw@xxxxxxxxxxxxxx> > > + - Zhang Qing <zhangqing@xxxxxxxxxxxxxx> > > + > > +description: | > > + Rockchip RK808 series PMIC. This device consists of an i2c controlled MFD > > + that includes regulators, an RTC, and a power button. > > + > > +properties: > > + compatible: > > + enum: > > + - rockchip,rk808 > > + > > + reg: > > + maxItems: 1 > > + > > + interrupts: > > + maxItems: 1 > > + > > + '#clock-cells': > > + description: > > + See <dt-bindings/clock/rockchip,rk808.h> for clock IDs. > > + const: 1 > > + > > + clock-output-names: > > + description: > > + From common clock binding to override the default output clock name. > > minItems should be consistent across RK808/818/819 - when two clocks exist, > either it's legitimate to rename only the first one, or it isn't. There > shouldn't be an arbitrary difference just because of what existing DTs > happen to use. > > > + maxItems: 2 > > + > > + rockchip,system-power-controller: > > + type: boolean > > + description: > > + Telling whether or not this PMIC is controlling the system power. > > + > > + wakeup-source: > > + type: boolean > > + description: > > + Device can be used as a wakeup source. > > + > > + vcc1-supply: > > + description: > > + The input supply for DCDC_REG1. > > + > > + vcc2-supply: > > + description: > > + The input supply for DCDC_REG2. > > + > > + vcc3-supply: > > + description: > > + The input supply for DCDC_REG3. > > + > > + vcc4-supply: > > + description: > > + The input supply for DCDC_REG4. > > + > > + vcc6-supply: > > + description: > > + The input supply for LDO_REG1 and LDO_REG2. > > + > > + vcc7-supply: > > + description: > > + The input supply for LDO_REG3 and LDO_REG7. > > + > > + vcc8-supply: > > + description: > > + The input supply for SWITCH_REG1. > > + > > + vcc9-supply: > > + description: > > + The input supply for LDO_REG4 and LDO_REG5. > > + > > + vcc10-supply: > > + description: > > + The input supply for LDO_REG6. > > + > > + vcc11-supply: > > + description: > > + The input supply for LDO_REG8. > > + > > + vcc12-supply: > > + description: > > + The input supply for SWITCH_REG2. > > + > > + vddio-supply: > > + description: > > + The input supply for digital IO. > > + > > + dvs-gpios: > > + description: | > > + buck1/2 can be controlled by gpio dvs, this is GPIO specifiers for > > + 2 host gpio's used for dvs. The format of the gpio specifier > > + depends in the gpio controller. If DVS GPIOs aren't present, > > + voltage changes will happen very quickly with no slow ramp time. > > + maxItems: 2 > > + > > + regulators: > > + type: object > > + patternProperties: > > + "^(DCDC_REG[1-4]|LDO_REG[1-8]|SWITCH_REG[1-2])$": > > + type: object > > + $ref: ../regulator/regulator.yaml# > > + unevaluatedProperties: false > > + > > +required: > > + - compatible > > + - reg > > + - interrupts > > + - "#clock-cells" > > Is this actually required (ditto elsewhere)? Technically it's only necessary > if there are any clock consumers targeting this node, so arguably it should > be the clock binding's responsibility to validate that. > > It wouldn't make much sense for a dedicated clock controller to omit > #clock-cells such that it couldn't have any consumers, but given that these > things are primarily PMICs I think it's reasonable to allow a board not to > care about the clocks at all if it doesn't use them. I know that the > original binding claimed it was required, but if we're already relaxing that > for RK805 here then we may as well relax it entirely. Fair enough. However, if the consumer could be in an overlay, then I think we want it to be required and not make the overlay add the property. Properties just appearing within nodes at runtime is likely not well supported in OSs. Rob