All of lore.kernel.org
 help / color / mirror / Atom feed
From: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
To: Andre Przywara <andre.przywara@arm.com>
Cc: "Jernej Škrabec" <jernej.skrabec@gmail.com>,
	"Samuel Holland" <samuel@sholland.org>,
	"Chen-Yu Tsai" <wens@csie.org>,
	linux-sunxi@lists.linux.dev,
	"Palmer Dabbelt" <palmer@dabbelt.com>,
	"Paul Walmsley" <paul.walmsley@sifive.com>,
	"Albert Ou" <aou@eecs.berkeley.edu>,
	linux-riscv@lists.infradead.org,
	"Heiko Stübner" <heiko@sntech.de>,
	"Rob Herring" <robh+dt@kernel.org>,
	devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
	"Krzysztof Kozlowski" <krzysztof.kozlowski+dt@linaro.org>
Subject: Re: [PATCH 06/12] riscv: dts: allwinner: Add the D1 SoC base devicetree
Date: Tue, 16 Aug 2022 14:11:19 +0300	[thread overview]
Message-ID: <29072f12-b9a3-9815-ad52-5c4f6b1634b3@linaro.org> (raw)
In-Reply-To: <20220816120050.07dc2416@donnerap.cambridge.arm.com>

On 16/08/2022 14:00, Andre Przywara wrote:
> On Tue, 16 Aug 2022 12:42:39 +0300
> Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> wrote:
> 
> Hi,
> 
>> On 16/08/2022 12:25, Jernej Škrabec wrote:
>>> Dne torek, 16. avgust 2022 ob 11:12:05 CEST je Heiko Stübner napisal(a):  
>>>> Am Dienstag, 16. August 2022, 09:49:58 CEST schrieb Jernej Škrabec:  
>>>>> Dne torek, 16. avgust 2022 ob 09:41:45 CEST je Krzysztof Kozlowski   
>>> napisal(a):  
>>>>>> On 15/08/2022 08:08, Samuel Holland wrote:  
>>>>>>> +
>>>>>>> +	de: display-engine {
>>>>>>> +		compatible = "allwinner,sun20i-d1-display-engine";
>>>>>>> +		allwinner,pipelines = <&mixer0>, <&mixer1>;
>>>>>>> +		status = "disabled";
>>>>>>> +	};
>>>>>>> +
>>>>>>> +	osc24M: osc24M-clk {  
>>>>>>
>>>>>> lowercase
>>>>>>  
>>>>>>> +		compatible = "fixed-clock";
>>>>>>> +		clock-frequency = <24000000>;  
>>>>>>
>>>>>> This is a property of the board, not SoC.  
>>>>>
>>>>> SoC needs 24 MHz oscillator for correct operation, so each and every board
>>>>> has it. Having it here simplifies board DT files.  
>>>>
>>>> I guess the oscillator is a separate component on each board, right?  
>>>
>>> Correct.
>>>   
>>>> And DT obvious is meant to describe the hardware - independently from
>>>> implementation-specific choices.  
>>>
>>> There is no choice in this case. 24 MHz crystal has to be present.
>>>
>>> FWIW, including crystal node in SoC specific DTSI is already common pattern in 
>>> Allwinner ARM SoC DTSI files.
>>>   
>>>>
>>>> Starting to discuss which exceptions to allow then might lead to even more
>>>> exceptions.
>>>>
>>>> Also having to look for a board-component in the soc dtsi also is surprising
>>>> if one gets to the party later on :-) .  
>>>
>>> As I said, if one is accustomed to Allwinner ARM DT development, it would be 
>>> more surprising to include 24 MHz crystal node in each and every board DT.  
>>
>> It's same everywhere. Allwinner, Exynos, iMX, Qualcomm. Everywhere this
>> is a part of the board, so even if oscillator frequency is fixed (as in
>> 99% of cases although some SoCs I think might just allow to implement
>> one of few), still this is a property of the board. Because:
>> 1. DTSI describes the SoC part, not board.
>> 2. So the DTS developer is a bit more conscious about his design.
> 
> 1) is certainly true, but indeed most platforms put the base
> crystal oscillator in the SoC .dtsi:

Yes. And once per week when I look at new DTS I need to repeat the same
arguments. :)

> I just sampled Rockchip (rk3399.dtsi,
> rk356x.dtsi, rk3328.dtsi), Amlogic (meson-g12-common.dtsi), ActionSemi (s[79]00.dtsi),
> Qualcomm (msm8916.dtsi, sm8450.dtsi, sc7180.dtsi), Freescale (imx8mm.dtsi,
> imx8qxp.dtsi), Realtek (rtd129x.dtsi), Broadcom (bcm283x.dtsi), Mediatek
> (mt8183.dtsi, mt8516.dtsi). The list probably goes on (I just stopped
> here).
> 
> I think one reason might be that this is so central to the whole SoC
> operation, that it's already referenced multiple times in the base .dtsi.
> And having a yet unresolved reference in the .dtsi looks dodgy.
> 
> NVidia seems to omit a base oscillator (maybe it's implicit in their
> binding design), Marvell doesn't use a fixed-clock (but still puts their
> base clock in armada-37xx.dtsi).
> 
> Exynos and Renesas put a *stub* fixed-clock in the .dtsi, and set the
> frequency in the board .dts files. Would this be a compromise?

This is exactly what I said before. The clock frequency is a property of
the board. Feel free to keep the rest of the clock in the SoC DTSI to
reduce duplication, but at minimum the clock should go to the board.

Best regards,
Krzysztof

WARNING: multiple messages have this Message-ID (diff)
From: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
To: Andre Przywara <andre.przywara@arm.com>
Cc: "Jernej Škrabec" <jernej.skrabec@gmail.com>,
	"Samuel Holland" <samuel@sholland.org>,
	"Chen-Yu Tsai" <wens@csie.org>,
	linux-sunxi@lists.linux.dev,
	"Palmer Dabbelt" <palmer@dabbelt.com>,
	"Paul Walmsley" <paul.walmsley@sifive.com>,
	"Albert Ou" <aou@eecs.berkeley.edu>,
	linux-riscv@lists.infradead.org,
	"Heiko Stübner" <heiko@sntech.de>,
	"Rob Herring" <robh+dt@kernel.org>,
	devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
	"Krzysztof Kozlowski" <krzysztof.kozlowski+dt@linaro.org>
Subject: Re: [PATCH 06/12] riscv: dts: allwinner: Add the D1 SoC base devicetree
Date: Tue, 16 Aug 2022 14:11:19 +0300	[thread overview]
Message-ID: <29072f12-b9a3-9815-ad52-5c4f6b1634b3@linaro.org> (raw)
In-Reply-To: <20220816120050.07dc2416@donnerap.cambridge.arm.com>

On 16/08/2022 14:00, Andre Przywara wrote:
> On Tue, 16 Aug 2022 12:42:39 +0300
> Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> wrote:
> 
> Hi,
> 
>> On 16/08/2022 12:25, Jernej Škrabec wrote:
>>> Dne torek, 16. avgust 2022 ob 11:12:05 CEST je Heiko Stübner napisal(a):  
>>>> Am Dienstag, 16. August 2022, 09:49:58 CEST schrieb Jernej Škrabec:  
>>>>> Dne torek, 16. avgust 2022 ob 09:41:45 CEST je Krzysztof Kozlowski   
>>> napisal(a):  
>>>>>> On 15/08/2022 08:08, Samuel Holland wrote:  
>>>>>>> +
>>>>>>> +	de: display-engine {
>>>>>>> +		compatible = "allwinner,sun20i-d1-display-engine";
>>>>>>> +		allwinner,pipelines = <&mixer0>, <&mixer1>;
>>>>>>> +		status = "disabled";
>>>>>>> +	};
>>>>>>> +
>>>>>>> +	osc24M: osc24M-clk {  
>>>>>>
>>>>>> lowercase
>>>>>>  
>>>>>>> +		compatible = "fixed-clock";
>>>>>>> +		clock-frequency = <24000000>;  
>>>>>>
>>>>>> This is a property of the board, not SoC.  
>>>>>
>>>>> SoC needs 24 MHz oscillator for correct operation, so each and every board
>>>>> has it. Having it here simplifies board DT files.  
>>>>
>>>> I guess the oscillator is a separate component on each board, right?  
>>>
>>> Correct.
>>>   
>>>> And DT obvious is meant to describe the hardware - independently from
>>>> implementation-specific choices.  
>>>
>>> There is no choice in this case. 24 MHz crystal has to be present.
>>>
>>> FWIW, including crystal node in SoC specific DTSI is already common pattern in 
>>> Allwinner ARM SoC DTSI files.
>>>   
>>>>
>>>> Starting to discuss which exceptions to allow then might lead to even more
>>>> exceptions.
>>>>
>>>> Also having to look for a board-component in the soc dtsi also is surprising
>>>> if one gets to the party later on :-) .  
>>>
>>> As I said, if one is accustomed to Allwinner ARM DT development, it would be 
>>> more surprising to include 24 MHz crystal node in each and every board DT.  
>>
>> It's same everywhere. Allwinner, Exynos, iMX, Qualcomm. Everywhere this
>> is a part of the board, so even if oscillator frequency is fixed (as in
>> 99% of cases although some SoCs I think might just allow to implement
>> one of few), still this is a property of the board. Because:
>> 1. DTSI describes the SoC part, not board.
>> 2. So the DTS developer is a bit more conscious about his design.
> 
> 1) is certainly true, but indeed most platforms put the base
> crystal oscillator in the SoC .dtsi:

Yes. And once per week when I look at new DTS I need to repeat the same
arguments. :)

> I just sampled Rockchip (rk3399.dtsi,
> rk356x.dtsi, rk3328.dtsi), Amlogic (meson-g12-common.dtsi), ActionSemi (s[79]00.dtsi),
> Qualcomm (msm8916.dtsi, sm8450.dtsi, sc7180.dtsi), Freescale (imx8mm.dtsi,
> imx8qxp.dtsi), Realtek (rtd129x.dtsi), Broadcom (bcm283x.dtsi), Mediatek
> (mt8183.dtsi, mt8516.dtsi). The list probably goes on (I just stopped
> here).
> 
> I think one reason might be that this is so central to the whole SoC
> operation, that it's already referenced multiple times in the base .dtsi.
> And having a yet unresolved reference in the .dtsi looks dodgy.
> 
> NVidia seems to omit a base oscillator (maybe it's implicit in their
> binding design), Marvell doesn't use a fixed-clock (but still puts their
> base clock in armada-37xx.dtsi).
> 
> Exynos and Renesas put a *stub* fixed-clock in the .dtsi, and set the
> frequency in the board .dts files. Would this be a compromise?

This is exactly what I said before. The clock frequency is a property of
the board. Feel free to keep the rest of the clock in the SoC DTSI to
reduce duplication, but at minimum the clock should go to the board.

Best regards,
Krzysztof

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

  reply	other threads:[~2022-08-16 11:11 UTC|newest]

Thread overview: 158+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-08-15  5:08 [PATCH 00/12] riscv: Allwinner D1 platform support Samuel Holland
2022-08-15  5:08 ` Samuel Holland
2022-08-15  5:08 ` [PATCH 01/12] MAINTAINERS: Match the sun20i family of Allwinner SoCs Samuel Holland
2022-08-15  5:08   ` Samuel Holland
2022-08-15 17:06   ` Heiko Stübner
2022-08-15 17:06     ` Heiko Stübner
2022-08-15  5:08 ` [PATCH 02/12] dt-bindings: riscv: Add T-HEAD C906 and C910 compatibles Samuel Holland
2022-08-15  5:08   ` Samuel Holland
2022-08-15 17:07   ` Heiko Stübner
2022-08-15 17:07     ` Heiko Stübner
2022-08-16 17:34   ` Rob Herring
2022-08-16 17:34     ` Rob Herring
2022-11-04  2:57   ` Icenowy Zheng
2022-11-04  2:57     ` Icenowy Zheng
2022-11-20 11:23     ` Conor Dooley
2022-11-20 11:23       ` Conor Dooley
2022-11-20 11:25       ` Conor Dooley
2022-11-20 11:25         ` Conor Dooley
2022-08-15  5:08 ` [PATCH 03/12] dt-bindings: vendor-prefixes: Add Allwinner D1 board vendors Samuel Holland
2022-08-15  5:08   ` Samuel Holland
2022-08-15 17:12   ` Heiko Stübner
2022-08-15 17:12     ` Heiko Stübner
2022-08-16 17:34   ` Rob Herring
2022-08-16 17:34     ` Rob Herring
2022-08-15  5:08 ` [PATCH 04/12] dt-bindings: riscv: Add Allwinner D1 board compatibles Samuel Holland
2022-08-15  5:08   ` Samuel Holland
2022-08-16  7:39   ` Krzysztof Kozlowski
2022-08-16  7:39     ` Krzysztof Kozlowski
2022-08-16  9:02     ` Heiko Stübner
2022-08-16  9:02       ` Heiko Stübner
2022-08-16  9:12   ` Heiko Stübner
2022-08-16  9:12     ` Heiko Stübner
2022-08-16 17:35   ` Rob Herring
2022-08-16 17:35     ` Rob Herring
2022-08-15  5:08 ` [PATCH 05/12] riscv: Add the Allwinner SoC family Kconfig option Samuel Holland
2022-08-15  5:08   ` Samuel Holland
2022-08-15 16:56   ` Conor.Dooley
2022-08-15 16:56     ` Conor.Dooley
2022-08-16  9:17     ` Heiko Stübner
2022-08-16  9:17       ` Heiko Stübner
2022-08-16  9:23       ` Conor.Dooley
2022-08-16  9:23         ` Conor.Dooley
2022-08-15 17:13   ` Heiko Stübner
2022-08-15 17:13     ` Heiko Stübner
2022-08-15  5:08 ` [PATCH 06/12] riscv: dts: allwinner: Add the D1 SoC base devicetree Samuel Holland
2022-08-15  5:08   ` Samuel Holland
2022-08-15 13:11   ` Andre Przywara
2022-08-15 13:11     ` Andre Przywara
2022-08-15 17:01     ` Conor.Dooley
2022-08-15 17:01       ` Conor.Dooley
2022-08-20 17:24       ` Samuel Holland
2022-08-20 17:24         ` Samuel Holland
2022-08-20 17:29         ` Conor.Dooley
2022-08-20 17:29           ` Conor.Dooley
2022-08-21  6:45           ` Icenowy Zheng
2022-08-21  6:45             ` Icenowy Zheng
2022-08-21 10:04             ` Conor.Dooley
2022-08-21 10:04               ` Conor.Dooley
2022-08-22 11:46               ` Geert Uytterhoeven
2022-08-22 11:46                 ` Geert Uytterhoeven
2022-08-22 12:13                 ` Conor.Dooley
2022-08-22 12:13                   ` Conor.Dooley
2022-08-22 12:29                   ` Andre Przywara
2022-08-22 12:29                     ` Andre Przywara
2022-08-22 12:31                   ` Geert Uytterhoeven
2022-08-22 12:31                     ` Geert Uytterhoeven
2022-08-22 13:56                     ` Conor.Dooley
2022-08-22 13:56                       ` Conor.Dooley
2022-08-22 15:29                       ` Jessica Clarke
2022-08-22 15:29                         ` Jessica Clarke
2022-09-09  3:42                         ` Samuel Holland
2022-09-09  3:42                           ` Samuel Holland
2022-09-09  7:10                           ` Geert Uytterhoeven
2022-09-09  7:10                             ` Geert Uytterhoeven
2022-09-21  7:49                             ` Geert Uytterhoeven
2022-09-21  7:49                               ` Geert Uytterhoeven
2022-08-22 10:50         ` Andre Przywara
2022-08-22 10:50           ` Andre Przywara
2022-08-16  7:41   ` Krzysztof Kozlowski
2022-08-16  7:41     ` Krzysztof Kozlowski
2022-08-16  7:49     ` Jernej Škrabec
2022-08-16  7:49       ` Jernej Škrabec
2022-08-16  9:12       ` Heiko Stübner
2022-08-16  9:12         ` Heiko Stübner
2022-08-16  9:25         ` Jernej Škrabec
2022-08-16  9:25           ` Jernej Škrabec
2022-08-16  9:42           ` Krzysztof Kozlowski
2022-08-16  9:42             ` Krzysztof Kozlowski
2022-08-16 11:00             ` Andre Przywara
2022-08-16 11:00               ` Andre Przywara
2022-08-16 11:11               ` Krzysztof Kozlowski [this message]
2022-08-16 11:11                 ` Krzysztof Kozlowski
2022-08-16 11:12                 ` Krzysztof Kozlowski
2022-08-16 11:12                   ` Krzysztof Kozlowski
2022-08-16 11:34                   ` Conor.Dooley
2022-08-16 11:34                     ` Conor.Dooley
2022-08-22 11:40           ` Geert Uytterhoeven
2022-08-22 11:40             ` Geert Uytterhoeven
2022-08-16  9:11   ` Heiko Stübner
2022-08-16  9:11     ` Heiko Stübner
2022-08-17  8:29   ` Krzysztof Kozlowski
2022-08-17  8:29     ` Krzysztof Kozlowski
2022-08-19 22:19   ` Conor.Dooley
2022-08-19 22:19     ` Conor.Dooley
2022-08-15  5:08 ` [PATCH 07/12] riscv: dts: allwinner: Add Allwinner D1 Nezha devicetree Samuel Holland
2022-08-15  5:08   ` Samuel Holland
2022-08-15 17:37   ` Conor.Dooley
2022-08-15 17:37     ` Conor.Dooley
2022-08-15 18:34     ` Conor.Dooley
2022-08-15 18:34       ` Conor.Dooley
2022-08-16  8:55   ` Heiko Stübner
2022-08-16  8:55     ` Heiko Stübner
2022-08-19 22:10   ` Conor.Dooley
2022-08-19 22:10     ` Conor.Dooley
2022-08-21  7:06     ` Icenowy Zheng
2022-08-21  7:06       ` Icenowy Zheng
2022-09-04 20:10     ` Peter Korsgaard
2022-09-04 20:10       ` Peter Korsgaard
2022-09-09  4:37     ` Samuel Holland
2022-09-09  4:37       ` Samuel Holland
2022-09-09  7:18       ` Conor.Dooley
2022-09-09  7:18         ` Conor.Dooley
2022-09-09  8:11         ` Heiko Stübner
2022-09-09  8:11           ` Heiko Stübner
2022-09-09 19:04           ` Jessica Clarke
2022-09-09 19:04             ` Jessica Clarke
2022-09-03 15:21   ` Peter Korsgaard
2022-09-03 15:21     ` Peter Korsgaard
2022-08-15  5:08 ` [PATCH 08/12] riscv: dts: allwinner: Add Sipeed Lichee RV devicetrees Samuel Holland
2022-08-15  5:08   ` Samuel Holland
2022-08-15  5:08 ` [PATCH 09/12] riscv: dts: allwinner: Add MangoPi MQ Pro devicetree Samuel Holland
2022-08-15  5:08   ` Samuel Holland
2022-08-15  5:08 ` [PATCH 10/12] riscv: dts: allwinner: Add Dongshan Nezha STU devicetree Samuel Holland
2022-08-15  5:08   ` Samuel Holland
2022-08-15  5:08 ` [PATCH 11/12] riscv: dts: allwinner: Add ClockworkPi and DevTerm devicetrees Samuel Holland
2022-08-15  5:08   ` Samuel Holland
2022-08-15  5:08 ` [PATCH 12/12] riscv: defconfig: Enable the Allwinner D1 platform and drivers Samuel Holland
2022-08-15  5:08   ` Samuel Holland
2022-08-15  7:05 ` [PATCH 00/12] riscv: Allwinner D1 platform support Conor.Dooley
2022-08-15  7:05   ` Conor.Dooley
2022-08-15 17:12   ` Conor.Dooley
2022-08-15 17:12     ` Conor.Dooley
2022-08-16  2:42     ` Samuel Holland
2022-08-16  2:42       ` Samuel Holland
2022-08-16  6:38       ` Conor.Dooley
2022-08-16  6:38         ` Conor.Dooley
2022-09-01 18:10 ` Palmer Dabbelt
2022-09-01 18:10   ` Palmer Dabbelt
2022-09-02  5:42   ` Conor.Dooley
2022-09-02  5:42     ` Conor.Dooley
2022-09-06 20:29   ` Jernej Škrabec
2022-09-06 20:29     ` Jernej Škrabec
2022-09-07 20:43     ` Conor.Dooley
2022-09-07 20:43       ` Conor.Dooley
2022-09-08  7:00       ` Geert Uytterhoeven
2022-09-08  7:00         ` Geert Uytterhoeven
2022-09-08  9:04         ` Arnd Bergmann
2022-09-08  9:04           ` Arnd Bergmann

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=29072f12-b9a3-9815-ad52-5c4f6b1634b3@linaro.org \
    --to=krzysztof.kozlowski@linaro.org \
    --cc=andre.przywara@arm.com \
    --cc=aou@eecs.berkeley.edu \
    --cc=devicetree@vger.kernel.org \
    --cc=heiko@sntech.de \
    --cc=jernej.skrabec@gmail.com \
    --cc=krzysztof.kozlowski+dt@linaro.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-riscv@lists.infradead.org \
    --cc=linux-sunxi@lists.linux.dev \
    --cc=palmer@dabbelt.com \
    --cc=paul.walmsley@sifive.com \
    --cc=robh+dt@kernel.org \
    --cc=samuel@sholland.org \
    --cc=wens@csie.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.