Re: [PATCH v13 2/2] arm64: dts: imx: Add jpeg encoder/decoder nodes
From: Ezequiel Garcia
Date: Fri Jun 11 2021 - 11:01:26 EST
On Fri, 2021-06-11 at 21:33 +0800, Dong Aisheng wrote:
> [...]
>
> > > > +img_subsys: bus@58000000 {
> > > > + compatible = "simple-bus";
> > > > + #address-cells = <1>;
> > > > + #size-cells = <1>;
> > > > + ranges = <0x58000000 0x0 0x58000000 0x1000000>;
> > > > +
> > > > + img_ipg_clk: clock-img-ipg {
> > > > + compatible = "fixed-clock";
> > > > + #clock-cells = <0>;
> > > > + clock-frequency = <200000000>;
> > > > + clock-output-names = "img_ipg_clk";
> > > > + };
> > > > +
> > > > + jpegdec: jpegdec@58400000 {
> > >
> > > Node should be disabled by default.
> > > And enable it in board dts including LPCG.
> >
> > At version v5 of this patch, the node was disabled by default, and I
> > received this feedback from Ezequiel Garcia:
> >
> > "Pure memory-to-memory are typically not enabled per-board, but just
> > per-platform.
> > So you can drop the disabled status here."
> >
> > So, in v6 I made it enabled by default.
> >
> > Any strong reasons for enabled/disabled per platform?
>
> AFAIK we usually only enable system basic features and let other
> user selectable features disabled by default in dts.
> Even for device LPCG clocks, if it's enabled by default and later
> enter runtime suspend if no users, it still consumes power.
>
Well-written drivers shouldn't draw any power if not used.
And DT is about hardware-description, not about usage-description.
Which means, at the soc.dtsi level you disable devices that need
some board-level hardware thing to be enabled (e.g. a physical
connected, a regulator, etc.).
A pure memory-to-memory should be enabled by default, because
in practice you can't predict what the users a board will want
to use, nor the DT is the place for that.
Sticking to hardware description is the best way to get DT right :-)
Cheers,
Ezequiel