lkml.org 
[lkml]   [2018]   [Aug]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v1 06/10] thermal: tsens: Add the SROT address map
    Date
    On platforms whose device trees specify two address spaces for TSENS, the
    second one points to the SROT registers. Initialise the SROT map on those
    platforms.

    Signed-off-by: Amit Kucheria <amit.kucheria@linaro.org>
    ---
    drivers/thermal/qcom/tsens-common.c | 14 ++++++++++++--
    drivers/thermal/qcom/tsens.h | 1 +
    2 files changed, 13 insertions(+), 2 deletions(-)

    diff --git a/drivers/thermal/qcom/tsens-common.c b/drivers/thermal/qcom/tsens-common.c
    index 0585084630b3..0b8a793f15f4 100644
    --- a/drivers/thermal/qcom/tsens-common.c
    +++ b/drivers/thermal/qcom/tsens-common.c
    @@ -117,16 +117,26 @@ static const struct regmap_config tsens_config = {

    int __init init_common(struct tsens_device *tmdev)
    {
    - void __iomem *tm_base;
    + void __iomem *tm_base, *srot_base;
    struct resource *res;
    struct platform_device *op = of_find_device_by_node(tmdev->dev->of_node);

    if (!op)
    return -EINVAL;

    - /* The driver only uses the TM register address space for now */
    if (op->num_resources > 1) {
    + /* DT with separate SROT and TM address space */
    tmdev->tm_offset = 0;
    + res = platform_get_resource(op, IORESOURCE_MEM, 1);
    + srot_base = devm_ioremap_resource(&op->dev, res);
    + if (IS_ERR(srot_base))
    + return PTR_ERR(srot_base);
    +
    + tmdev->srot_map = devm_regmap_init_mmio(tmdev->dev,
    + srot_base, &tsens_config);
    + if (IS_ERR(tmdev->srot_map))
    + return PTR_ERR(tmdev->srot_map);
    +
    } else {
    /* old DTs where SROT and TM were in a contiguous 2K block */
    tmdev->tm_offset = 0x1000;
    diff --git a/drivers/thermal/qcom/tsens.h b/drivers/thermal/qcom/tsens.h
    index 58e98c4d3a8b..b9c4bcf255fa 100644
    --- a/drivers/thermal/qcom/tsens.h
    +++ b/drivers/thermal/qcom/tsens.h
    @@ -70,6 +70,7 @@ struct tsens_device {
    struct device *dev;
    u32 num_sensors;
    struct regmap *tm_map;
    + struct regmap *srot_map;
    u32 tm_offset;
    struct tsens_context ctx;
    const struct tsens_ops *ops;
    --
    2.17.1
    \
     
     \ /
      Last update: 2018-08-09 14:34    [W:2.426 / U:0.008 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site