Message ID | 20250530-apr_14_for_sending-v3-6-83d5744d997c@samsung.com |
---|---|
State | New |
Headers | show |
Series | Add TH1520 GPU support with power sequencing | expand |
On Fri, May 30, 2025 at 12:23:53AM GMT, Michal Wilczynski wrote: > Add the device tree node for the T-HEAD TH1520 GPU power sequencer > (gpu_pwrseq) to the th1520.dtsi file. > > This node instantiates the thead,th1520-gpu-pwrseq driver, which Explain the hardware, not what drivers do. > is responsible for managing the GPU's power-on/off sequence. The node > specifies the gpu-clkgen reset, which is one of the resources > controlled by this sequencer. > > Signed-off-by: Michal Wilczynski <m.wilczynski@samsung.com> > --- > arch/riscv/boot/dts/thead/th1520.dtsi | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/arch/riscv/boot/dts/thead/th1520.dtsi b/arch/riscv/boot/dts/thead/th1520.dtsi > index bdbb1b985b0b76cf669a9bf40c6ec37258329056..6170eec79e919b606a2046ac8f52db07e47ef441 100644 > --- a/arch/riscv/boot/dts/thead/th1520.dtsi > +++ b/arch/riscv/boot/dts/thead/th1520.dtsi > @@ -238,6 +238,12 @@ aon: aon { > #power-domain-cells = <1>; > }; > > + gpu_pwrseq: pwrseq { Node names should be generic. See also an explanation and list of examples (not exhaustive) in DT specification: https://devicetree-specification.readthedocs.io/en/latest/chapter2-devicetree-basics.html#generic-names-recommendation > + compatible = "thead,th1520-gpu-pwrseq"; > + resets = <&rst TH1520_RESET_ID_GPU_CLKGEN>; > + reset-names = "gpu-clkgen"; What is the point of pwrseq if there is no consumer/user of it? Looks like simple placeholder and anyway maybe the future consumer should just use reset directly. Best regards, Krzysztof
On Tue, Jun 3, 2025 at 8:45 PM Michal Wilczynski <m.wilczynski@samsung.com> wrote: > > > > On 6/3/25 15:22, Krzysztof Kozlowski wrote: > > On Fri, May 30, 2025 at 12:23:53AM GMT, Michal Wilczynski wrote: > >> Add the device tree node for the T-HEAD TH1520 GPU power sequencer > >> (gpu_pwrseq) to the th1520.dtsi file. > >> > >> This node instantiates the thead,th1520-gpu-pwrseq driver, which > > > > Explain the hardware, not what drivers do. > > > >> is responsible for managing the GPU's power-on/off sequence. The node > >> specifies the gpu-clkgen reset, which is one of the resources > >> controlled by this sequencer. > >> > >> Signed-off-by: Michal Wilczynski <m.wilczynski@samsung.com> > >> --- > >> arch/riscv/boot/dts/thead/th1520.dtsi | 6 ++++++ > >> 1 file changed, 6 insertions(+) > >> > >> diff --git a/arch/riscv/boot/dts/thead/th1520.dtsi b/arch/riscv/boot/dts/thead/th1520.dtsi > >> index bdbb1b985b0b76cf669a9bf40c6ec37258329056..6170eec79e919b606a2046ac8f52db07e47ef441 100644 > >> --- a/arch/riscv/boot/dts/thead/th1520.dtsi > >> +++ b/arch/riscv/boot/dts/thead/th1520.dtsi > >> @@ -238,6 +238,12 @@ aon: aon { > >> #power-domain-cells = <1>; > >> }; > >> > >> + gpu_pwrseq: pwrseq { > > > > Node names should be generic. See also an explanation and list of > > examples (not exhaustive) in DT specification: > > https://protect2.fireeye.com/v1/url?k=a53ea5d3-c4434f50-a53f2e9c-74fe48600158-c81092475ef416b3&q=1&e=d333d06b-0b06-493e-a358-e29ca542dfe7&u=https%3A%2F%2Fdevicetree-specification.readthedocs.io%2Fen%2Flatest%2Fchapter2-devicetree-basics.html%23generic-names-recommendation > > > >> + compatible = "thead,th1520-gpu-pwrseq"; > >> + resets = <&rst TH1520_RESET_ID_GPU_CLKGEN>; > >> + reset-names = "gpu-clkgen"; > > > > What is the point of pwrseq if there is no consumer/user of it? Looks > > like simple placeholder and anyway maybe the future consumer should just > > use reset directly. > > Yeah I think you're right, I wanted to explore adding the pwrseq > provider in separate node per discussion in v2 [1]. But for the v4 I > think I'll revert to the v2 way of handling this reset [2]. > > [1] - https://lore.kernel.org/all/CAPDyKFpi6_CD++a9sbGBvJCuBSQS6YcpNttkRQhQMTWy1yyrRg@mail.gmail.com/ > [2] - https://lore.kernel.org/all/20250414-apr_14_for_sending-v2-2-70c5af2af96c@samsung.com/ > I think you still need to connect the GPU node with its pwrseq provider (which will be the aon node in this case). But you already have this link - the aon power domain. You can parse it in the pwrseq match callback to determine which GPU is powered by which AON module. Bart
diff --git a/arch/riscv/boot/dts/thead/th1520.dtsi b/arch/riscv/boot/dts/thead/th1520.dtsi index bdbb1b985b0b76cf669a9bf40c6ec37258329056..6170eec79e919b606a2046ac8f52db07e47ef441 100644 --- a/arch/riscv/boot/dts/thead/th1520.dtsi +++ b/arch/riscv/boot/dts/thead/th1520.dtsi @@ -238,6 +238,12 @@ aon: aon { #power-domain-cells = <1>; }; + gpu_pwrseq: pwrseq { + compatible = "thead,th1520-gpu-pwrseq"; + resets = <&rst TH1520_RESET_ID_GPU_CLKGEN>; + reset-names = "gpu-clkgen"; + }; + soc { compatible = "simple-bus"; interrupt-parent = <&plic>;
Add the device tree node for the T-HEAD TH1520 GPU power sequencer (gpu_pwrseq) to the th1520.dtsi file. This node instantiates the thead,th1520-gpu-pwrseq driver, which is responsible for managing the GPU's power-on/off sequence. The node specifies the gpu-clkgen reset, which is one of the resources controlled by this sequencer. Signed-off-by: Michal Wilczynski <m.wilczynski@samsung.com> --- arch/riscv/boot/dts/thead/th1520.dtsi | 6 ++++++ 1 file changed, 6 insertions(+)