Message ID | 20250122141037.953934-2-patrice.chotard@foss.st.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | Add STM32MP25 SPI NOR support | expand |
On 22/01/2025 15:10, patrice.chotard@foss.st.com wrote: > --- > .../bindings/spi/st,stm32-ospi.yaml | 109 ++++++++++++++++++ > 1 file changed, 109 insertions(+) > create mode 100644 Documentation/devicetree/bindings/spi/st,stm32-ospi.yaml > > diff --git a/Documentation/devicetree/bindings/spi/st,stm32-ospi.yaml b/Documentation/devicetree/bindings/spi/st,stm32-ospi.yaml > new file mode 100644 > index 000000000000..bf16252f85fa > --- /dev/null > +++ b/Documentation/devicetree/bindings/spi/st,stm32-ospi.yaml Use compatible as filename. > @@ -0,0 +1,109 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/spi/st,stm32-ospi.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: STMicroelectronics STM32 Octal Serial Peripheral Interface (OSPI) > + > +maintainers: > + - Patrice Chotard <patrice.chotard@foss.st.com> > + > +allOf: > + - $ref: spi-controller.yaml# > + > +properties: > + compatible: > + const: st,stm32mp25-ospi > + > + reg: > + description: registers That's not helping. Please take a look how other bindings do it. maxItems instead or you need to list the items with meaningful description. > + > + "#address-cells": > + const: 1 > + > + "#size-cells": > + const: 0 Drop *cells. > + > + memory-region: > + maxItems: 1 > + description: Phandle to a node describing memory-map region to be used Drop description, redundant. Say something useful - the purpose - or just maxItems if purpose is obvious. > + > + clocks: > + maxItems: 1 > + > + interrupts: > + maxItems: 1 > + > + resets: > + maxItems: 2 You need to list and describe the items. > + > + dmas: > + items: > + - description: tx DMA channel > + - description: rx DMA channel maxItems: 2 is enough, because names define what these are > + > + dma-names: > + items: > + - const: tx > + - const: rx > + > + st,syscfg-dlyb: > + description: | > + Use to set the OSPI delay block within SYSCFG to: Phandles to what? Describe also the destination device. > + Tune the phase of the RX sampling clock (or DQS) in order Unneeded indentation. > + to sample the data in their valid window. > + Tune the phase of the TX launch clock in order to meet setup > + and hold constraints of TX signals versus the memory clock. > + $ref: /schemas/types.yaml#/definitions/phandle-array > + items: > + minItems: 2 > + maxItems: 2 Your example has only one item, so probably you wanted one more items with description. Now you miss one of matrix constraints. git grep -C 8 phandle-array (e.g. some sram or syscon examples) > + > + access-controllers: > + minItems: 1 > + maxItems: 2 List the items. > + > + power-domains: > + maxItems: 1 > + > +required: > + - compatible > + - reg > + - "#address-cells" > + - "#size-cells" Drop cells > + - clocks > + - interrupts > + - st,syscfg-dlyb > + > +unevaluatedProperties: false > + Best regards, Krzysztof
On 1/22/25 16:18, Krzysztof Kozlowski wrote: > On 22/01/2025 15:10, patrice.chotard@foss.st.com wrote: >> --- >> .../bindings/spi/st,stm32-ospi.yaml | 109 ++++++++++++++++++ >> 1 file changed, 109 insertions(+) >> create mode 100644 Documentation/devicetree/bindings/spi/st,stm32-ospi.yaml >> >> diff --git a/Documentation/devicetree/bindings/spi/st,stm32-ospi.yaml b/Documentation/devicetree/bindings/spi/st,stm32-ospi.yaml >> new file mode 100644 >> index 000000000000..bf16252f85fa >> --- /dev/null >> +++ b/Documentation/devicetree/bindings/spi/st,stm32-ospi.yaml > > > Use compatible as filename. Ok > >> @@ -0,0 +1,109 @@ >> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) >> +%YAML 1.2 >> +--- >> +$id: http://devicetree.org/schemas/spi/st,stm32-ospi.yaml# >> +$schema: http://devicetree.org/meta-schemas/core.yaml# >> + >> +title: STMicroelectronics STM32 Octal Serial Peripheral Interface (OSPI) >> + >> +maintainers: >> + - Patrice Chotard <patrice.chotard@foss.st.com> >> + >> +allOf: >> + - $ref: spi-controller.yaml# >> + >> +properties: >> + compatible: >> + const: st,stm32mp25-ospi >> + >> + reg: >> + description: registers > > That's not helping. Please take a look how other bindings do it. > maxItems instead or you need to list the items with meaningful description. ok, will use maxItems > >> + >> + "#address-cells": >> + const: 1 >> + >> + "#size-cells": >> + const: 0 > > Drop *cells. ok >> + >> + memory-region: >> + maxItems: 1 >> + description: Phandle to a node describing memory-map region to be used > > Drop description, redundant. Say something useful - the purpose - or > just maxItems if purpose is obvious. ok, i will add - description: phandle to OSPI block reset - description: phandle to delay block reset > >> + >> + clocks: >> + maxItems: 1 >> + >> + interrupts: >> + maxItems: 1 >> + >> + resets: >> + maxItems: 2 > > You need to list and describe the items. ok > >> + >> + dmas: >> + items: >> + - description: tx DMA channel >> + - description: rx DMA channel > > maxItems: 2 is enough, because names define what these are ok > >> + >> + dma-names: >> + items: >> + - const: tx >> + - const: rx >> + >> + st,syscfg-dlyb: >> + description: | >> + Use to set the OSPI delay block within SYSCFG to: > > Phandles to what? Describe also the destination device. > >> + Tune the phase of the RX sampling clock (or DQS) in order > > Unneeded indentation. > >> + to sample the data in their valid window. >> + Tune the phase of the TX launch clock in order to meet setup >> + and hold constraints of TX signals versus the memory clock. >> + $ref: /schemas/types.yaml#/definitions/phandle-array >> + items: >> + minItems: 2 >> + maxItems: 2 > > Your example has only one item, so probably you wanted one more items > with description. Now you miss one of matrix constraints. My fault, only one item is required. > > git grep -C 8 phandle-array > (e.g. some sram or syscon examples) > > > >> + >> + access-controllers: >> + minItems: 1 >> + maxItems: 2 > > List the items. i will update as following: access-controllers: - description: phandle to the rifsc device to check access right. - description: phandle to the rcc device for secure clock control minItems: 1 maxItems: 2 > >> + >> + power-domains: >> + maxItems: 1 >> + >> +required: >> + - compatible >> + - reg >> + - "#address-cells" >> + - "#size-cells" > > Drop cells ok > >> + - clocks >> + - interrupts >> + - st,syscfg-dlyb >> + >> +unevaluatedProperties: false >> + > > > > Best regards, > Krzysztof
diff --git a/Documentation/devicetree/bindings/spi/st,stm32-ospi.yaml b/Documentation/devicetree/bindings/spi/st,stm32-ospi.yaml new file mode 100644 index 000000000000..bf16252f85fa --- /dev/null +++ b/Documentation/devicetree/bindings/spi/st,stm32-ospi.yaml @@ -0,0 +1,109 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/spi/st,stm32-ospi.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: STMicroelectronics STM32 Octal Serial Peripheral Interface (OSPI) + +maintainers: + - Patrice Chotard <patrice.chotard@foss.st.com> + +allOf: + - $ref: spi-controller.yaml# + +properties: + compatible: + const: st,stm32mp25-ospi + + reg: + description: registers + + "#address-cells": + const: 1 + + "#size-cells": + const: 0 + + memory-region: + maxItems: 1 + description: Phandle to a node describing memory-map region to be used + + clocks: + maxItems: 1 + + interrupts: + maxItems: 1 + + resets: + maxItems: 2 + + dmas: + items: + - description: tx DMA channel + - description: rx DMA channel + + dma-names: + items: + - const: tx + - const: rx + + st,syscfg-dlyb: + description: | + Use to set the OSPI delay block within SYSCFG to: + Tune the phase of the RX sampling clock (or DQS) in order + to sample the data in their valid window. + Tune the phase of the TX launch clock in order to meet setup + and hold constraints of TX signals versus the memory clock. + $ref: /schemas/types.yaml#/definitions/phandle-array + items: + minItems: 2 + maxItems: 2 + + access-controllers: + minItems: 1 + maxItems: 2 + + power-domains: + maxItems: 1 + +required: + - compatible + - reg + - "#address-cells" + - "#size-cells" + - clocks + - interrupts + - st,syscfg-dlyb + +unevaluatedProperties: false + +examples: + - | + #include <dt-bindings/clock/st,stm32mp25-rcc.h> + #include <dt-bindings/interrupt-controller/arm-gic.h> + #include <dt-bindings/reset/st,stm32mp25-rcc.h> + spi@40430000 { + compatible = "st,stm32mp25-ospi"; + reg = <0x40430000 0x400>; + memory-region = <&mm_ospi1>; + interrupts = <GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>; + dmas = <&hpdma 2 0x62 0x00003121 0x0>, + <&hpdma 2 0x42 0x00003112 0x0>; + dma-names = "tx", "rx"; + clocks = <&scmi_clk CK_SCMI_OSPI1>; + resets = <&scmi_reset RST_SCMI_OSPI1>, <&scmi_reset RST_SCMI_OSPI1DLL>; + access-controllers = <&rifsc 74>; + power-domains = <&CLUSTER_PD>; + st,syscfg-dlyb = <&syscfg 0x1000>; + + #address-cells = <1>; + #size-cells = <0>; + + flash@0 { + compatible = "jedec,spi-nor"; + reg = <0>; + spi-rx-bus-width = <4>; + spi-max-frequency = <108000000>; + }; + };