summaryrefslogtreecommitdiffstats
path: root/drivers/thermal/armada_thermal.c
diff options
context:
space:
mode:
authorEzequiel Garcia <ezequiel.garcia@free-electrons.com>2014-05-06 18:59:48 +0200
committerZhang Rui <rui.zhang@intel.com>2014-05-15 11:12:47 +0200
commit04bf3d7e5ba862214f1c761778c414be95e2dfb9 (patch)
tree39bc4096c4c00b41c819a6c126af579aab488832 /drivers/thermal/armada_thermal.c
parentthermal: armada: Add generic infrastructure to handle the sensor (diff)
downloadlinux-04bf3d7e5ba862214f1c761778c414be95e2dfb9.tar.xz
linux-04bf3d7e5ba862214f1c761778c414be95e2dfb9.zip
thermal: armada: Pass the platform_device to init_sensor()
In order to perform SoC-specific quirks on platforms that need them, this commit adds a new parameter to the init_sensor() function. This will be used to support early silicons of the Armada 375 SoC, to workaround some hardware issues. Acked-by: Jason Cooper <jason@lakedaemon.net> Signed-off-by: Ezequiel Garcia <ezequiel.garcia@free-electrons.com> Signed-off-by: Zhang Rui <rui.zhang@intel.com>
Diffstat (limited to 'drivers/thermal/armada_thermal.c')
-rw-r--r--drivers/thermal/armada_thermal.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/drivers/thermal/armada_thermal.c b/drivers/thermal/armada_thermal.c
index 2fecccf71e9a..6fd648337e63 100644
--- a/drivers/thermal/armada_thermal.c
+++ b/drivers/thermal/armada_thermal.c
@@ -46,7 +46,8 @@ struct armada_thermal_priv {
struct armada_thermal_data {
/* Initialize the sensor */
- void (*init_sensor)(struct armada_thermal_priv *);
+ void (*init_sensor)(struct platform_device *pdev,
+ struct armada_thermal_priv *);
/* Test for a valid sensor value (optional) */
bool (*is_valid)(struct armada_thermal_priv *);
@@ -62,7 +63,8 @@ struct armada_thermal_data {
unsigned int is_valid_shift;
};
-static void armadaxp_init_sensor(struct armada_thermal_priv *priv)
+static void armadaxp_init_sensor(struct platform_device *pdev,
+ struct armada_thermal_priv *priv)
{
unsigned long reg;
@@ -87,7 +89,8 @@ static void armadaxp_init_sensor(struct armada_thermal_priv *priv)
writel(reg, priv->sensor);
}
-static void armada370_init_sensor(struct armada_thermal_priv *priv)
+static void armada370_init_sensor(struct platform_device *pdev,
+ struct armada_thermal_priv *priv)
{
unsigned long reg;
@@ -204,7 +207,7 @@ static int armada_thermal_probe(struct platform_device *pdev)
return PTR_ERR(priv->control);
priv->data = (struct armada_thermal_data *)match->data;
- priv->data->init_sensor(priv);
+ priv->data->init_sensor(pdev, priv);
thermal = thermal_zone_device_register("armada_thermal", 0, 0,
priv, &ops, NULL, 0, 0);