[PATCH v11 1/5] thermal: rockchip: add driver for thermal

Dmitry Torokhov dmitry.torokhov at gmail.com
Thu Oct 16 15:06:11 PDT 2014


Hi Caesar,

On Thu, Oct 16, 2014 at 09:31:37PM +0800, Caesar Wang wrote:
> +
> +struct rockchip_tsadc_platform_data {
> +	unsigned long temp_passive;
> +	unsigned long hw_shut_temp;
> +	int reset_mode;
> +
> +	void (*irq_handle)(void __iomem *reg);
> +	void (*initialize)(int reset_mode, int chn, void __iomem *reg,
> +			   unsigned long hw_shut_temp);
> +	int (*control)(void __iomem *reg, bool on, int chn);
> +	int (*code_to_temp)(u32 code);
> +	u32 (*temp_to_code)(int temp);
> +	void (*set_alarm_temp)(int chn, void __iomem *reg,
> +			       unsigned long alarm_temp);
> +};

Any time I see platform data and pdata I think about board-specific
parameters that come either from board initialization code, device tree
or ACPI, rather than chipset specific data. Do you think we could rename
rockchip_tsadc_platform_data  to rockchip_tsadc_chip? If you agree
please fold the patch below into your next revision.

More to come...

Thanks.

-- 
Dmitry

rockchip-thermal - rename rockchip_tsadc_platform_data

Signed-off-by: Dmitry Torokhov <dtor at chromium.org>
---
 drivers/thermal/rockchip_thermal.c | 66 ++++++++++++++++++++------------------
 1 file changed, 35 insertions(+), 31 deletions(-)

diff --git a/drivers/thermal/rockchip_thermal.c b/drivers/thermal/rockchip_thermal.c
index 4ecc649..6d7472b 100644
--- a/drivers/thermal/rockchip_thermal.c
+++ b/drivers/thermal/rockchip_thermal.c
@@ -44,8 +44,24 @@ enum sensor_id {
 	SENSOR_ID_END,
 };
 
+struct rockchip_tsadc_chip {
+	unsigned long temp_passive;
+	unsigned long hw_shut_temp;
+	enum reset_mode reset_mode;
+
+	void (*irq_handle)(void __iomem *reg);
+	void (*initialize)(enum reset_mode reset_mode, int chn,
+			   void __iomem *reg,
+			   unsigned long hw_shut_temp);
+	int (*control)(void __iomem *reg, bool on, int chn);
+	int (*code_to_temp)(u32 code);
+	u32 (*temp_to_code)(int temp);
+	void (*set_alarm_temp)(int chn, void __iomem *reg,
+			       unsigned long alarm_temp);
+};
+
 struct rockchip_thermal_data {
-	const struct rockchip_tsadc_platform_data *pdata;
+	const struct rockchip_tsadc_chip *chip;
 	struct thermal_zone_device *tz[SENSOR_ID_END];
 	struct thermal_cooling_device *cdev;
 	void __iomem *regs;
@@ -62,21 +78,6 @@ struct rockchip_thermal_data {
 	struct clk *pclk;
 };
 
-struct rockchip_tsadc_platform_data {
-	unsigned long temp_passive;
-	unsigned long hw_shut_temp;
-	int reset_mode;
-
-	void (*irq_handle)(void __iomem *reg);
-	void (*initialize)(int reset_mode, int chn, void __iomem *reg,
-			   unsigned long hw_shut_temp);
-	int (*control)(void __iomem *reg, bool on, int chn);
-	int (*code_to_temp)(u32 code);
-	u32 (*temp_to_code)(int temp);
-	void (*set_alarm_temp)(int chn, void __iomem *reg,
-			       unsigned long alarm_temp);
-};
-
 /* TSADC V2 Sensor info define: */
 #define TSADCV2_AUTO_CON			0x04
 #define TSADCV2_INT_EN				0x08
@@ -234,7 +235,8 @@ static bool rk_tsadcv2_get_tshut_polarity_high(void __iomem *regs)
  * the channel, and you can set TSHUT output to gpio to reset the whole chip,
  * and you can set TSHUT output to cru to reset the whole chip.
  */
-static void rk_tsadcv2_initialize(int reset_mode, int chn, void __iomem *regs,
+static void rk_tsadcv2_initialize(enum reset_mode reset_mode, int chn,
+				  void __iomem *regs,
 				  unsigned long hw_shut_temp)
 {
 	u32 shutdown_value;
@@ -279,7 +281,7 @@ static void rk_tsadcv2_alarm_temp(int chn, void __iomem *regs,
 		       TSADCV2_COMP_INT(chn));
 }
 
-static const struct rockchip_tsadc_platform_data rk3288_tsadc_data = {
+static const struct rockchip_tsadc_chip rk3288_tsadc_data = {
 	.reset_mode = GPIO, /* default TSHUT via GPIO give PMIC */
 	.temp_passive = 80000,
 	.hw_shut_temp = 120000,
@@ -303,7 +305,7 @@ MODULE_DEVICE_TABLE(of, of_rockchip_thermal_match);
 static void rockchip_set_alarm_temp(struct rockchip_thermal_data *data,
 				    int alarm_temp, int chn)
 {
-	const struct rockchip_tsadc_platform_data *tsadc = data->pdata;
+	const struct rockchip_tsadc_chip *tsadc = data->chip;
 
 	data->alarm_temp = alarm_temp;
 
@@ -352,7 +354,7 @@ static void rockchip_thermal_initialize(struct rockchip_thermal_data *data)
 static void rockchip_thermal_control(struct rockchip_thermal_data *data,
 				     bool on, int chn)
 {
-	const struct rockchip_tsadc_platform_data *tsadc = data->pdata;
+	const struct rockchip_tsadc_chip *tsadc = data->chip;
 
 	if (tsadc->control)
 		tsadc->control(data->regs, on, chn);
@@ -372,7 +374,7 @@ static void rockchip_thermal_control(struct rockchip_thermal_data *data,
 static irqreturn_t rockchip_thermal_alarm_irq_thread(int irq, void *dev)
 {
 	struct rockchip_thermal_data *data = dev;
-	const struct rockchip_tsadc_platform_data *tsadc = data->pdata;
+	const struct rockchip_tsadc_chip *tsadc = data->chip;
 	int chn;
 
 	tsadc->irq_handle(data->regs);
@@ -386,7 +388,7 @@ static irqreturn_t rockchip_thermal_alarm_irq_thread(int irq, void *dev)
 static int rockchip_thermal_set_trips(void *zone, long low, long high)
 {
 	struct rockchip_thermal_data *data = zone;
-	const struct rockchip_tsadc_platform_data *tsadc = data->pdata;
+	const struct rockchip_tsadc_chip *tsadc = data->chip;
 
 	low = clamp_val(low, LONG_MIN, LONG_MAX);
 	high = clamp_val(high, LONG_MIN, LONG_MAX);
@@ -407,7 +409,7 @@ static int rockchip_thermal_set_trips(void *zone, long low, long high)
 static int rockchip_thermal_get_cpu_temp(void *zone, long *out_temp)
 {
 	struct rockchip_thermal_data *data = zone;
-	const struct rockchip_tsadc_platform_data *tsadc = data->pdata;
+	const struct rockchip_tsadc_chip *tsadc = data->chip;
 	u32 val;
 
 	/* the A/D value of the channel last conversion need some time */
@@ -423,7 +425,7 @@ static int rockchip_thermal_get_cpu_temp(void *zone, long *out_temp)
 static int rockchip_thermal_get_gpu_temp(void *zone, long *out_temp)
 {
 	struct rockchip_thermal_data *data = zone;
-	const struct rockchip_tsadc_platform_data *tsadc = data->pdata;
+	const struct rockchip_tsadc_chip *tsadc = data->chip;
 	u32 val;
 
 	/* the A/D value of the channel last conversion need some time */
@@ -444,19 +446,19 @@ static int rockchip_configure_from_dt(struct device *dev,
 
 	if (of_property_read_u32(np, "hw-shut-temp", &shut_temp)) {
 		dev_warn(dev, "Missing default shutdown temp property\n");
-		data->hw_shut_temp = data->pdata->hw_shut_temp;
+		data->hw_shut_temp = data->chip->hw_shut_temp;
 	} else {
 		data->hw_shut_temp = shut_temp;
 	}
 
 	if (of_property_read_u32(np, "tsadc-ht-reset-mode", &reset_mode)) {
 		dev_warn(dev, "Missing default reset mode property\n");
-		data->reset_mode = data->pdata->reset_mode;
+		data->reset_mode = data->chip->reset_mode;
 	} else {
 		data->reset_mode = reset_mode;
 	}
 
-	data->temp_passive = data->pdata->temp_passive;
+	data->temp_passive = data->chip->temp_passive;
 
 	return 0;
 }
@@ -464,7 +466,7 @@ static int rockchip_configure_from_dt(struct device *dev,
 static int rockchip_thermal_probe(struct platform_device *pdev)
 {
 	struct rockchip_thermal_data *data;
-	const struct rockchip_tsadc_platform_data *tsadc;
+	const struct rockchip_tsadc_chip *tsadc;
 	const struct of_device_id *match;
 
 	struct cpumask clip_cpus;
@@ -489,10 +491,12 @@ static int rockchip_thermal_probe(struct platform_device *pdev)
 	match = of_match_node(of_rockchip_thermal_match, np);
 	if (!match)
 		return -ENXIO;
-	data->pdata = (const struct rockchip_tsadc_platform_data *)match->data;
-	if (!data->pdata)
+
+	tsadc = (const struct rockchip_tsadc_chip *)match->data;
+	if (!tsadc)
 		return -EINVAL;
-	tsadc = data->pdata;
+
+	data->chip = tsadc;
 
 	data->clk = devm_clk_get(&pdev->dev, "tsadc");
 	if (IS_ERR(data->clk)) {
-- 
1.8.3.2




More information about the linux-arm-kernel mailing list