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

Commit dc1956b5 authored by hongbo.zhang's avatar hongbo.zhang Committed by Zhang Rui
Browse files

Thermal: Add ST-Ericsson DB8500 thermal properties and platform data.



This patch adds device tree properties for ST-Ericsson DB8500 thermal driver,
also adds the platform data to support the old fashion.

Signed-off-by: default avatarhongbo.zhang <hongbo.zhang@linaro.com>
Reviewed-by: default avatarViresh Kumar <viresh.kumar@linaro.org>
Acked-by: default avatarLinus Walleij <linus.walleij@linaro.org>
Signed-off-by: default avatarZhang Rui <rui.zhang@intel.com>
parent aa1acb04
Loading
Loading
Loading
Loading
+14 −0
Original line number Diff line number Diff line
@@ -203,6 +203,14 @@
				reg = <0x80157450 0xC>;
			};

			thermal@801573c0 {
				compatible = "stericsson,db8500-thermal";
				reg = <0x801573c0 0x40>;
				interrupts = <21 0x4>, <22 0x4>;
				interrupt-names = "IRQ_HOTMON_LOW", "IRQ_HOTMON_HIGH";
				status = "disabled";
			 };

			db8500-prcmu-regulators {
				compatible = "stericsson,db8500-prcmu-regulator";

@@ -660,5 +668,11 @@
			ranges = <0 0x50000000 0x4000000>;
			status = "disabled";
		};

		cpufreq-cooling {
			compatible = "stericsson,db8500-cpufreq-cooling";
			status = "disabled";
		 };

	};
};
+31 −0
Original line number Diff line number Diff line
@@ -99,6 +99,33 @@
			status = "okay";
		};

		prcmu@80157000 {
			thermal@801573c0 {
				num-trips = <4>;

				trip0-temp = <70000>;
				trip0-type = "active";
				trip0-cdev-num = <1>;
				trip0-cdev-name0 = "thermal-cpufreq-0";

				trip1-temp = <75000>;
				trip1-type = "active";
				trip1-cdev-num = <1>;
				trip1-cdev-name0 = "thermal-cpufreq-0";

				trip2-temp = <80000>;
				trip2-type = "active";
				trip2-cdev-num = <1>;
				trip2-cdev-name0 = "thermal-cpufreq-0";

				trip3-temp = <85000>;
				trip3-type = "critical";
				trip3-cdev-num = <0>;

				status = "okay";
			 };
		};

		external-bus@50000000 {
			status = "okay";

@@ -183,5 +210,9 @@
				reg = <0x33>;
			};
		};

		cpufreq-cooling {
			status = "okay";
		};
	};
};
+2 −0
Original line number Diff line number Diff line
@@ -69,6 +69,8 @@ CONFIG_GPIO_TC3589X=y
CONFIG_POWER_SUPPLY=y
CONFIG_AB8500_BM=y
CONFIG_AB8500_BATTERY_THERM_ON_BATCTRL=y
CONFIG_THERMAL=y
CONFIG_CPU_THERMAL=y
CONFIG_MFD_STMPE=y
CONFIG_MFD_TC3589X=y
CONFIG_AB5500_CORE=y
+64 −0
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@
#include <linux/io.h>
#include <linux/i2c.h>
#include <linux/platform_data/i2c-nomadik.h>
#include <linux/platform_data/db8500_thermal.h>
#include <linux/gpio.h>
#include <linux/amba/bus.h>
#include <linux/amba/pl022.h>
@@ -228,6 +229,67 @@ static struct ab8500_platform_data ab8500_platdata = {
	.codec		= &ab8500_codec_pdata,
};

/*
 * Thermal Sensor
 */

static struct resource db8500_thsens_resources[] = {
	{
		.name = "IRQ_HOTMON_LOW",
		.start  = IRQ_PRCMU_HOTMON_LOW,
		.end    = IRQ_PRCMU_HOTMON_LOW,
		.flags  = IORESOURCE_IRQ,
	},
	{
		.name = "IRQ_HOTMON_HIGH",
		.start  = IRQ_PRCMU_HOTMON_HIGH,
		.end    = IRQ_PRCMU_HOTMON_HIGH,
		.flags  = IORESOURCE_IRQ,
	},
};

static struct db8500_thsens_platform_data db8500_thsens_data = {
	.trip_points[0] = {
		.temp = 70000,
		.type = THERMAL_TRIP_ACTIVE,
		.cdev_name = {
			[0] = "thermal-cpufreq-0",
		},
	},
	.trip_points[1] = {
		.temp = 75000,
		.type = THERMAL_TRIP_ACTIVE,
		.cdev_name = {
			[0] = "thermal-cpufreq-0",
		},
	},
	.trip_points[2] = {
		.temp = 80000,
		.type = THERMAL_TRIP_ACTIVE,
		.cdev_name = {
			[0] = "thermal-cpufreq-0",
		},
	},
	.trip_points[3] = {
		.temp = 85000,
		.type = THERMAL_TRIP_CRITICAL,
	},
	.num_trips = 4,
};

static struct platform_device u8500_thsens_device = {
	.name           = "db8500-thermal",
	.resource       = db8500_thsens_resources,
	.num_resources  = ARRAY_SIZE(db8500_thsens_resources),
	.dev	= {
		.platform_data	= &db8500_thsens_data,
	},
};

static struct platform_device u8500_cpufreq_cooling_device = {
	.name           = "db8500-cpufreq-cooling",
};

/*
 * TPS61052
 */
@@ -583,6 +645,8 @@ static struct platform_device *snowball_platform_devs[] __initdata = {
	&snowball_key_dev,
	&snowball_sbnet_dev,
	&snowball_gpio_en_3v3_regulator_dev,
	&u8500_thsens_device,
	&u8500_cpufreq_cooling_device,
};

static void __init mop500_init_machine(void)