Re: [PATCH 03/16] dt-bindings: spi: Add spi peripheral specific property

From: Rob Herring
Date: Sat Jan 07 2023 - 10:38:49 EST


On Fri, Jan 6, 2023 at 9:27 PM William Zhang <william.zhang@xxxxxxxxxxxx> wrote:
>
> Hi Mark,
>
> On 01/06/2023 01:14 PM, Mark Brown wrote:
> > On Fri, Jan 06, 2023 at 12:07:55PM -0800, William Zhang wrote:
> >
> >> brcm,no-clk-gate is a Broadcom Broadband HS SPI controller specific
> >> property for certain SPI device such as Broadcom ISI voice daughtercard
> >> to work properly. It disables the clock gating feature when the chip
> >> select is deasserted for any device that wants to keep the clock
> >> running.
> >
> > Why would this property be Broadcom specific? Other devices could in
> > theory implement this.
> >
> It does not need to be Broadcom specific if other SoC's SPI bus
> controller support such function. I am not aware of such case but
> certainly I am no expert on other chips. I can put it in the generic
> spi-peripheral-props.yaml if that is what you suggest.
>
> >> +properties:
> >> + brcm,no-clk-gate:
> >> + $ref: /schemas/types.yaml#/definitions/flag
> >> + description:
> >> + Some SPI device such as Broadcom ISI based voice daughtercard requires SPI
> >> + clock running even when chip select is deasserted. By default the
> >> + controller turns off or gate the clock when cs is not active to save
> >> + power. This flag tells the controller driver to keep the clock running
> >> + when chip select is not active.
> >
> > This seems problematic with any host controlled chip select support...
> >
> Yes those ISI chip based voice cards do need such strange requirement
> and will not work with other controller. That is one of the reason I
> put this as Broadcom specific option.

Keeping the clock on or not would affect all devices unless you have a
per device clock you can gate, so making this a per device flag
doesn't make sense.

If this is a requirement of the slave device, then the device's
compatible string can imply the need for this and its driver can tell
the host controller in some way.

Rob