On Wed, Jul 05, 2023 at 02:50:13PM -0600, Rob Herring wrote: > On Wed, Jul 05, 2023 at 05:52:22PM +0200, Thierry Reding wrote: > > From: Thierry Reding <treding@xxxxxxxxxx> > > > > Convert the NVIDIA embedded controller bindings from the free-form text > > format to json-schema. > > > > Acked-by: Marc Dietrich <marvin24@xxxxxx> > > Signed-off-by: Thierry Reding <treding@xxxxxxxxxx> > > --- > > Changes in v2: > > - drop $ref for standard clock-frequency property > > - use 4 spaces for indentation in example > > - move to soc/tegra directory > > > > .../bindings/arm/tegra/nvidia,nvec.txt | 21 ----- > > .../bindings/soc/tegra/nvidia,nvec.yaml | 92 +++++++++++++++++++ > > 2 files changed, 92 insertions(+), 21 deletions(-) > > delete mode 100644 Documentation/devicetree/bindings/arm/tegra/nvidia,nvec.txt > > create mode 100644 Documentation/devicetree/bindings/soc/tegra/nvidia,nvec.yaml > > > > diff --git a/Documentation/devicetree/bindings/arm/tegra/nvidia,nvec.txt b/Documentation/devicetree/bindings/arm/tegra/nvidia,nvec.txt > > deleted file mode 100644 > > index 5ae601e7f51f..000000000000 > > --- a/Documentation/devicetree/bindings/arm/tegra/nvidia,nvec.txt > > +++ /dev/null > > @@ -1,21 +0,0 @@ > > -NVIDIA compliant embedded controller > > - > > -Required properties: > > -- compatible : should be "nvidia,nvec". > > -- reg : the iomem of the i2c slave controller > > -- interrupts : the interrupt line of the i2c slave controller > > -- clock-frequency : the frequency of the i2c bus > > -- gpios : the gpio used for ec request > > -- slave-addr: the i2c address of the slave controller > > -- clocks : Must contain an entry for each entry in clock-names. > > - See ../clocks/clock-bindings.txt for details. > > -- clock-names : Must include the following entries: > > - Tegra20/Tegra30: > > - - div-clk > > - - fast-clk > > - Tegra114: > > - - div-clk > > -- resets : Must contain an entry for each entry in reset-names. > > - See ../reset/reset.txt for details. > > -- reset-names : Must include the following entries: > > - - i2c > > diff --git a/Documentation/devicetree/bindings/soc/tegra/nvidia,nvec.yaml b/Documentation/devicetree/bindings/soc/tegra/nvidia,nvec.yaml > > new file mode 100644 > > index 000000000000..0b4f898b2a1d > > --- /dev/null > > +++ b/Documentation/devicetree/bindings/soc/tegra/nvidia,nvec.yaml > > @@ -0,0 +1,92 @@ > > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > > +%YAML 1.2 > > +--- > > +$id: http://devicetree.org/schemas/soc/tegra/nvidia,nvec.yaml# > > +$schema: http://devicetree.org/meta-schemas/core.yaml# > > + > > +title: NVIDIA compliant embedded controller > > + > > +maintainers: > > + - Thierry Reding <thierry.reding@xxxxxxxxx> > > + - Jon Hunter <jonathanh@xxxxxxxxxx> > > + > > +properties: > > + compatible: > > + const: nvidia,nvec > > + > > + reg: > > + maxItems: 1 > > + > > + interrupts: > > + maxItems: 1 > > + > > + clocks: > > + minItems: 1 > > + items: > > + - description: divider clock > > + - description: fast clock > > + > > + clock-names: > > + minItems: 1 > > + items: > > + - const: div-clk > > + - const: fast-clk > > + > > + resets: > > + items: > > + - description: module reset > > + > > + reset-names: > > + items: > > + - const: i2c > > + > > + clock-frequency: true > > + > > + request-gpios: > > + description: phandle to the GPIO used for EC request > > + > > + slave-addr: > > + $ref: /schemas/types.yaml#/definitions/uint32 > > + description: I2C address of the slave controller > > + > > + "#address-cells": > > + const: 1 > > + > > + "#size-cells": > > + const: 0 > > You don't have any child nodes defined, so these 2 properties are > pointless. Good point. Looking at this a bit more, I think perhaps we should also rename the node representing this to i2c@7000c500 because this is really only a repurposed I2C controller, which is probably also where these stray #address-cells and #size-cells come from. In DT we basically duplicate i2c@7000c500 and nvec@7000c500, but we can probably also reuse most of i2c@7000c500 and just drop some things that NVEC can't use (such as dmas and dma-names) and add the slave specific bits (such as clock-frequency, slave-addr and request-gpios). Marc, any thoughts? Thierry > > > + > > +additionalProperties: false > > + > > +required: > > + - compatible > > + - reg > > + - interrupts > > + - clocks > > + - clock-names > > + - resets > > + - reset-names > > + - clock-frequency > > + - request-gpios > > + - slave-addr > > + > > +examples: > > + - | > > + #include <dt-bindings/clock/tegra20-car.h> > > + #include <dt-bindings/gpio/tegra-gpio.h> > > + #include <dt-bindings/interrupt-controller/arm-gic.h> > > + > > + nvec@7000c500 { > > + compatible = "nvidia,nvec"; > > + reg = <0x7000c500 0x100>; > > + interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>; > > + #address-cells = <1>; > > + #size-cells = <0>; > > + clock-frequency = <80000>; > > + request-gpios = <&gpio TEGRA_GPIO(V, 2) GPIO_ACTIVE_HIGH>; > > + slave-addr = <138>; > > + clocks = <&tegra_car TEGRA20_CLK_I2C3>, > > + <&tegra_car TEGRA20_CLK_PLL_P_OUT3>; > > + clock-names = "div-clk", "fast-clk"; > > + resets = <&tegra_car 67>; > > + reset-names = "i2c"; > > + }; > > -- > > 2.41.0 > >
Attachment:
signature.asc
Description: PGP signature