[PATCH v3] dt-bindings: mfd: rk808: Convert bindings to yaml
Chris Morgan
macromorgan at hotmail.com
Wed Feb 16 08:42:49 PST 2022
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: https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fdevicetree.org%2Fschemas%2Fmfd%2Frockchip%2Crk805.yaml%23&data=04%7C01%7C%7C4b9a90979e484e90998208d9f149582b%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637806119583069800%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=C32SCbOML%2B29SpV3XPn6dfHnncMQpQtlNjeJmr46%2Ft0%3D&reserved=0
> > +$schema: https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fdevicetree.org%2Fmeta-schemas%2Fcore.yaml%23&data=04%7C01%7C%7C4b9a90979e484e90998208d9f149582b%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637806119583069800%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=Z6bCBf7CzFrLyMwJY2FyGQn4LKP7X0U5qcVAJlIi0Ms%3D&reserved=0
> > +
> > +title: RK805 Power Management Integrated Circuit
> > +
> > +maintainers:
> > + - Chris Zhong <zyw at rock-chips.com>
> > + - Zhang Qing <zhangqing at rock-chips.com>
> > +
> > +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.
This might be another case where the devicetree is wrong, but setting this
gives me an error for the rk817 yaml now (because some boards are specifying
2 clocks when the hardware physically supports only a single clock). According
to the datasheets the rk809 (in addition to the rk817 and rk805) only support
a single clock-out. The driver "supports" 2 clocks for the rk805 in that it
always sets the recalc_rate for the first clock as 32768 while allowing you
to "enable" the 2nd clock, but it's all the same clock. The driver for the
rk809 and rk817 only allow you to control a single clock.
Do you think I should set the max value for 1 for each of these 3 PMICs and
then we address the devicetree errors because that reflects the real-world
hardware?
>
> [...]
> > 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: https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fdevicetree.org%2Fschemas%2Fmfd%2Frockchip%2Crk808.yaml%23&data=04%7C01%7C%7C4b9a90979e484e90998208d9f149582b%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637806119583069800%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=JFsfLXHDw0y7KI4eAqx8wiOZGeq16Bq1LefNRhkidRo%3D&reserved=0
> > +$schema: https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fdevicetree.org%2Fmeta-schemas%2Fcore.yaml%23&data=04%7C01%7C%7C4b9a90979e484e90998208d9f149582b%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637806119583069800%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=Z6bCBf7CzFrLyMwJY2FyGQn4LKP7X0U5qcVAJlIi0Ms%3D&reserved=0
> > +
> > +title: RK808 Power Management Integrated Circuit
> > +
> > +maintainers:
> > + - Chris Zhong <zyw at rock-chips.com>
> > + - Zhang Qing <zhangqing at rock-chips.com>
> > +
> > +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.
See above. Basically it looks like the rk805, rk809, and rk817 all support just
a single clock. The rk808 and rk818 support a max of 2 clocks. The driver for
the rk805 supports 2 clocks, but it's all one physical clock on the PMIC.
>
> > + 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.
I can remove this across the board (clock-cells) and resubmit. Let me know
about the other question with the names if you can and I'll fix it all in
v4.
Thank you for your feedback, it was most helpful.
>
> Cheers,
> Robin.
More information about the Linux-rockchip
mailing list