Message ID | 20191002151442.15428-1-benjamin.gaignard@st.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | dt-bindings: media: Convert stm32 dcmi bindings to json-schema | expand |
On Wed, Oct 2, 2019 at 10:14 AM Benjamin Gaignard <benjamin.gaignard@st.com> wrote: > > Convert the STM32 dcmi binding to DT schema format using json-schema > > Signed-off-by: Benjamin Gaignard <benjamin.gaignard@st.com> > --- > .../devicetree/bindings/media/st,stm32-dcmi.txt | 45 ---------- > .../devicetree/bindings/media/st,stm32-dcmi.yaml | 97 ++++++++++++++++++++++ > 2 files changed, 97 insertions(+), 45 deletions(-) > delete mode 100644 Documentation/devicetree/bindings/media/st,stm32-dcmi.txt > create mode 100644 Documentation/devicetree/bindings/media/st,stm32-dcmi.yaml > > diff --git a/Documentation/devicetree/bindings/media/st,stm32-dcmi.txt b/Documentation/devicetree/bindings/media/st,stm32-dcmi.txt > deleted file mode 100644 > index 3122ded82eb4..000000000000 > --- a/Documentation/devicetree/bindings/media/st,stm32-dcmi.txt > +++ /dev/null > @@ -1,45 +0,0 @@ > -STMicroelectronics STM32 Digital Camera Memory Interface (DCMI) > - > -Required properties: > -- compatible: "st,stm32-dcmi" > -- reg: physical base address and length of the registers set for the device > -- interrupts: should contain IRQ line for the DCMI > -- resets: reference to a reset controller, > - see Documentation/devicetree/bindings/reset/st,stm32-rcc.txt > -- clocks: list of clock specifiers, corresponding to entries in > - the clock-names property > -- clock-names: must contain "mclk", which is the DCMI peripherial clock > -- pinctrl: the pincontrol settings to configure muxing properly > - for pins that connect to DCMI device. > - See Documentation/devicetree/bindings/pinctrl/st,stm32-pinctrl.yaml. > -- dmas: phandle to DMA controller node, > - see Documentation/devicetree/bindings/dma/stm32-dma.txt > -- dma-names: must contain "tx", which is the transmit channel from DCMI to DMA > - > -DCMI supports a single port node with parallel bus. It should contain one > -'port' child node with child 'endpoint' node. Please refer to the bindings > -defined in Documentation/devicetree/bindings/media/video-interfaces.txt. > - > -Example: > - > - dcmi: dcmi@50050000 { > - compatible = "st,stm32-dcmi"; > - reg = <0x50050000 0x400>; > - interrupts = <78>; > - resets = <&rcc STM32F4_AHB2_RESET(DCMI)>; > - clocks = <&rcc 0 STM32F4_AHB2_CLOCK(DCMI)>; > - clock-names = "mclk"; > - pinctrl-names = "default"; > - pinctrl-0 = <&dcmi_pins>; > - dmas = <&dma2 1 1 0x414 0x3>; > - dma-names = "tx"; > - port { > - dcmi_0: endpoint { > - remote-endpoint = <...>; > - bus-width = <8>; > - hsync-active = <0>; > - vsync-active = <0>; > - pclk-sample = <1>; > - }; > - }; > - }; > diff --git a/Documentation/devicetree/bindings/media/st,stm32-dcmi.yaml b/Documentation/devicetree/bindings/media/st,stm32-dcmi.yaml > new file mode 100644 > index 000000000000..50e8cfed06f3 > --- /dev/null > +++ b/Documentation/devicetree/bindings/media/st,stm32-dcmi.yaml > @@ -0,0 +1,97 @@ > +# SPDX-License-Identifier: GPL-2.0 > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/media/st,stm32-dcmi.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: STMicroelectronics STM32 Digital Camera Memory Interface (DCMI) binding > + > +maintainers: > + - Hugues Fruchet <hugues.fruchet@st.com> > + > +properties: > + compatible: > + const: st,stm32-dcmi > + > + reg: > + maxItems: 1 > + > + interrupts: > + maxItems: 1 > + > + clocks: > + items: > + - description: Module Clock 'maxItems: 1' is sufficient here as the description doesn't add anything. > + > + clock-names: > + items: > + - const: mclk > + > + pinctrl-names: true This gets added automatically. > + > + dmas: > + description: > + One DMA channel specifier following the convention outlined > + in bindings/dma/dma.txt Drop this. > + maxItems: 1 > + > + dma-names: > + description: > + There must be one channel named "tx" for transmit The schema says all this already. > + maxItems: 1 This is implied. > + additionalItems: true This is wrong. You can't have more items because you set the max to 1. > + items: > + - const: tx > + > + resets: > + maxItems: 1 Inconsistent indentation. > + > + port: > + type: object > + description: > + DCMI supports a single port node with parallel bus. It should contain > + one 'port' child node with child 'endpoint' node. Please refer to the > + bindings defined in > + Documentation/devicetree/bindings/media/video-interfaces.txt. > + > +patternProperties: > + "^pinctrl-[0-9]+$": true > + > +required: > + - compatible > + - reg > + - interrupts > + - clocks > + - clock-names > + - resets > + - dmas > + - dma-names > + - port > + > +examples: > + - | > + #include <dt-bindings/interrupt-controller/arm-gic.h> > + #include <dt-bindings/clock/stm32mp1-clks.h> > + #include <dt-bindings/reset/stm32mp1-resets.h> > + dcmi: dcmi@4c006000 { > + compatible = "st,stm32-dcmi"; > + reg = <0x4c006000 0x400>; > + interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>; > + resets = <&rcc CAMITF_R>; > + clocks = <&rcc DCMI>; > + clock-names = "mclk"; > + dmas = <&dmamux1 75 0x400 0x0d>; > + dma-names = "tx"; > + > + port { > + dcmi_0: endpoint { > + remote-endpoint = <&ov5640_0>; > + bus-width = <8>; > + hsync-active = <0>; > + vsync-active = <0>; > + pclk-sample = <1>; > + }; > + }; > + }; > + > +... > -- > 2.15.0 >
diff --git a/Documentation/devicetree/bindings/media/st,stm32-dcmi.txt b/Documentation/devicetree/bindings/media/st,stm32-dcmi.txt deleted file mode 100644 index 3122ded82eb4..000000000000 --- a/Documentation/devicetree/bindings/media/st,stm32-dcmi.txt +++ /dev/null @@ -1,45 +0,0 @@ -STMicroelectronics STM32 Digital Camera Memory Interface (DCMI) - -Required properties: -- compatible: "st,stm32-dcmi" -- reg: physical base address and length of the registers set for the device -- interrupts: should contain IRQ line for the DCMI -- resets: reference to a reset controller, - see Documentation/devicetree/bindings/reset/st,stm32-rcc.txt -- clocks: list of clock specifiers, corresponding to entries in - the clock-names property -- clock-names: must contain "mclk", which is the DCMI peripherial clock -- pinctrl: the pincontrol settings to configure muxing properly - for pins that connect to DCMI device. - See Documentation/devicetree/bindings/pinctrl/st,stm32-pinctrl.yaml. -- dmas: phandle to DMA controller node, - see Documentation/devicetree/bindings/dma/stm32-dma.txt -- dma-names: must contain "tx", which is the transmit channel from DCMI to DMA - -DCMI supports a single port node with parallel bus. It should contain one -'port' child node with child 'endpoint' node. Please refer to the bindings -defined in Documentation/devicetree/bindings/media/video-interfaces.txt. - -Example: - - dcmi: dcmi@50050000 { - compatible = "st,stm32-dcmi"; - reg = <0x50050000 0x400>; - interrupts = <78>; - resets = <&rcc STM32F4_AHB2_RESET(DCMI)>; - clocks = <&rcc 0 STM32F4_AHB2_CLOCK(DCMI)>; - clock-names = "mclk"; - pinctrl-names = "default"; - pinctrl-0 = <&dcmi_pins>; - dmas = <&dma2 1 1 0x414 0x3>; - dma-names = "tx"; - port { - dcmi_0: endpoint { - remote-endpoint = <...>; - bus-width = <8>; - hsync-active = <0>; - vsync-active = <0>; - pclk-sample = <1>; - }; - }; - }; diff --git a/Documentation/devicetree/bindings/media/st,stm32-dcmi.yaml b/Documentation/devicetree/bindings/media/st,stm32-dcmi.yaml new file mode 100644 index 000000000000..50e8cfed06f3 --- /dev/null +++ b/Documentation/devicetree/bindings/media/st,stm32-dcmi.yaml @@ -0,0 +1,97 @@ +# SPDX-License-Identifier: GPL-2.0 +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/media/st,stm32-dcmi.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: STMicroelectronics STM32 Digital Camera Memory Interface (DCMI) binding + +maintainers: + - Hugues Fruchet <hugues.fruchet@st.com> + +properties: + compatible: + const: st,stm32-dcmi + + reg: + maxItems: 1 + + interrupts: + maxItems: 1 + + clocks: + items: + - description: Module Clock + + clock-names: + items: + - const: mclk + + pinctrl-names: true + + dmas: + description: + One DMA channel specifier following the convention outlined + in bindings/dma/dma.txt + maxItems: 1 + + dma-names: + description: + There must be one channel named "tx" for transmit + maxItems: 1 + additionalItems: true + items: + - const: tx + + resets: + maxItems: 1 + + port: + type: object + description: + DCMI supports a single port node with parallel bus. It should contain + one 'port' child node with child 'endpoint' node. Please refer to the + bindings defined in + Documentation/devicetree/bindings/media/video-interfaces.txt. + +patternProperties: + "^pinctrl-[0-9]+$": true + +required: + - compatible + - reg + - interrupts + - clocks + - clock-names + - resets + - dmas + - dma-names + - port + +examples: + - | + #include <dt-bindings/interrupt-controller/arm-gic.h> + #include <dt-bindings/clock/stm32mp1-clks.h> + #include <dt-bindings/reset/stm32mp1-resets.h> + dcmi: dcmi@4c006000 { + compatible = "st,stm32-dcmi"; + reg = <0x4c006000 0x400>; + interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>; + resets = <&rcc CAMITF_R>; + clocks = <&rcc DCMI>; + clock-names = "mclk"; + dmas = <&dmamux1 75 0x400 0x0d>; + dma-names = "tx"; + + port { + dcmi_0: endpoint { + remote-endpoint = <&ov5640_0>; + bus-width = <8>; + hsync-active = <0>; + vsync-active = <0>; + pclk-sample = <1>; + }; + }; + }; + +...
Convert the STM32 dcmi binding to DT schema format using json-schema Signed-off-by: Benjamin Gaignard <benjamin.gaignard@st.com> --- .../devicetree/bindings/media/st,stm32-dcmi.txt | 45 ---------- .../devicetree/bindings/media/st,stm32-dcmi.yaml | 97 ++++++++++++++++++++++ 2 files changed, 97 insertions(+), 45 deletions(-) delete mode 100644 Documentation/devicetree/bindings/media/st,stm32-dcmi.txt create mode 100644 Documentation/devicetree/bindings/media/st,stm32-dcmi.yaml