Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a0678da8 authored by Kevin Wangtao's avatar Kevin Wangtao Committed by Eduardo Valentin
Browse files

thermal/drivers/hisi: Put platform code together



Reorganize the code for next patches by moving the functions upper in
the file which will prevent a forward declaration. There is no functional
change here.

Signed-off-by: default avatarKevin Wangtao <kevin.wangtao@linaro.org>
Tested-by: Daniel Lezcano <daniel.lezcano@linaro.org> # hikey6220
Signed-off-by: default avatarDaniel Lezcano <daniel.lezcano@linaro.org>
Signed-off-by: default avatarEduardo Valentin <edubezval@gmail.com>
parent 7a4ca51b
Loading
Loading
Loading
Loading
+38 −38
Original line number Diff line number Diff line
@@ -201,6 +201,44 @@ static void hisi_thermal_disable_sensor(struct hisi_thermal_data *data)
	clk_disable_unprepare(data->clk);
}

static int hisi_thermal_setup(struct hisi_thermal_data *data)
{
	struct hisi_thermal_sensor *sensor = &data->sensor;
	int ret;

	/* enable clock for tsensor */
	ret = clk_prepare_enable(data->clk);
	if (ret)
		return ret;

	/* disable module firstly */
	hisi_thermal_reset_enable(data->regs, 0);
	hisi_thermal_enable(data->regs, 0);

	/* select sensor id */
	hisi_thermal_sensor_select(data->regs, sensor->id);

	/* setting the hdak time */
	hisi_thermal_hdak_set(data->regs, 0);

	/* setting lag value between current temp and the threshold */
	hisi_thermal_set_lag(data->regs, HISI_TEMP_LAG);

	/* enable for interrupt */
	hisi_thermal_alarm_set(data->regs, sensor->thres_temp);

	hisi_thermal_reset_set(data->regs, HISI_TEMP_RESET);

	/* enable module */
	hisi_thermal_reset_enable(data->regs, 1);
	hisi_thermal_enable(data->regs, 1);

	hisi_thermal_alarm_clear(data->regs, 0);
	hisi_thermal_alarm_enable(data->regs, 1);

	return 0;
}

static int hisi_thermal_get_temp(void *__data, int *temp)
{
	struct hisi_thermal_data *data = __data;
@@ -291,44 +329,6 @@ static void hisi_thermal_toggle_sensor(struct hisi_thermal_sensor *sensor,
		on ? THERMAL_DEVICE_ENABLED : THERMAL_DEVICE_DISABLED);
}

static int hisi_thermal_setup(struct hisi_thermal_data *data)
{
	struct hisi_thermal_sensor *sensor = &data->sensor;
	int ret;

	/* enable clock for tsensor */
	ret = clk_prepare_enable(data->clk);
	if (ret)
		return ret;

	/* disable module firstly */
	hisi_thermal_reset_enable(data->regs, 0);
	hisi_thermal_enable(data->regs, 0);

	/* select sensor id */
	hisi_thermal_sensor_select(data->regs, sensor->id);

	/* setting the hdak time */
	hisi_thermal_hdak_set(data->regs, 0);

	/* setting lag value between current temp and the threshold */
	hisi_thermal_set_lag(data->regs, HISI_TEMP_LAG);

	/* enable for interrupt */
	hisi_thermal_alarm_set(data->regs, sensor->thres_temp);

	hisi_thermal_reset_set(data->regs, HISI_TEMP_RESET);

	/* enable module */
	hisi_thermal_reset_enable(data->regs, 1);
	hisi_thermal_enable(data->regs, 1);

	hisi_thermal_alarm_clear(data->regs, 0);
	hisi_thermal_alarm_enable(data->regs, 1);

	return 0;
}

static int hisi_thermal_probe(struct platform_device *pdev)
{
	struct hisi_thermal_data *data;