On Mon, Oct 12, 2026 at 10:24:04AM -0500, Alex Elder wrote:
> Define the binding for the clock controller functionality present in
> the Toshiba TC9564 SoC.
> 
> Co-developed-by: Daniel Thompson <[email protected]>
> Signed-off-by: Daniel Thompson <[email protected]>
> Signed-off-by: Alex Elder <[email protected]>
> ---
> v3: - What was formerly described as a "clock" node is now "clock-controller"
>     - The clock-controller DTS node, which dropped its reg property in v2, is
>       now a sub-device of the config syscon
>     - The config syscon is now (also) compatible with "simple-mfd"
>     - The clock-controller DTS node no longer defines a toshiba,config-syscon
>       property, and the config syscon no longer requires a label
>     - The clock-controller now requires a (parent) clock property
>     - The header file is no longer included in the binding example
>     - The binding example now includes the definition of fixed 25 MHz clock
> 
>  .../bindings/clock/toshiba,tc9564-clock.yaml  | 65 +++++++++++++++++++
>  MAINTAINERS                                   |  7 ++
>  include/dt-bindings/clock/toshiba,tc9564.h    | 34 ++++++++++
>  3 files changed, 106 insertions(+)
>  create mode 100644 
> Documentation/devicetree/bindings/clock/toshiba,tc9564-clock.yaml
>  create mode 100644 include/dt-bindings/clock/toshiba,tc9564.h
> 
> diff --git 
> a/Documentation/devicetree/bindings/clock/toshiba,tc9564-clock.yaml 
> b/Documentation/devicetree/bindings/clock/toshiba,tc9564-clock.yaml
> new file mode 100644
> index 0000000000000..24e07d4aead32
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/clock/toshiba,tc9564-clock.yaml
> @@ -0,0 +1,65 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/clock/toshiba,tc9564-clock.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Toshiba TC9564 Clock Controller
> +
> +maintainers:
> +  - Alex Elder <[email protected]>
> +  - Daniel Thompson <[email protected]>
> +
> +description:
> +  The Toshiba TC9564 is an SoC accessed by a host system through the
> +  upstream PCIe port on the PCIe switch it implements.  The switch
> +  includes an embedded PCIe endpoint that provides access to various
> +  SoC peripherals (including a clock controller) via its BARs.
> +
> +  A total of 21 clocks are implemented, though two of these are not
> +  controllable.  Access to the clock controller relies on PCIe being
> +  functional, so the PCIe clock is assumed to be always on.  Similarly,
> +  the PCIe controller relies on I2C, so the I2C clock is also assumed
> +  to be always on.
> +
> +  Clock ids are defined in <dt-bindings/clock/toshiba,tc9564.h>.
> +
> +  The clock controller uses registers within the same page as a
> +  reset controller, so both devices are defined as children of a
> +  "config" syscon.
> +
> +properties:
> +  compatible:
> +    const: toshiba,tc9564-clock
> +
> +  clocks:
> +    maxItems: 1
> +
> +  "#clock-cells":
> +    const: 1
> +
> +required:
> +  - compatible
> +  - clocks
> +  - "#clock-cells"
> +
> +unevaluatedProperties: false
> +
> +examples:
> +  - |
> +    tc9564_xo_board: clock-25000000 {
> +        compatible = "fixed-clock";
> +        clock-frequency = <25000000>;
> +        #clock-cells = <0>;
> +    };
> +
> +    syscon@0 {
> +        compatible = "syscon", "simple-mfd";
> +        reg = <0x0 0x2000>;

Same comments apply here as did on the reset, so I won't bother
discussing it in two places at once.

I'm going to mark this CR so that the lads don't need to look at it,
given that you need to resubmit anyway for the driver side.
pw-bot: changes-requested

Thanks,
Conor.

> +
> +        clock-controller {
> +            compatible = "toshiba,tc9564-clock";
> +            clocks = <&tc9564_xo_board>;
> +            #clock-cells = <1>;
> +        };
> +    };
> diff --git a/MAINTAINERS b/MAINTAINERS
> index 77bd64bae919f..b19c62eabaa7e 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -28166,6 +28166,13 @@ F:   
> Documentation/devicetree/bindings/media/i2c/toshiba,tc358743.yaml
>  F:   drivers/media/i2c/tc358743*
>  F:   include/media/i2c/tc358743.h
>  
> +TOSHIBA TC9564 CLOCK DRIVER
> +M:   Alex Elder <[email protected]>
> +M:   Daniel Thompson <[email protected]>
> +S:   Maintained
> +F:   Documentation/devicetree/bindings/clock/toshiba,tc9564-clock.yaml
> +F:   include/dt-bindings/clock/toshiba,tc9564.h
> +
>  TOSHIBA TC9564 PCI DRIVER
>  M:   Alex Elder <[email protected]>
>  M:   Daniel Thompson <[email protected]>
> diff --git a/include/dt-bindings/clock/toshiba,tc9564.h 
> b/include/dt-bindings/clock/toshiba,tc9564.h
> new file mode 100644
> index 0000000000000..2106e4199ed45
> --- /dev/null
> +++ b/include/dt-bindings/clock/toshiba,tc9564.h
> @@ -0,0 +1,34 @@
> +/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
> +
> +/*
> + * Copyright (C) 2026 by RISCstar Solutions Corporation.  All rights 
> reserved.
> + */
> +
> +#ifndef __CLOCK_TOSHIBA_TC9564_H__
> +#define __CLOCK_TOSHIBA_TC9564_H__
> +
> +/* Clock IDs */
> +
> +#define CLOCK_MCU            0
> +#define CLOCK_INTC           1
> +#define CLOCK_SRAM           2
> +#define CLOCK_UART           3
> +#define CLOCK_MSIGEN         4
> +#define CLOCK_PLL            5
> +#define CLOCK_SGMII          6
> +#define CLOCK_REFCLKO                7
> +
> +#define CLOCK_MAC0_TX                8
> +#define CLOCK_MAC0_RX                9
> +#define CLOCK_MAC0_125M              10
> +#define CLOCK_MAC0_312_5M    11
> +#define CLOCK_MAC0_ALL               12
> +
> +#define CLOCK_MAC1_TX                13
> +#define CLOCK_MAC1_RX                14
> +#define CLOCK_MAC1_RMII              15
> +#define CLOCK_MAC1_125M              16
> +#define CLOCK_MAC1_312_5M    17
> +#define CLOCK_MAC1_ALL               18
> +
> +#endif /* __CLOCK_TOSHIBA_TC9564_H__*/
> -- 
> 2.53.0
> 

Attachment: signature.asc
Description: PGP signature

Reply via email to