From: Patrice CHOTARD <patrice.chotard@foss.st.com>
To: Conor Dooley <conor@kernel.org>
Cc: Mark Brown <broonie@kernel.org>, Rob Herring <robh@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>,
Alexandre Torgue <alexandre.torgue@foss.st.com>,
Philipp Zabel <p.zabel@pengutronix.de>,
Maxime Coquelin <mcoquelin.stm32@gmail.com>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Arnd Bergmann <arnd@arndb.de>,
Catalin Marinas <catalin.marinas@arm.com>,
Will Deacon <will@kernel.org>, <linux-spi@vger.kernel.org>,
<devicetree@vger.kernel.org>,
<linux-stm32@st-md-mailman.stormreply.com>,
<linux-arm-kernel@lists.infradead.org>,
<linux-kernel@vger.kernel.org>, <christophe.kerello@foss.st.com>
Subject: Re: [PATCH v2 1/9] dt-bindings: spi: Add STM32 OSPI controller
Date: Wed, 29 Jan 2025 18:40:23 +0100 [thread overview]
Message-ID: <e3d01bce-a7d4-4690-8a2f-3bbb1ee5ccb7@foss.st.com> (raw)
In-Reply-To: <20250128-panama-manly-a753d91c297c@spud>
On 1/28/25 19:02, Conor Dooley wrote:
> On Tue, Jan 28, 2025 at 09:17:23AM +0100, patrice.chotard@foss.st.com wrote:
>> From: Patrice Chotard <patrice.chotard@foss.st.com>
>>
>> Add device tree bindings for the STM32 OSPI controller.
>>
>> Main features of the Octo-SPI controller :
>> - support sNOR / sNAND / HyperRAM™ and HyperFlash™ devices.
>> - Three functional modes: indirect, automatic-status polling,
>> memory-mapped.
>> - Up to 4 Gbytes of external memory can be addressed in indirect
>> mode (per physical port and per CS), and up to 256 Mbytes in
>> memory-mapped mode (combined for both physical ports and per CS).
>> - Single-, dual-, quad-, and octal-SPI communication.
>> - Dual-quad communication.
>> - Single data rate (SDR) and double transfer rate (DTR).
>> - Maximum target frequency is 133 MHz for SDR and 133 MHz for DTR.
>> - Data strobe support.
>> - DMA channel for indirect mode.
>> - Double CS mapping that allows two external flash devices to be
>> addressed with a single OCTOSPI controller mapped on a single
>> OCTOSPI port.
>>
>> Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com>
>> ---
>> .../bindings/spi/st,stm32mp25-ospi.yaml | 102 ++++++++++++++++++
>> 1 file changed, 102 insertions(+)
>> create mode 100644 Documentation/devicetree/bindings/spi/st,stm32mp25-ospi.yaml
>>
>> diff --git a/Documentation/devicetree/bindings/spi/st,stm32mp25-ospi.yaml b/Documentation/devicetree/bindings/spi/st,stm32mp25-ospi.yaml
>> new file mode 100644
>> index 000000000000..f1d539444673
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/spi/st,stm32mp25-ospi.yaml
>> @@ -0,0 +1,102 @@
>> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
>> +%YAML 1.2
>> +---
>> +$id: http://devicetree.org/schemas/spi/st,stm32mp25-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:
>> + maxItems: 1
>> +
>> + memory-region:
>> + maxItems: 1
>
> Whatever about not having descriptions for clocks or reg when there's
> only one, I think a memory region should be explained.
ok i will add :
description: |
Memory region to be used for memory-map read access.
>
>> +
>> + clocks:
>> + maxItems: 1
>> +
>> + interrupts:
>> + maxItems: 1
>> +
>> + resets:
>> + items:
>> + - description: phandle to OSPI block reset
>> + - description: phandle to delay block reset
>> +
>> + dmas:
>> + maxItems: 2
>> +
>> + dma-names:
>> + items:
>> + - const: tx
>> + - const: rx
>> +
>> + st,syscfg-dlyb:
>> + description: phandle to syscon block
>> + Use to set the OSPI delay block within syscon to
>> + tune the phase of the RX sampling clock (or DQS) in order
>> + to sample the data in their valid window and to
>> + 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
>
> Why do you need a phandle here? I assume looking up by compatible ain't
> possible because you have multiple controllers on the SoC? Also, I don't
Yes, we got 2 OCTOSPI controller, each of them have a dedicated delay block
syscfg register.
> think your copy-paste "phandle to" stuff here is accurate:
> st,syscfg-dlyb = <&syscfg 0x1000>;
> There's an offset here that you don't mention in your description.
I will add it as following:
st,syscfg-dlyb:
description:
Use to set the OSPI delay block within syscon to
tune the phase of the RX sampling clock (or DQS) in order
to sample the data in their valid window and to
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:
- description: phandle to syscfg
- description: register offset within syscfg
>
>> + items:
>> + maxItems: 1
>> +
>> + access-controllers:
>> + description: phandle to the rifsc device to check access right
>> + and in some cases, an additional phandle to the rcc device for
>> + secure clock control
>
> This should be described using items rather than a free-form list.
access-controllers:
description: phandle to the rifsc device to check access right
and in some cases, an additional phandle to the rcc device for
secure clock control
items:
- description: phandle to bus controller or to clock controller
- description: access controller specifier
minItems: 1
maxItems: 2
>
>> + minItems: 1
>> + maxItems: 2
>> +
>> + power-domains:
>> + maxItems: 1
>> +
>> +required:
>> + - compatible
>> + - reg
>> + - 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 {
>
> nit: you missing a blank line here.
>
>> + 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>;
>> + };
>> + };
>> --
>> 2.25.1
>>
next prev parent reply other threads:[~2025-01-29 17:48 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-01-28 8:17 [PATCH v2 0/9] Add STM32MP25 SPI NOR support patrice.chotard
2025-01-28 8:17 ` [PATCH v2 1/9] dt-bindings: spi: Add STM32 OSPI controller patrice.chotard
2025-01-28 18:02 ` Conor Dooley
2025-01-29 7:40 ` Krzysztof Kozlowski
2025-01-29 7:53 ` Krzysztof Kozlowski
2025-01-30 9:48 ` Patrice CHOTARD
2025-01-29 17:40 ` Patrice CHOTARD [this message]
2025-01-29 17:53 ` Conor Dooley
2025-01-30 8:51 ` Patrice CHOTARD
2025-01-30 10:28 ` Patrice CHOTARD
2025-01-30 12:26 ` Krzysztof Kozlowski
2025-01-30 12:39 ` Patrice CHOTARD
2025-01-28 8:17 ` [PATCH v2 2/9] spi: stm32: Add OSPI driver patrice.chotard
2025-01-28 12:37 ` Mark Brown
2025-01-30 8:55 ` Patrice CHOTARD
2025-01-28 8:17 ` [PATCH v2 3/9] dt-bindings: memory-controllers: Add STM32 Octo Memory Manager controller patrice.chotard
2025-01-29 7:52 ` Krzysztof Kozlowski
2025-01-30 8:57 ` Patrice CHOTARD
2025-01-30 12:12 ` Krzysztof Kozlowski
2025-01-30 13:32 ` Patrice CHOTARD
2025-01-30 15:09 ` Krzysztof Kozlowski
2025-02-03 10:46 ` Patrice CHOTARD
2025-02-03 11:40 ` Krzysztof Kozlowski
2025-02-04 7:29 ` Patrice CHOTARD
2025-02-04 7:50 ` Krzysztof Kozlowski
2025-02-04 8:16 ` Patrice CHOTARD
2025-01-28 8:17 ` [PATCH v2 4/9] memory: Add STM32 Octo Memory Manager driver patrice.chotard
2025-01-28 9:17 ` Philipp Zabel
2025-02-03 7:29 ` Patrice CHOTARD
2025-01-28 8:17 ` [PATCH v2 5/9] arm64: dts: st: Add OMM node on stm32mp251 patrice.chotard
2025-01-28 8:17 ` [PATCH v2 6/9] arm64: dts: st: Add ospi port1 pinctrl entries in stm32mp25-pinctrl.dtsi patrice.chotard
2025-01-28 8:17 ` [PATCH v2 7/9] arm64: dts: st: Add SPI NOR flash support on stm32mp257f-ev1 board patrice.chotard
2025-01-28 8:17 ` [PATCH v2 8/9] arm64: defconfig: Enable STM32 Octo Memory Manager driver patrice.chotard
2025-01-28 8:17 ` [PATCH v2 9/9] arm64: defconfig: Enable STM32 OctoSPI driver patrice.chotard
2025-01-29 9:36 ` Krzysztof Kozlowski
2025-01-29 10:30 ` Krzysztof Kozlowski
2025-01-30 8:56 ` Patrice CHOTARD
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=e3d01bce-a7d4-4690-8a2f-3bbb1ee5ccb7@foss.st.com \
--to=patrice.chotard@foss.st.com \
--cc=alexandre.torgue@foss.st.com \
--cc=arnd@arndb.de \
--cc=broonie@kernel.org \
--cc=catalin.marinas@arm.com \
--cc=christophe.kerello@foss.st.com \
--cc=conor+dt@kernel.org \
--cc=conor@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=gregkh@linuxfoundation.org \
--cc=krzk+dt@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-spi@vger.kernel.org \
--cc=linux-stm32@st-md-mailman.stormreply.com \
--cc=mcoquelin.stm32@gmail.com \
--cc=p.zabel@pengutronix.de \
--cc=robh@kernel.org \
--cc=will@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).