From: Rob Herring <robh@kernel.org>
To: Christian Bruel <christian.bruel@foss.st.com>
Cc: vkoul@kernel.org, kishon@kernel.org, krzk+dt@kernel.org,
conor+dt@kernel.org, mcoquelin.stm32@gmail.com,
alexandre.torgue@foss.st.com, p.zabel@pengutronix.de,
linux-phy@lists.infradead.org, devicetree@vger.kernel.org,
linux-stm32@st-md-mailman.stormreply.com,
linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org, fabrice.gasnier@foss.st.com
Subject: Re: [PATCH 2/5] dt-bindings: phy: Add STM32MP25 COMBOPHY bindings
Date: Mon, 12 Aug 2024 09:46:33 -0600 [thread overview]
Message-ID: <20240812154633.GB593866-robh@kernel.org> (raw)
In-Reply-To: <20240812120529.3564390-3-christian.bruel@foss.st.com>
On Mon, Aug 12, 2024 at 02:05:26PM +0200, Christian Bruel wrote:
> Document the bindings for STM32 COMBOPHY interface, used to support
> the PCIe and USB3 stm32mp25 drivers.
> Following entries can be used to tune caracterisation parameters
> - st,output-micro-ohms and st,output-vswing-microvolt bindings entries
> to tune the impedance and voltage swing using discrete simulation results
> - st, phy_rx0_eq register to set the internal rx equalizer filter value.
>
> Signed-off-by: Christian Bruel <christian.bruel@foss.st.com>
> ---
> .../bindings/phy/st,stm32-combophy.yaml | 178 ++++++++++++++++++
> 1 file changed, 178 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/phy/st,stm32-combophy.yaml
>
> diff --git a/Documentation/devicetree/bindings/phy/st,stm32-combophy.yaml b/Documentation/devicetree/bindings/phy/st,stm32-combophy.yaml
> new file mode 100644
> index 0000000000000..6a53ab834b2a7
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/phy/st,stm32-combophy.yaml
> @@ -0,0 +1,178 @@
> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/phy/st,stm32-combophy.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: STMicroelectronics STM32MP25 USB3/PCIe COMBOPHY
> +
> +maintainers:
> + - Christian Bruel <christian.bruel@foss.st.com>
> +
> +description: |
Don't need '|' if no formatting to preserve.
> + Single lane PHY shared (exclusive) between the USB3 and PCIe controllers.
> + Supports 5Gbit/s for USB3 and PCIe gen2 or 2.5Gbit/s for PCIe gen1.
> +
> +properties:
> + compatible:
> + const: st,stm32mp25-combophy
> +
> + reg:
> + maxItems: 1
> +
> + st,syscfg:
Order is standard properties first, vendor properties second.
> + $ref: /schemas/types.yaml#/definitions/phandle-array
> + description: Phandle to the SYSCON entry required for configuring PCIe
> + or USB3.
You need constraints on the size of the phandle-array or perhaps this
should be just 'phandle'.
> +
> + "#phy-cells":
> + const: 1
> + description: |
> + The cells contain the following arguments.
> +
> + - description: The PHY type
> + enum:
> + - PHY_TYPE_USB3
> + - PHY_TYPE_PCIE
> +
> + clocks:
> + anyOf:
Should be 'items'
> + - description: apb-clk Bus clock mandatory to access registers.
> + - description: ker-clk Internal RCC reference clock for USB3 or PCIe
> + - description: pad-clk Optional on board clock input for PCIe only. Typically an
> + external 100Mhz oscillator wired on dedicated CLKIN pad. Used as reference
> + clock input instead of the ker-clk
> +
> + clock-names:
> + oneOf:
> + - items:
> + - const: apb-clk
> + - const: ker-clk
> +
> + - items:
> + - const: apb-clk
> + - const: ker-clk
> + - const: pad-clk
Don't need oneOf here. Just add 'minItems: 2' on the 2nd entry.
'-clk' is also redundant. Drop.
> +
> + resets:
> + maxItems: 1
> +
> + reset-names:
> + const: phy-rst
> +
> + power-domains:
> + maxItems: 1
> +
> + st,ssc-on:
> + type: boolean
> + description:
> + A boolean property whose presence indicates that the SSC for common clock
> + needs to be set.
> +
> + st,rx_equalizer:
s/_/-/
> + $ref: /schemas/types.yaml#/definitions/uint32
> + minimum: 0
That's already the minimum. Drop.
> + maximum: 7
> + default: 2
> + description:
> + A 3 bit value describing internal filter settings for the RX equalizer.
How does one decide what value to use?
> +
> + st,output-micro-ohms:
> + minimum: 3999000
> + maximum: 6090000
> + default: 4968000
> + description:
> + A value property to tune the Single Ended Output Impedance, simulations results
> + at 25C for a VDDP=0.8V. The hardware accepts discrete values in this range.
> +
> + st,output-vswing-microvolt:
> + minimum: 442000
> + maximum: 803000
> + default: 803000
> + description:
> + A value property in microvolt to tune the Single Ended Output Voltage Swing to change the
> + Vlo, Vhi for a VDDP = 0.8V. The hardware accepts discrete values in this range.
> +
> + wakeup-source: true
> +
> + interrupts:
> + maxItems: 1
> + description: interrupt used for wakeup
> +
> + access-controllers:
> + minItems: 1
> + maxItems: 2
> +
> +required:
> + - compatible
> + - reg
> + - st,syscfg
> + - '#phy-cells'
> + - resets
> + - reset-names
> + - clocks
> + - clock-names
> +
> +allOf:
> + - if:
> + required:
> + - wakeup-source
> + then:
> + anyOf:
> + - required: [interrupts]
> + - required: [interrupts-extended]
> +
> +additionalProperties: false
> +
> +examples:
> + - |
> + // Example 1: COMBOPHY configured to use internal reference clock
> + #include <dt-bindings/clock/st,stm32mp25-rcc.h>
> + #include <dt-bindings/interrupt-controller/arm-gic.h>
> + #include <dt-bindings/reset/st,stm32mp25-rcc.h>
> +
> + combophy_internal: phy@480c0000 {
> + compatible = "st,stm32mp25-combophy";
> + reg = <0x480c0000 0x1000>;
> + #phy-cells = <1>;
> + clocks = <&rcc CK_BUS_USB3PCIEPHY>, <&rcc CK_KER_USB3PCIEPHY>;
> + clock-names = "apb-clk", "ker-clk";
> + resets = <&rcc USB3PCIEPHY_R>;
> + reset-names = "phy-rst";
> + st,syscfg = <&syscfg>;
> + access-controllers = <&rifsc 67>;
> + power-domains = <&CLUSTER_PD>;
> + wakeup-source;
> + interrupts-extended = <&exti1 45 IRQ_TYPE_EDGE_FALLING>;
> + };
> +
> + - |
> + // Example 2: COMBOPHY configured to use extrenal 100MHz reference clock
> + // on CLKIN pad for PCIe
> + #include <dt-bindings/clock/st,stm32mp25-rcc.h>
> + #include <dt-bindings/interrupt-controller/arm-gic.h>
> + #include <dt-bindings/reset/st,stm32mp25-rcc.h>
> +
> + clocks {
> + pad_clk: pad-clk {
> + #clock-cells = <0>;
> + compatible = "fixed-clock";
> + clock-frequency = <100000000>;
> + };
> + };
Drop. Providers aren't relevant to this binding.
Though just 1 optional clock doesn't justify a whole other example. So
drop one of the examples.
> +
> + combophy_pad: phy@480c0000 {
> + compatible = "st,stm32mp25-combophy";
> + reg = <0x480c0000 0x1000>;
> + #phy-cells = <1>;
> + clocks = <&rcc CK_BUS_USB3PCIEPHY>, <&rcc CK_KER_USB3PCIEPHY>, <&pad_clk>;
> + clock-names = "apb-clk", "ker-clk", "pad-clk";
> + resets = <&rcc USB3PCIEPHY_R>;
> + reset-names = "phy-rst";
> + st,syscfg = <&syscfg>;
> + access-controllers = <&rifsc 67>;
> + power-domains = <&CLUSTER_PD>;
> + wakeup-source;
> + interrupts-extended = <&exti1 45 IRQ_TYPE_EDGE_FALLING>;
> + };
> +...
> --
> 2.34.1
>
next prev parent reply other threads:[~2024-08-12 15:46 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-08-12 12:05 [PATCH 0/5] Add STM32MP25 USB3/PCIE COMBOPHY driver Christian Bruel
2024-08-12 12:05 ` [PATCH 1/5] MAINTAINERS: add entry for ST STM32MP25 " Christian Bruel
2024-08-12 12:05 ` [PATCH 2/5] dt-bindings: phy: Add STM32MP25 COMBOPHY bindings Christian Bruel
2024-08-12 13:34 ` Rob Herring (Arm)
2024-08-12 15:20 ` Rob Herring
2024-08-12 15:46 ` Rob Herring [this message]
2024-08-12 12:05 ` [PATCH 3/5] phy: stm32: Add support for STM32MP25 COMBOPHY Christian Bruel
2024-08-12 20:14 ` kernel test robot
2024-08-12 20:24 ` kernel test robot
2024-08-12 12:05 ` [PATCH 4/5] arm64: dts: st: Add combophy node on stm32mp251 Christian Bruel
2024-08-12 12:05 ` [PATCH 5/5] arm64: dts: st: Enable COMBOPHY on the stm32mp257f-ev1 board Christian Bruel
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=20240812154633.GB593866-robh@kernel.org \
--to=robh@kernel.org \
--cc=alexandre.torgue@foss.st.com \
--cc=christian.bruel@foss.st.com \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=fabrice.gasnier@foss.st.com \
--cc=kishon@kernel.org \
--cc=krzk+dt@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-phy@lists.infradead.org \
--cc=linux-stm32@st-md-mailman.stormreply.com \
--cc=mcoquelin.stm32@gmail.com \
--cc=p.zabel@pengutronix.de \
--cc=vkoul@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
all inboxes | Powered by JetHome®