ti-soc-thermal: implement eocz bit to make driver useful on omap3
For omap3, proper implementation of eocz bit is needed. It was actually a TODO in the driver. Signed-off-by: Pavel Machek <pavel@ucw.cz> Signed-off-by: Eduardo Valentin <edubezval@gmail.com>
This commit is contained in:
parent
e34238bf98
commit
a4296d19b5
@ -894,7 +894,8 @@ void *ti_bandgap_get_sensor_data(struct ti_bandgap *bgp, int id)
|
|||||||
static int
|
static int
|
||||||
ti_bandgap_force_single_read(struct ti_bandgap *bgp, int id)
|
ti_bandgap_force_single_read(struct ti_bandgap *bgp, int id)
|
||||||
{
|
{
|
||||||
u32 temp = 0, counter = 1000;
|
u32 counter = 1000;
|
||||||
|
struct temp_sensor_registers *tsr;
|
||||||
|
|
||||||
/* Select single conversion mode */
|
/* Select single conversion mode */
|
||||||
if (TI_BANDGAP_HAS(bgp, MODE_CONFIG))
|
if (TI_BANDGAP_HAS(bgp, MODE_CONFIG))
|
||||||
@ -902,16 +903,27 @@ ti_bandgap_force_single_read(struct ti_bandgap *bgp, int id)
|
|||||||
|
|
||||||
/* Start of Conversion = 1 */
|
/* Start of Conversion = 1 */
|
||||||
RMW_BITS(bgp, id, temp_sensor_ctrl, bgap_soc_mask, 1);
|
RMW_BITS(bgp, id, temp_sensor_ctrl, bgap_soc_mask, 1);
|
||||||
/* Wait until DTEMP is updated */
|
|
||||||
temp = ti_bandgap_read_temp(bgp, id);
|
|
||||||
|
|
||||||
while ((temp == 0) && --counter)
|
/* Wait for EOCZ going up */
|
||||||
temp = ti_bandgap_read_temp(bgp, id);
|
tsr = bgp->conf->sensors[id].registers;
|
||||||
/* REVISIT: Check correct condition for end of conversion */
|
|
||||||
|
while (--counter) {
|
||||||
|
if (ti_bandgap_readl(bgp, tsr->temp_sensor_ctrl) &
|
||||||
|
tsr->bgap_eocz_mask)
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
/* Start of Conversion = 0 */
|
/* Start of Conversion = 0 */
|
||||||
RMW_BITS(bgp, id, temp_sensor_ctrl, bgap_soc_mask, 0);
|
RMW_BITS(bgp, id, temp_sensor_ctrl, bgap_soc_mask, 0);
|
||||||
|
|
||||||
|
/* Wait for EOCZ going down */
|
||||||
|
counter = 1000;
|
||||||
|
while (--counter) {
|
||||||
|
if (!(ti_bandgap_readl(bgp, tsr->temp_sensor_ctrl) &
|
||||||
|
tsr->bgap_eocz_mask))
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user