Message ID | 20211122114225.196280-1-alexander.stein@ew.tq-group.com (mailing list archive) |
---|---|
State | New, archived |
Delegated to: | Daniel Lezcano |
Headers | show |
Series | [1/1] thermal: imx8mm: enable ADC when enabling monitor | expand |
On 22/11/2021 12:42, Alexander Stein wrote: > From: Paul Gerber <Paul.Gerber@tq-group.com> > > The i.MX 8MP has a ADC_PD bit in the TMU_TER register that controls the > operating mode of the ADC: > * 0 means normal operating mode > * 1 means power down mode > > When enabling/disabling the TMU, the ADC operating mode must be set > accordingly. > > i.MX 8M Mini & Nano are lacking this bit. > > Signed-off-by: Paul Gerber <Paul.Gerber@tq-group.com> > Signed-off-by: Alexander Stein <alexander.stein@ew.tq-group.com> > --- > Often this bit is set already by the bootloader, but in case this is not > done, the file /sys/class/thermal/thermal_zone0/temp will always return > -EAGAIN. Does it deserve a Fixes tag? > drivers/thermal/imx8mm_thermal.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/drivers/thermal/imx8mm_thermal.c b/drivers/thermal/imx8mm_thermal.c > index 7442e013738f..af666bd9e8d4 100644 > --- a/drivers/thermal/imx8mm_thermal.c > +++ b/drivers/thermal/imx8mm_thermal.c > @@ -21,6 +21,7 @@ > #define TPS 0x4 > #define TRITSR 0x20 /* TMU immediate temp */ > > +#define TER_ADC_PD BIT(30) > #define TER_EN BIT(31) > #define TRITSR_TEMP0_VAL_MASK 0xff > #define TRITSR_TEMP1_VAL_MASK 0xff0000 > @@ -113,6 +114,8 @@ static void imx8mm_tmu_enable(struct imx8mm_tmu *tmu, bool enable) > > val = readl_relaxed(tmu->base + TER); > val = enable ? (val | TER_EN) : (val & ~TER_EN); > + if (tmu->socdata->version == TMU_VER2) > + val = enable ? (val & ~TER_ADC_PD) : (val | TER_ADC_PD); > writel_relaxed(val, tmu->base + TER); > } > >
Am Dienstag, dem 30.11.2021 um 15:49 +0100 schrieb Daniel Lezcano: > On 22/11/2021 12:42, Alexander Stein wrote: > > From: Paul Gerber < > > Paul.Gerber@tq-group.com > > > > > > > The i.MX 8MP has a ADC_PD bit in the TMU_TER register that controls > > the > > operating mode of the ADC: > > * 0 means normal operating mode > > * 1 means power down mode > > > > When enabling/disabling the TMU, the ADC operating mode must be set > > accordingly. > > > > i.MX 8M Mini & Nano are lacking this bit. > > > > Signed-off-by: Paul Gerber < > > Paul.Gerber@tq-group.com > > > > > Signed-off-by: Alexander Stein < > > alexander.stein@ew.tq-group.com > > > > > --- > > Often this bit is set already by the bootloader, but in case this > > is not > > done, the file /sys/class/thermal/thermal_zone0/temp will always > > return > > -EAGAIN. > > Does it deserve a Fixes tag? The more I think about it, the more I'm inclined to add one. Please tell me if I shall iterate v2 adding a Fixes tag (or other changes) Best regards, Alexander
On 01/12/2021 15:45, Alexander Stein wrote: > Am Dienstag, dem 30.11.2021 um 15:49 +0100 schrieb Daniel Lezcano: >> On 22/11/2021 12:42, Alexander Stein wrote: >>> From: Paul Gerber < >>> Paul.Gerber@tq-group.com >>>> >>> >>> The i.MX 8MP has a ADC_PD bit in the TMU_TER register that controls >>> the >>> operating mode of the ADC: >>> * 0 means normal operating mode >>> * 1 means power down mode >>> >>> When enabling/disabling the TMU, the ADC operating mode must be set >>> accordingly. >>> >>> i.MX 8M Mini & Nano are lacking this bit. >>> >>> Signed-off-by: Paul Gerber < >>> Paul.Gerber@tq-group.com >>>> >>> Signed-off-by: Alexander Stein < >>> alexander.stein@ew.tq-group.com >>>> >>> --- >>> Often this bit is set already by the bootloader, but in case this >>> is not >>> done, the file /sys/class/thermal/thermal_zone0/temp will always >>> return >>> -EAGAIN. >> >> Does it deserve a Fixes tag? > > The more I think about it, the more I'm inclined to add one. > Please tell me if I shall iterate v2 adding a Fixes tag (or other > changes) It is not necessary to send a V2 as the commit log will have a link to this thread. Just answer with the Fixes tag, I'll add it myself to the change log.
Am Mittwoch, dem 01.12.2021 um 15:52 +0100 schrieb Daniel Lezcano: > On 01/12/2021 15:45, Alexander Stein wrote: > > Am Dienstag, dem 30.11.2021 um 15:49 +0100 schrieb Daniel Lezcano: > > > On 22/11/2021 12:42, Alexander Stein wrote: > > > > From: Paul Gerber < > > > > Paul.Gerber@tq-group.com > > > > > > > > > > > > The i.MX 8MP has a ADC_PD bit in the TMU_TER register that > > > > controls > > > > the > > > > operating mode of the ADC: > > > > * 0 means normal operating mode > > > > * 1 means power down mode > > > > > > > > When enabling/disabling the TMU, the ADC operating mode must be > > > > set > > > > accordingly. > > > > > > > > i.MX 8M Mini & Nano are lacking this bit. > > > > > > > > Signed-off-by: Paul Gerber < > > > > Paul.Gerber@tq-group.com > > > > > > > > > > > > Signed-off-by: Alexander Stein < > > > > alexander.stein@ew.tq-group.com > > > > > > > > > > > > --- > > > > Often this bit is set already by the bootloader, but in case > > > > this > > > > is not > > > > done, the file /sys/class/thermal/thermal_zone0/temp will > > > > always > > > > return > > > > -EAGAIN. > > > > > > Does it deserve a Fixes tag? > > > > The more I think about it, the more I'm inclined to add one. > > Please tell me if I shall iterate v2 adding a Fixes tag (or other > > changes) > > It is not necessary to send a V2 as the commit log will have a link > to > this thread. Just answer with the Fixes tag, I'll add it myself to > the > change log. Thanks. Fixes: 2b8f1f0337c5 ("thermal: imx8mm: Add i.MX8MP support") imx8mm_tmu_enable() was introduced in this commit and the fix is about i.MX8MP as well, so this seems even more reasonable to me. Best regards, Alexander
diff --git a/drivers/thermal/imx8mm_thermal.c b/drivers/thermal/imx8mm_thermal.c index 7442e013738f..af666bd9e8d4 100644 --- a/drivers/thermal/imx8mm_thermal.c +++ b/drivers/thermal/imx8mm_thermal.c @@ -21,6 +21,7 @@ #define TPS 0x4 #define TRITSR 0x20 /* TMU immediate temp */ +#define TER_ADC_PD BIT(30) #define TER_EN BIT(31) #define TRITSR_TEMP0_VAL_MASK 0xff #define TRITSR_TEMP1_VAL_MASK 0xff0000 @@ -113,6 +114,8 @@ static void imx8mm_tmu_enable(struct imx8mm_tmu *tmu, bool enable) val = readl_relaxed(tmu->base + TER); val = enable ? (val | TER_EN) : (val & ~TER_EN); + if (tmu->socdata->version == TMU_VER2) + val = enable ? (val & ~TER_ADC_PD) : (val | TER_ADC_PD); writel_relaxed(val, tmu->base + TER); }