Commit 67b0f5e0 authored by Amit Kucheria's avatar Amit Kucheria Committed by Eduardo Valentin

thermal: tsens: Rename map field in order to add a second address map

The TSENS driver currently only uses a limited set of registers from the TM
address space. So it was ok to map just that set of registers and call it
"map".

We'd now like to map a second set: SROT registers to introduce new
functionality. Rename the "map" field to a more appropriate "tm_map".

The 8960 doesn't have a clear split between TM and SROT registers. To avoid
complicating the data structure, it will switchover to using tm_map for its
maps.

There is no functional change with this patch.
Signed-off-by: default avatarAmit Kucheria <amit.kucheria@linaro.org>
Reviewed-by: default avatarMatthias Kaehlcke <mka@chromium.org>
Reviewed-by: default avatarBjorn Andersson <bjorn.andersson@linaro.org>
Signed-off-by: default avatarEduardo Valentin <edubezval@gmail.com>
parent caac52bc
...@@ -60,7 +60,7 @@ static int suspend_8960(struct tsens_device *tmdev) ...@@ -60,7 +60,7 @@ static int suspend_8960(struct tsens_device *tmdev)
{ {
int ret; int ret;
unsigned int mask; unsigned int mask;
struct regmap *map = tmdev->map; struct regmap *map = tmdev->tm_map;
ret = regmap_read(map, THRESHOLD_ADDR, &tmdev->ctx.threshold); ret = regmap_read(map, THRESHOLD_ADDR, &tmdev->ctx.threshold);
if (ret) if (ret)
...@@ -85,7 +85,7 @@ static int suspend_8960(struct tsens_device *tmdev) ...@@ -85,7 +85,7 @@ static int suspend_8960(struct tsens_device *tmdev)
static int resume_8960(struct tsens_device *tmdev) static int resume_8960(struct tsens_device *tmdev)
{ {
int ret; int ret;
struct regmap *map = tmdev->map; struct regmap *map = tmdev->tm_map;
ret = regmap_update_bits(map, CNTL_ADDR, SW_RST, SW_RST); ret = regmap_update_bits(map, CNTL_ADDR, SW_RST, SW_RST);
if (ret) if (ret)
...@@ -117,12 +117,12 @@ static int enable_8960(struct tsens_device *tmdev, int id) ...@@ -117,12 +117,12 @@ static int enable_8960(struct tsens_device *tmdev, int id)
int ret; int ret;
u32 reg, mask; u32 reg, mask;
ret = regmap_read(tmdev->map, CNTL_ADDR, &reg); ret = regmap_read(tmdev->tm_map, CNTL_ADDR, &reg);
if (ret) if (ret)
return ret; return ret;
mask = BIT(id + SENSOR0_SHIFT); mask = BIT(id + SENSOR0_SHIFT);
ret = regmap_write(tmdev->map, CNTL_ADDR, reg | SW_RST); ret = regmap_write(tmdev->tm_map, CNTL_ADDR, reg | SW_RST);
if (ret) if (ret)
return ret; return ret;
...@@ -131,7 +131,7 @@ static int enable_8960(struct tsens_device *tmdev, int id) ...@@ -131,7 +131,7 @@ static int enable_8960(struct tsens_device *tmdev, int id)
else else
reg |= mask | SLP_CLK_ENA_8660 | EN; reg |= mask | SLP_CLK_ENA_8660 | EN;
ret = regmap_write(tmdev->map, CNTL_ADDR, reg); ret = regmap_write(tmdev->tm_map, CNTL_ADDR, reg);
if (ret) if (ret)
return ret; return ret;
...@@ -148,7 +148,7 @@ static void disable_8960(struct tsens_device *tmdev) ...@@ -148,7 +148,7 @@ static void disable_8960(struct tsens_device *tmdev)
mask <<= SENSOR0_SHIFT; mask <<= SENSOR0_SHIFT;
mask |= EN; mask |= EN;
ret = regmap_read(tmdev->map, CNTL_ADDR, &reg_cntl); ret = regmap_read(tmdev->tm_map, CNTL_ADDR, &reg_cntl);
if (ret) if (ret)
return; return;
...@@ -159,7 +159,7 @@ static void disable_8960(struct tsens_device *tmdev) ...@@ -159,7 +159,7 @@ static void disable_8960(struct tsens_device *tmdev)
else else
reg_cntl &= ~SLP_CLK_ENA_8660; reg_cntl &= ~SLP_CLK_ENA_8660;
regmap_write(tmdev->map, CNTL_ADDR, reg_cntl); regmap_write(tmdev->tm_map, CNTL_ADDR, reg_cntl);
} }
static int init_8960(struct tsens_device *tmdev) static int init_8960(struct tsens_device *tmdev)
...@@ -167,8 +167,8 @@ static int init_8960(struct tsens_device *tmdev) ...@@ -167,8 +167,8 @@ static int init_8960(struct tsens_device *tmdev)
int ret, i; int ret, i;
u32 reg_cntl; u32 reg_cntl;
tmdev->map = dev_get_regmap(tmdev->dev, NULL); tmdev->tm_map = dev_get_regmap(tmdev->dev, NULL);
if (!tmdev->map) if (!tmdev->tm_map)
return -ENODEV; return -ENODEV;
/* /*
...@@ -184,14 +184,14 @@ static int init_8960(struct tsens_device *tmdev) ...@@ -184,14 +184,14 @@ static int init_8960(struct tsens_device *tmdev)
} }
reg_cntl = SW_RST; reg_cntl = SW_RST;
ret = regmap_update_bits(tmdev->map, CNTL_ADDR, SW_RST, reg_cntl); ret = regmap_update_bits(tmdev->tm_map, CNTL_ADDR, SW_RST, reg_cntl);
if (ret) if (ret)
return ret; return ret;
if (tmdev->num_sensors > 1) { if (tmdev->num_sensors > 1) {
reg_cntl |= SLP_CLK_ENA | (MEASURE_PERIOD << 18); reg_cntl |= SLP_CLK_ENA | (MEASURE_PERIOD << 18);
reg_cntl &= ~SW_RST; reg_cntl &= ~SW_RST;
ret = regmap_update_bits(tmdev->map, CONFIG_ADDR, ret = regmap_update_bits(tmdev->tm_map, CONFIG_ADDR,
CONFIG_MASK, CONFIG); CONFIG_MASK, CONFIG);
} else { } else {
reg_cntl |= SLP_CLK_ENA_8660 | (MEASURE_PERIOD << 16); reg_cntl |= SLP_CLK_ENA_8660 | (MEASURE_PERIOD << 16);
...@@ -200,12 +200,12 @@ static int init_8960(struct tsens_device *tmdev) ...@@ -200,12 +200,12 @@ static int init_8960(struct tsens_device *tmdev)
} }
reg_cntl |= GENMASK(tmdev->num_sensors - 1, 0) << SENSOR0_SHIFT; reg_cntl |= GENMASK(tmdev->num_sensors - 1, 0) << SENSOR0_SHIFT;
ret = regmap_write(tmdev->map, CNTL_ADDR, reg_cntl); ret = regmap_write(tmdev->tm_map, CNTL_ADDR, reg_cntl);
if (ret) if (ret)
return ret; return ret;
reg_cntl |= EN; reg_cntl |= EN;
ret = regmap_write(tmdev->map, CNTL_ADDR, reg_cntl); ret = regmap_write(tmdev->tm_map, CNTL_ADDR, reg_cntl);
if (ret) if (ret)
return ret; return ret;
...@@ -252,12 +252,12 @@ static int get_temp_8960(struct tsens_device *tmdev, int id, int *temp) ...@@ -252,12 +252,12 @@ static int get_temp_8960(struct tsens_device *tmdev, int id, int *temp)
timeout = jiffies + usecs_to_jiffies(TIMEOUT_US); timeout = jiffies + usecs_to_jiffies(TIMEOUT_US);
do { do {
ret = regmap_read(tmdev->map, INT_STATUS_ADDR, &trdy); ret = regmap_read(tmdev->tm_map, INT_STATUS_ADDR, &trdy);
if (ret) if (ret)
return ret; return ret;
if (!(trdy & TRDY_MASK)) if (!(trdy & TRDY_MASK))
continue; continue;
ret = regmap_read(tmdev->map, s->status, &code); ret = regmap_read(tmdev->tm_map, s->status, &code);
if (ret) if (ret)
return ret; return ret;
*temp = code_to_mdegC(code, s); *temp = code_to_mdegC(code, s);
......
...@@ -99,8 +99,7 @@ int get_temp_common(struct tsens_device *tmdev, int id, int *temp) ...@@ -99,8 +99,7 @@ int get_temp_common(struct tsens_device *tmdev, int id, int *temp)
int last_temp = 0, ret; int last_temp = 0, ret;
status_reg = tmdev->tm_offset + STATUS_OFFSET + s->hw_id * SN_ADDR_OFFSET; status_reg = tmdev->tm_offset + STATUS_OFFSET + s->hw_id * SN_ADDR_OFFSET;
ret = regmap_read(tmdev->map, status_reg, &code); ret = regmap_read(tmdev->tm_map, status_reg, &code);
if (ret) if (ret)
return ret; return ret;
last_temp = code & SN_ST_TEMP_MASK; last_temp = code & SN_ST_TEMP_MASK;
...@@ -118,7 +117,7 @@ static const struct regmap_config tsens_config = { ...@@ -118,7 +117,7 @@ static const struct regmap_config tsens_config = {
int __init init_common(struct tsens_device *tmdev) int __init init_common(struct tsens_device *tmdev)
{ {
void __iomem *base; void __iomem *tm_base;
struct resource *res; struct resource *res;
struct platform_device *op = of_find_device_by_node(tmdev->dev->of_node); struct platform_device *op = of_find_device_by_node(tmdev->dev->of_node);
...@@ -134,13 +133,13 @@ int __init init_common(struct tsens_device *tmdev) ...@@ -134,13 +133,13 @@ int __init init_common(struct tsens_device *tmdev)
} }
res = platform_get_resource(op, IORESOURCE_MEM, 0); res = platform_get_resource(op, IORESOURCE_MEM, 0);
base = devm_ioremap_resource(&op->dev, res); tm_base = devm_ioremap_resource(&op->dev, res);
if (IS_ERR(base)) if (IS_ERR(tm_base))
return PTR_ERR(base); return PTR_ERR(tm_base);
tmdev->map = devm_regmap_init_mmio(tmdev->dev, base, &tsens_config); tmdev->tm_map = devm_regmap_init_mmio(tmdev->dev, tm_base, &tsens_config);
if (IS_ERR(tmdev->map)) if (IS_ERR(tmdev->tm_map))
return PTR_ERR(tmdev->map); return PTR_ERR(tmdev->tm_map);
return 0; return 0;
} }
...@@ -21,7 +21,7 @@ static int get_temp_tsens_v2(struct tsens_device *tmdev, int id, int *temp) ...@@ -21,7 +21,7 @@ static int get_temp_tsens_v2(struct tsens_device *tmdev, int id, int *temp)
int ret; int ret;
status_reg = tmdev->tm_offset + STATUS_OFFSET + s->hw_id * 4; status_reg = tmdev->tm_offset + STATUS_OFFSET + s->hw_id * 4;
ret = regmap_read(tmdev->map, status_reg, &code); ret = regmap_read(tmdev->tm_map, status_reg, &code);
if (ret) if (ret)
return ret; return ret;
last_temp = code & LAST_TEMP_MASK; last_temp = code & LAST_TEMP_MASK;
...@@ -29,7 +29,7 @@ static int get_temp_tsens_v2(struct tsens_device *tmdev, int id, int *temp) ...@@ -29,7 +29,7 @@ static int get_temp_tsens_v2(struct tsens_device *tmdev, int id, int *temp)
goto done; goto done;
/* Try a second time */ /* Try a second time */
ret = regmap_read(tmdev->map, status_reg, &code); ret = regmap_read(tmdev->tm_map, status_reg, &code);
if (ret) if (ret)
return ret; return ret;
if (code & STATUS_VALID_BIT) { if (code & STATUS_VALID_BIT) {
...@@ -40,7 +40,7 @@ static int get_temp_tsens_v2(struct tsens_device *tmdev, int id, int *temp) ...@@ -40,7 +40,7 @@ static int get_temp_tsens_v2(struct tsens_device *tmdev, int id, int *temp)
} }
/* Try a third/last time */ /* Try a third/last time */
ret = regmap_read(tmdev->map, status_reg, &code); ret = regmap_read(tmdev->tm_map, status_reg, &code);
if (ret) if (ret)
return ret; return ret;
if (code & STATUS_VALID_BIT) { if (code & STATUS_VALID_BIT) {
......
...@@ -69,7 +69,7 @@ struct tsens_context { ...@@ -69,7 +69,7 @@ struct tsens_context {
struct tsens_device { struct tsens_device {
struct device *dev; struct device *dev;
u32 num_sensors; u32 num_sensors;
struct regmap *map; struct regmap *tm_map;
u32 tm_offset; u32 tm_offset;
struct tsens_context ctx; struct tsens_context ctx;
const struct tsens_ops *ops; const struct tsens_ops *ops;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment