mirror of
				git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
				synced 2025-11-01 09:13:37 +00:00 
			
		
		
		
	This patch adds i.MX7 thermal sensor support, most of the i.MX7 thermal sensor functions are same with i.MX6 except the registers offset/layout, so we move those registers offset/layout definitions to soc data structure. i.MX7 uses single calibration data @25C, the calibration data is located at OCOTP offset 0x4F0, bit[17:9], the formula is as below: Tmeas = (Nmeas - n1) + 25; n1 is the fuse value for 25C. Signed-off-by: Anson Huang <Anson.Huang@nxp.com> Signed-off-by: Bai Ping <ping.bai@nxp.com> Acked-by: Dong Aisheng <aisheng.dong@nxp.com> Acked-by: Shawn Guo <shawnguo@kernel.org> Reviewed-by: Rob Herring <robh@kernel.org> Signed-off-by: Eduardo Valentin <edubezval@gmail.com>
		
			
				
	
	
		
			61 lines
		
	
	
	
		
			2 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			61 lines
		
	
	
	
		
			2 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
* Temperature Monitor (TEMPMON) on Freescale i.MX SoCs
 | 
						|
 | 
						|
Required properties:
 | 
						|
- compatible : must be one of following:
 | 
						|
  - "fsl,imx6q-tempmon" for i.MX6Q,
 | 
						|
  - "fsl,imx6sx-tempmon" for i.MX6SX,
 | 
						|
  - "fsl,imx7d-tempmon" for i.MX7S/D.
 | 
						|
- interrupts : the interrupt output of the controller:
 | 
						|
  i.MX6Q has one IRQ which will be triggered when temperature is higher than high threshold,
 | 
						|
  i.MX6SX and i.MX7S/D have two more IRQs than i.MX6Q, one is IRQ_LOW and the other is IRQ_PANIC,
 | 
						|
  when temperature is below than low threshold, IRQ_LOW will be triggered, when temperature
 | 
						|
  is higher than panic threshold, system will auto reboot by SRC module.
 | 
						|
- fsl,tempmon : phandle pointer to system controller that contains TEMPMON
 | 
						|
  control registers, e.g. ANATOP on imx6q.
 | 
						|
- nvmem-cells: A phandle to the calibration cells provided by ocotp.
 | 
						|
- nvmem-cell-names: Should be "calib", "temp_grade".
 | 
						|
 | 
						|
Deprecated properties:
 | 
						|
- fsl,tempmon-data : phandle pointer to fuse controller that contains TEMPMON
 | 
						|
  calibration data, e.g. OCOTP on imx6q.  The details about calibration data
 | 
						|
  can be found in SoC Reference Manual.
 | 
						|
 | 
						|
Direct access to OCOTP via fsl,tempmon-data is incorrect on some newer chips
 | 
						|
because it does not handle OCOTP clock requirements.
 | 
						|
 | 
						|
Optional properties:
 | 
						|
- clocks : thermal sensor's clock source.
 | 
						|
 | 
						|
Example:
 | 
						|
ocotp: ocotp@21bc000 {
 | 
						|
	#address-cells = <1>;
 | 
						|
	#size-cells = <1>;
 | 
						|
	compatible = "fsl,imx6sx-ocotp", "syscon";
 | 
						|
	reg = <0x021bc000 0x4000>;
 | 
						|
	clocks = <&clks IMX6SX_CLK_OCOTP>;
 | 
						|
 | 
						|
	tempmon_calib: calib@38 {
 | 
						|
		reg = <0x38 4>;
 | 
						|
	};
 | 
						|
 | 
						|
	tempmon_temp_grade: temp-grade@20 {
 | 
						|
		reg = <0x20 4>;
 | 
						|
	};
 | 
						|
};
 | 
						|
 | 
						|
tempmon: tempmon {
 | 
						|
	compatible = "fsl,imx6sx-tempmon", "fsl,imx6q-tempmon";
 | 
						|
	interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
 | 
						|
	fsl,tempmon = <&anatop>;
 | 
						|
	nvmem-cells = <&tempmon_calib>, <&tempmon_temp_grade>;
 | 
						|
	nvmem-cell-names = "calib", "temp_grade";
 | 
						|
	clocks = <&clks IMX6SX_CLK_PLL3_USB_OTG>;
 | 
						|
};
 | 
						|
 | 
						|
Legacy method (Deprecated):
 | 
						|
tempmon {
 | 
						|
	compatible = "fsl,imx6q-tempmon";
 | 
						|
	fsl,tempmon = <&anatop>;
 | 
						|
	fsl,tempmon-data = <&ocotp>;
 | 
						|
	clocks = <&clks 172>;
 | 
						|
};
 |