All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mark Brown <broonie@kernel.org>
To: Richard Fitzgerald <rf@opensource.cirrus.com>
Cc: Rob Herring <robh@kernel.org>,
	kuninori.morimoto.gx@renesas.com, nsaenzjulienne@suse.de,
	f.fainelli@gmail.com, linux-kernel@vger.kernel.org,
	devicetree@vger.kernel.org, alsa-devel@alsa-project.org,
	patches@opensource.cirrus.com,
	bcm-kernel-feedback-list@broadcom.com,
	linux-rpi-kernel@lists.infradead.org,
	linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH v4 2/6] dt-bindings: audio-graph-card: Add plls and sysclks properties
Date: Fri, 15 Jan 2021 18:35:27 +0000	[thread overview]
Message-ID: <20210115183527.GG4384@sirena.org.uk> (raw)
In-Reply-To: <d67f805f-2813-14e9-0c4f-5948ec73f7b0@opensource.cirrus.com>

[-- Attachment #1: Type: text/plain, Size: 2334 bytes --]

On Fri, Jan 15, 2021 at 04:15:21PM +0000, Richard Fitzgerald wrote:

> If I do:
>  	sound {
>  		clocks = <&clock>;
>  	};
> 
> 	clock: clock {
> 		compatible = "fixed-clock";
> 		clock-frequency = <98304000>;
> 	};
> 
> I can clk_bulk_get_all().
> But if I remove the 'compatible' from the clock node, clk_bulk_get_all()
> will return -EPROBE_DEFER and log:

OK, so if this is only supposed to represent a fixed clock on the board
separate to the CODEC then yes, of course you do need to instantiate a
driver for it like you do for every device on the board.  However it
shouldn't be a subdevice of the CODEC as you had it originally, it
should be a distinct device as the above has it since that is what
physically exists.  This obviously won't configure the FLL at all though
(which was what the binding you were proposing was for, the above is
definitely not a direct substitute for the binding you originally
proposed).

> > When we say to use the clock binding what we are saying is to use the
> > actual clock bindings to describe the clocks, not make a custom binding
> > that looks kind of like them - making a custom binding doesn't address
> > the problem.

> But I don't know what you mean by "use the actual clock bindings to
> describe the clocks".

> What is not clear to me is how you want me to use a clock binding to
> describe something that isn't a clk-framework clk. If you know what you
> want, then please.. an example would help explain.

The concept of a clock framework is an implementation detail of Linux
which should not affect how the DT bindings for a device or system are
written, DT bindings should be clear and idiomatic as DT bindings.  The
goal is to represent the system in a clear and standardized fashion
which is useful to OSs in general, not just something convenient for
Linux as it happens to be implemented right now.  Current Linux
internals are not a constraint for DT bindings.

In this case if you can't figure out how to parse clock bindings without
moving the clocks over to standard Linux clock APIs (which seems likely)
then it follows that if you want to describe the clock configuration in
DT then the driver support for these clocks should use the standard
Linux clock framework.  This seems like a good idea in general anyway.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

WARNING: multiple messages have this Message-ID (diff)
From: Mark Brown <broonie@kernel.org>
To: Richard Fitzgerald <rf@opensource.cirrus.com>
Cc: linux-arm-kernel@lists.infradead.org,
	Rob Herring <robh@kernel.org>,
	alsa-devel@alsa-project.org, f.fainelli@gmail.com,
	kuninori.morimoto.gx@renesas.com, devicetree@vger.kernel.org,
	patches@opensource.cirrus.com, linux-kernel@vger.kernel.org,
	bcm-kernel-feedback-list@broadcom.com,
	linux-rpi-kernel@lists.infradead.org, nsaenzjulienne@suse.de
Subject: Re: [PATCH v4 2/6] dt-bindings: audio-graph-card: Add plls and sysclks properties
Date: Fri, 15 Jan 2021 18:35:27 +0000	[thread overview]
Message-ID: <20210115183527.GG4384@sirena.org.uk> (raw)
In-Reply-To: <d67f805f-2813-14e9-0c4f-5948ec73f7b0@opensource.cirrus.com>

[-- Attachment #1: Type: text/plain, Size: 2334 bytes --]

On Fri, Jan 15, 2021 at 04:15:21PM +0000, Richard Fitzgerald wrote:

> If I do:
>  	sound {
>  		clocks = <&clock>;
>  	};
> 
> 	clock: clock {
> 		compatible = "fixed-clock";
> 		clock-frequency = <98304000>;
> 	};
> 
> I can clk_bulk_get_all().
> But if I remove the 'compatible' from the clock node, clk_bulk_get_all()
> will return -EPROBE_DEFER and log:

OK, so if this is only supposed to represent a fixed clock on the board
separate to the CODEC then yes, of course you do need to instantiate a
driver for it like you do for every device on the board.  However it
shouldn't be a subdevice of the CODEC as you had it originally, it
should be a distinct device as the above has it since that is what
physically exists.  This obviously won't configure the FLL at all though
(which was what the binding you were proposing was for, the above is
definitely not a direct substitute for the binding you originally
proposed).

> > When we say to use the clock binding what we are saying is to use the
> > actual clock bindings to describe the clocks, not make a custom binding
> > that looks kind of like them - making a custom binding doesn't address
> > the problem.

> But I don't know what you mean by "use the actual clock bindings to
> describe the clocks".

> What is not clear to me is how you want me to use a clock binding to
> describe something that isn't a clk-framework clk. If you know what you
> want, then please.. an example would help explain.

The concept of a clock framework is an implementation detail of Linux
which should not affect how the DT bindings for a device or system are
written, DT bindings should be clear and idiomatic as DT bindings.  The
goal is to represent the system in a clear and standardized fashion
which is useful to OSs in general, not just something convenient for
Linux as it happens to be implemented right now.  Current Linux
internals are not a constraint for DT bindings.

In this case if you can't figure out how to parse clock bindings without
moving the clocks over to standard Linux clock APIs (which seems likely)
then it follows that if you want to describe the clock configuration in
DT then the driver support for these clocks should use the standard
Linux clock framework.  This seems like a good idea in general anyway.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

WARNING: multiple messages have this Message-ID (diff)
From: Mark Brown <broonie@kernel.org>
To: Richard Fitzgerald <rf@opensource.cirrus.com>
Cc: linux-arm-kernel@lists.infradead.org,
	alsa-devel@alsa-project.org, f.fainelli@gmail.com,
	kuninori.morimoto.gx@renesas.com, devicetree@vger.kernel.org,
	patches@opensource.cirrus.com, linux-kernel@vger.kernel.org,
	bcm-kernel-feedback-list@broadcom.com,
	linux-rpi-kernel@lists.infradead.org, nsaenzjulienne@suse.de
Subject: Re: [PATCH v4 2/6] dt-bindings: audio-graph-card: Add plls and sysclks properties
Date: Fri, 15 Jan 2021 18:35:27 +0000	[thread overview]
Message-ID: <20210115183527.GG4384@sirena.org.uk> (raw)
In-Reply-To: <d67f805f-2813-14e9-0c4f-5948ec73f7b0@opensource.cirrus.com>


[-- Attachment #1.1: Type: text/plain, Size: 2334 bytes --]

On Fri, Jan 15, 2021 at 04:15:21PM +0000, Richard Fitzgerald wrote:

> If I do:
>  	sound {
>  		clocks = <&clock>;
>  	};
> 
> 	clock: clock {
> 		compatible = "fixed-clock";
> 		clock-frequency = <98304000>;
> 	};
> 
> I can clk_bulk_get_all().
> But if I remove the 'compatible' from the clock node, clk_bulk_get_all()
> will return -EPROBE_DEFER and log:

OK, so if this is only supposed to represent a fixed clock on the board
separate to the CODEC then yes, of course you do need to instantiate a
driver for it like you do for every device on the board.  However it
shouldn't be a subdevice of the CODEC as you had it originally, it
should be a distinct device as the above has it since that is what
physically exists.  This obviously won't configure the FLL at all though
(which was what the binding you were proposing was for, the above is
definitely not a direct substitute for the binding you originally
proposed).

> > When we say to use the clock binding what we are saying is to use the
> > actual clock bindings to describe the clocks, not make a custom binding
> > that looks kind of like them - making a custom binding doesn't address
> > the problem.

> But I don't know what you mean by "use the actual clock bindings to
> describe the clocks".

> What is not clear to me is how you want me to use a clock binding to
> describe something that isn't a clk-framework clk. If you know what you
> want, then please.. an example would help explain.

The concept of a clock framework is an implementation detail of Linux
which should not affect how the DT bindings for a device or system are
written, DT bindings should be clear and idiomatic as DT bindings.  The
goal is to represent the system in a clear and standardized fashion
which is useful to OSs in general, not just something convenient for
Linux as it happens to be implemented right now.  Current Linux
internals are not a constraint for DT bindings.

In this case if you can't figure out how to parse clock bindings without
moving the clocks over to standard Linux clock APIs (which seems likely)
then it follows that if you want to describe the clock configuration in
DT then the driver support for these clocks should use the standard
Linux clock framework.  This seems like a good idea in general anyway.

[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

[-- Attachment #2: Type: text/plain, Size: 176 bytes --]

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  reply	other threads:[~2021-01-15 18:36 UTC|newest]

Thread overview: 64+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-01-08 16:04 [PATCH v4 0/6] Add support for Rpi4b + Cirrus Lochnagar2 and CS47L15 Richard Fitzgerald
2021-01-08 16:04 ` Richard Fitzgerald
2021-01-08 16:04 ` Richard Fitzgerald
2021-01-08 16:04 ` [PATCH v4 1/6] of: base: Add of_count_phandle_with_fixed_args() Richard Fitzgerald
2021-01-08 16:04   ` Richard Fitzgerald
2021-01-08 16:04   ` Richard Fitzgerald
2021-01-08 16:04 ` [PATCH v4 2/6] dt-bindings: audio-graph-card: Add plls and sysclks properties Richard Fitzgerald
2021-01-08 16:04   ` Richard Fitzgerald
2021-01-08 16:04   ` Richard Fitzgerald
2021-01-13 15:22   ` Rob Herring
2021-01-13 15:22     ` Rob Herring
2021-01-13 15:22     ` Rob Herring
2021-01-13 16:09     ` Mark Brown
2021-01-13 16:09       ` Mark Brown
2021-01-13 16:09       ` Mark Brown
2021-01-15 10:35       ` Richard Fitzgerald
2021-01-15 10:35         ` Richard Fitzgerald
2021-01-15 10:35         ` Richard Fitzgerald
2021-01-15 13:11         ` Mark Brown
2021-01-15 13:11           ` Mark Brown
2021-01-15 13:11           ` Mark Brown
2021-01-15 14:42           ` Richard Fitzgerald
2021-01-15 14:42             ` Richard Fitzgerald
2021-01-15 14:42             ` Richard Fitzgerald
2021-01-15 15:20             ` Mark Brown
2021-01-15 15:20               ` Mark Brown
2021-01-15 15:20               ` Mark Brown
2021-01-15 16:15               ` Richard Fitzgerald
2021-01-15 16:15                 ` Richard Fitzgerald
2021-01-15 16:15                 ` Richard Fitzgerald
2021-01-15 18:35                 ` Mark Brown [this message]
2021-01-15 18:35                   ` Mark Brown
2021-01-15 18:35                   ` Mark Brown
2021-01-14 10:31     ` Richard Fitzgerald
2021-01-14 10:31       ` Richard Fitzgerald
2021-01-14 10:31       ` Richard Fitzgerald
2021-01-14 11:14       ` Mark Brown
2021-01-14 11:14         ` Mark Brown
2021-01-14 11:14         ` Mark Brown
2021-01-14 12:31         ` Richard Fitzgerald
2021-01-08 16:04 ` [PATCH v4 3/6] ASoC: audio-graph-card: Support setting component plls and sysclks Richard Fitzgerald
2021-01-08 16:04   ` Richard Fitzgerald
2021-01-08 16:04   ` Richard Fitzgerald
2021-01-12  1:35   ` Kuninori Morimoto
2021-01-12  1:35     ` Kuninori Morimoto
2021-01-12  1:35     ` Kuninori Morimoto
2021-01-12 10:22     ` Richard Fitzgerald
2021-01-12 10:22       ` Richard Fitzgerald
2021-01-12 10:22       ` Richard Fitzgerald
2021-01-13  0:00       ` Kuninori Morimoto
2021-01-13  0:00         ` Kuninori Morimoto
2021-01-13  0:00         ` Kuninori Morimoto
2021-01-13 15:51         ` Mark Brown
2021-01-13 15:51           ` Mark Brown
2021-01-13 15:51           ` Mark Brown
2021-01-08 16:04 ` [PATCH v4 4/6] ASoC: madera: Allow codecs to be selected from kernel config Richard Fitzgerald
2021-01-08 16:04   ` Richard Fitzgerald
2021-01-08 16:04   ` Richard Fitzgerald
2021-01-08 16:05 ` [PATCH v4 5/6] ASoC: madera: Export clock config defines to dt-bindings Richard Fitzgerald
2021-01-08 16:05   ` Richard Fitzgerald
2021-01-08 16:05   ` Richard Fitzgerald
2021-01-08 16:05 ` [PATCH v4 6/6] ARM: dts: Add dts for RPi4b + Cirrus Logic Lochnagar2 + CS47L15 Richard Fitzgerald
2021-01-08 16:05   ` Richard Fitzgerald
2021-01-08 16:05   ` Richard Fitzgerald

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=20210115183527.GG4384@sirena.org.uk \
    --to=broonie@kernel.org \
    --cc=alsa-devel@alsa-project.org \
    --cc=bcm-kernel-feedback-list@broadcom.com \
    --cc=devicetree@vger.kernel.org \
    --cc=f.fainelli@gmail.com \
    --cc=kuninori.morimoto.gx@renesas.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-rpi-kernel@lists.infradead.org \
    --cc=nsaenzjulienne@suse.de \
    --cc=patches@opensource.cirrus.com \
    --cc=rf@opensource.cirrus.com \
    --cc=robh@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.