> Subject: RE: [v3 2/3] pwm: Add Aspeed ast2600 PWM support > > Hi Billy Tsai, > > > -----Original Message----- > > From: Billy Tsai <billy_tsai@xxxxxxxxxxxxxx> > > Sent: 07 November 2022 09:26 > > To: Biju Das <biju.das.jz@xxxxxxxxxxxxxx>; jdelvare@xxxxxxxx; > > linux@roeck- us.net; robh+dt@xxxxxxxxxx; joel@xxxxxxxxx; > > andrew@xxxxxxxx; lee.jones@xxxxxxxxxx; thierry.reding@xxxxxxxxx; > > u.kleine- koenig@xxxxxxxxxxxxxx; p.zabel@xxxxxxxxxxxxxx; > > linux-hwmon@xxxxxxxxxxxxxxx; devicetree@xxxxxxxxxxxxxxx; > > linux-arm-kernel@xxxxxxxxxxxxxxxxxxx; linux- aspeed@xxxxxxxxxxxxxxxx; > > linux-kernel@xxxxxxxxxxxxxxx; linux- pwm@xxxxxxxxxxxxxxx; BMC-SW > > <BMC-SW@xxxxxxxxxxxxxx>; garnermic@xxxxxxxx > > Cc: kernel test robot <lkp@xxxxxxxxx>; Geert Uytterhoeven > > <geert+renesas@xxxxxxxxx> > > Subject: Re: [v3 2/3] pwm: Add Aspeed ast2600 PWM support > > > > On 2022/11/7, 4:55 PM, "Biju Das" <biju.das.jz@xxxxxxxxxxxxxx> wrote: > > > > > > -----Original Message----- > > > > From: Billy Tsai <billy_tsai@xxxxxxxxxxxxxx> > > > > Sent: 07 November 2022 08:48 > > > > To: Biju Das <biju.das.jz@xxxxxxxxxxxxxx>; jdelvare@xxxxxxxx; > > linux@roeck- > > > > us.net; robh+dt@xxxxxxxxxx; joel@xxxxxxxxx; andrew@xxxxxxxx; > > > > lee.jones@xxxxxxxxxx; thierry.reding@xxxxxxxxx; u.kleine- > > > > koenig@xxxxxxxxxxxxxx; p.zabel@xxxxxxxxxxxxxx; linux- > > hwmon@xxxxxxxxxxxxxxx; > > > > devicetree@xxxxxxxxxxxxxxx; > > linux-arm-kernel@xxxxxxxxxxxxxxxxxxx; > > linux- > > > > aspeed@xxxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; linux- > > > > pwm@xxxxxxxxxxxxxxx; BMC-SW <BMC-SW@xxxxxxxxxxxxxx>; > > garnermic@xxxxxxxx > > > > Cc: kernel test robot <lkp@xxxxxxxxx> > > > > Subject: Re: [v3 2/3] pwm: Add Aspeed ast2600 PWM support > > > > > > > > On 2022/11/2, 11:56 PM, "Biju Das" > > <biju.das.jz@xxxxxxxxxxxxxx> > > wrote: > > > > > > > > > > + parent_dev = of_find_device_by_node(np); > > > > > > + priv->clk = devm_clk_get_enabled(&parent_dev->dev, > NULL); > > > > > > + if (IS_ERR(priv->clk)) > > > > > > + return dev_err_probe(dev, PTR_ERR(priv->clk), > > > > > > + "Couldn't get clock\n"); > > > > > > > > > What is the use case? > > > > > > > > > Is pwm configured by boot loader initially ? > > > > > > > > > Or > > > > > > > > > pwm configured by Linux, not by the bootloader initially? > > > > > > > > > Or > > > > > > > > > Driver needs to handle both cases? > > > > > > > > > Just asking, because you are turning on the clock > unnecessarily > > here, > > > > > If you need to address all the use cases. If it is just first > > one, then > > > > > It is ok. > > > > > > > > Hi Biju, > > > > > > > > The driver want to handle all of the use cases. Can you tell > > me why turning > > > > on the clock is unnecessarily here? > > > > > For the use case, "pwm configured by Linux, not by the > > bootloader initially", > > > > > You are unnecessarily turning on the clocks. You could > > > > > enable it during pwm_enable > > > and disable it during pwm_disable. > > > > > For configuring registers, while pwm is in disable state, > > > you could just turn on the clock and do the register > > configurations and turn it off. > > > > > By this way you are saving power. > > > > Hi Biju, > > > > This clock is the source clock for the pwm controller (include the > > accessing for the register). > > OK, But the driver has only one clock (priv->clk = > devm_clk_get_enabled(&parent_dev->dev, NULL)). > You are always turning it on during probe. Your system needs this clock always on, then it is OK. Cheers, Biju