Re: [PATCH 3/4] dt-bindings: clock: Add Siflower SF19A2890 peripheral clock/reset managers

From: Conor Dooley

Date: Wed Nov 04 2026 - 22:43:39 EST


On Wed, Nov 04, 2026 at 02:21:00AM -0500, Joseph Telaak via B4 Relay wrote:
> From: Joseph Telaak <joseph@xxxxxxxxxx>
>
> Each peripheral block of the Siflower SF19A2890 has a clock and reset
> manager of its own, with a reset register, a clock gate register and a
> bus output enable. The blocks differ in which gate and reset bits they
> use, so each has its own compatible, and clock N of a manager is its
> input clock N, gated.

This binding looks like things that we often see that are actually
incorrect models of the devices in question - things that should be a
syscon but not implemented as one. I'd like to see what the actual dts
for this device looks like before signing off (or really even reviewing
this at all). Given how the clocks look, it is probably accurate but I
wanna be sure.

Cheers,
Conor.

>
> Based on Chuanhong Guo's binding, which described every block with one
> compatible and its bit layout in properties.
>
> Signed-off-by: Joseph Telaak <joseph@xxxxxxxxxx>
> ---
> .../clock/siflower,sf19a2890-periph-crm.yaml | 169 +++++++++++++++++++++
> 1 file changed, 169 insertions(+)
>
> diff --git a/Documentation/devicetree/bindings/clock/siflower,sf19a2890-periph-crm.yaml b/Documentation/devicetree/bindings/clock/siflower,sf19a2890-periph-crm.yaml
> new file mode 100644
> index 000000000..7f0bce603
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/clock/siflower,sf19a2890-periph-crm.yaml
> @@ -0,0 +1,169 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/clock/siflower,sf19a2890-periph-crm.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Siflower SF19A2890 peripheral clock and reset manager
> +
> +maintainers:
> + - Joseph Telaak <joseph@xxxxxxxxxx>
> +
> +description: |
> + Each peripheral, or group of peripherals, of the Siflower SF19A2890 has
> + a clock and reset manager of its own: a reset register, a clock gate
> + register, and a bus output enable that the peripherals need as well as
> + their clocks to answer bus requests.
> +
> + Clock N of the manager is input clock N, gated. The reset lines are:
> +
> + gmac-crm: 0 GMAC
> + usb-crm: 0 USB controller, 1 USB PHY power-on, 2 USB PHY
> + uart-crm: 0 UART0, 1 UART1, 2 UART2
> + the others: 0 the block
> +
> +properties:
> + compatible:
> + enum:
> + - siflower,sf19a2890-gmac-crm
> + - siflower,sf19a2890-gpio-crm
> + - siflower,sf19a2890-i2c-crm
> + - siflower,sf19a2890-pwm-crm
> + - siflower,sf19a2890-rf-crm
> + - siflower,sf19a2890-spi-crm
> + - siflower,sf19a2890-timer-crm
> + - siflower,sf19a2890-uart-crm
> + - siflower,sf19a2890-usb-crm
> + - siflower,sf19a2890-wdt-crm
> + - siflower,sf19a2890-wlan24-crm
> + - siflower,sf19a2890-wlan5-crm
> +
> + reg:
> + maxItems: 1
> +
> + clocks:
> + minItems: 1
> + maxItems: 6
> +
> + "#clock-cells":
> + const: 1
> +
> + "#reset-cells":
> + const: 1
> +
> +required:
> + - compatible
> + - reg
> + - clocks
> + - "#clock-cells"
> + - "#reset-cells"
> +
> +allOf:
> + - if:
> + properties:
> + compatible:
> + contains:
> + const: siflower,sf19a2890-gmac-crm
> + then:
> + properties:
> + clocks:
> + items:
> + - description: GMAC bus clock
> + - description: GMAC register clock
> + - description: RGMII transmit reference clock
> + - description: Timestamp unit clock
> + - if:
> + properties:
> + compatible:
> + contains:
> + enum:
> + - siflower,sf19a2890-wlan24-crm
> + - siflower,sf19a2890-wlan5-crm
> + then:
> + properties:
> + clocks:
> + items:
> + - description: AXI slave clock
> + - description: AXI master clock
> + - description: Radio platform clock
> + - if:
> + properties:
> + compatible:
> + contains:
> + const: siflower,sf19a2890-rf-crm
> + then:
> + properties:
> + clocks:
> + items:
> + - description: Test clock
> + - description: AXI slave clock
> + - description: Boot clock
> + - description: Low-power clock
> + - if:
> + properties:
> + compatible:
> + contains:
> + const: siflower,sf19a2890-usb-crm
> + then:
> + properties:
> + clocks:
> + items:
> + - description: USB controller clock
> + - description: AXI master clock
> + - description: USB PHY reference clock
> + - if:
> + properties:
> + compatible:
> + contains:
> + const: siflower,sf19a2890-spi-crm
> + then:
> + properties:
> + clocks:
> + items:
> + - description: APB clock
> + - description: SSP clock
> + - if:
> + properties:
> + compatible:
> + contains:
> + const: siflower,sf19a2890-uart-crm
> + then:
> + properties:
> + clocks:
> + items:
> + - description: UART0 APB clock
> + - description: UART1 APB clock
> + - description: UART2 APB clock
> + - description: UART0 clock
> + - description: UART1 clock
> + - description: UART2 clock
> + - if:
> + properties:
> + compatible:
> + contains:
> + enum:
> + - siflower,sf19a2890-gpio-crm
> + - siflower,sf19a2890-i2c-crm
> + - siflower,sf19a2890-pwm-crm
> + - siflower,sf19a2890-timer-crm
> + - siflower,sf19a2890-wdt-crm
> + then:
> + properties:
> + clocks:
> + maxItems: 1
> +
> +additionalProperties: false
> +
> +examples:
> + - |
> + #include <dt-bindings/clock/siflower,sf19a2890-clk.h>
> +
> + clock-controller@19e24c00 {
> + compatible = "siflower,sf19a2890-uart-crm";
> + reg = <0x19e24c00 0x10>;
> + clocks = <&clk CLK_MUXDIV_PBUS>, <&clk CLK_MUXDIV_PBUS>,
> + <&clk CLK_MUXDIV_PBUS>, <&clk CLK_MUXDIV_UART>,
> + <&clk CLK_MUXDIV_UART>, <&clk CLK_MUXDIV_UART>;
> + #clock-cells = <1>;
> + #reset-cells = <1>;
> + };
>
> --
> Git-155)
>
>

Attachment: signature.asc
Description: PGP signature