Commit 04bf3d7e authored by Ezequiel Garcia's avatar Ezequiel Garcia Committed by Zhang Rui

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: default avatarJason Cooper <jason@lakedaemon.net>
Signed-off-by: default avatarEzequiel Garcia <ezequiel.garcia@free-electrons.com>
Signed-off-by: default avatarZhang Rui <rui.zhang@intel.com>
parent 1fcacca4
...@@ -46,7 +46,8 @@ struct armada_thermal_priv { ...@@ -46,7 +46,8 @@ struct armada_thermal_priv {
struct armada_thermal_data { struct armada_thermal_data {
/* Initialize the sensor */ /* 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) */ /* Test for a valid sensor value (optional) */
bool (*is_valid)(struct armada_thermal_priv *); bool (*is_valid)(struct armada_thermal_priv *);
...@@ -62,7 +63,8 @@ struct armada_thermal_data { ...@@ -62,7 +63,8 @@ struct armada_thermal_data {
unsigned int is_valid_shift; 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; unsigned long reg;
...@@ -87,7 +89,8 @@ static void armadaxp_init_sensor(struct armada_thermal_priv *priv) ...@@ -87,7 +89,8 @@ static void armadaxp_init_sensor(struct armada_thermal_priv *priv)
writel(reg, priv->sensor); 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; unsigned long reg;
...@@ -204,7 +207,7 @@ static int armada_thermal_probe(struct platform_device *pdev) ...@@ -204,7 +207,7 @@ static int armada_thermal_probe(struct platform_device *pdev)
return PTR_ERR(priv->control); return PTR_ERR(priv->control);
priv->data = (struct armada_thermal_data *)match->data; 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, thermal = thermal_zone_device_register("armada_thermal", 0, 0,
priv, &ops, NULL, 0, 0); priv, &ops, NULL, 0, 0);
......
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