diff mbox

[5/5] ARM: dts: exynos4412-trats2: Add ADC's dt data to get temperature of SoC/battery

Message ID 1394524494-30641-6-git-send-email-cw00.choi@samsung.com (mailing list archive)
State New, archived
Headers show

Commit Message

Chanwoo Choi March 11, 2014, 7:54 a.m. UTC
This patch use ADC to get the temperature of SoC/battery by using NTC thermistor
driver in hwmon. NTC thermistor driver covnvert ADC's raw data to temperature
by using following variables:

- pullup-uv    : Voltage
- pullup-ohm   : Pull-up resistance
- pulldown-ohm : Pull-down resistance
- io-channels  : It means ADC channel.

Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
---
 arch/arm/boot/dts/exynos4412-trats2.dts | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

Comments

Tomasz Figa March 11, 2014, 1:09 p.m. UTC | #1
Hi Chanwoo,

On 11.03.2014 08:54, Chanwoo Choi wrote:
> This patch use ADC to get the temperature of SoC/battery by using NTC thermistor
> driver in hwmon. NTC thermistor driver covnvert ADC's raw data to temperature
> by using following variables:
>
> - pullup-uv    : Voltage
> - pullup-ohm   : Pull-up resistance
> - pulldown-ohm : Pull-down resistance
> - io-channels  : It means ADC channel.
>

Those properties are well-defined in "ntc,ncp15wb473" DT bindings 
documentation. There is no need to repeat them here.

> Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
> ---
>   arch/arm/boot/dts/exynos4412-trats2.dts | 21 +++++++++++++++++++++
>   1 file changed, 21 insertions(+)
>
> diff --git a/arch/arm/boot/dts/exynos4412-trats2.dts b/arch/arm/boot/dts/exynos4412-trats2.dts
> index 4f851cc..fc517c3 100644
> --- a/arch/arm/boot/dts/exynos4412-trats2.dts
> +++ b/arch/arm/boot/dts/exynos4412-trats2.dts
> @@ -106,6 +106,27 @@
>   		};
>   	};
>
> +	adc: adc@126C0000 {
> +		vdd-supply = <&ldo3_reg>;
> +		status = "okay";
> +
> +		ncp15wb473@0 {

style: Nodes should have generic names, e.g. thermistor@0.

Also if node name is suffixed with @unit-address, then the node should 
have a reg property with its first entry corresponding to the 
unit-address. Now there is no physical unit-address definition for those 
thermistors, so they shouldn't use this naming pattern, but rather 
something like "thermistor-0" or "thermistor-ap".

> +			compatible = "ntc,ncp15wb473";
> +			pullup-uv = <1800000>;	 /* VCC_1.8V_AP */
> +			pullup-ohm = <100000>;	 /* 100K */
> +			pulldown-ohm = <100000>; /* 100K */
> +			io-channels = <&adc 1>;  /* AP temperature */
> +		};
> +
> +		ncp15wb473@1 {
> +			compatible = "ntc,ncp15wb473";
> +			pullup-uv = <1800000>;	 /* VCC_1.8V_AP */
> +			pullup-ohm = <100000>;	 /* 100K */
> +			pulldown-ohm = <100000>; /* 100K */
> +			io-channels = <&adc 2>;  /* Battery temperature */
> +		};

Anyway, I don't think it is correct to place IIO consumers under IIO 
provider node, because IIO is not a control bus, but rather a resource 
provider, like GPIO, clock, etc. So both thermistor nodes should be 
placed outside the adc node. (They might be grouped in a simple-bus 
subnode, though, to improve readability.)

Best regards,
Tomasz
Chanwoo Choi March 12, 2014, 6:01 a.m. UTC | #2
Hi Tomasz,

On 03/11/2014 10:09 PM, Tomasz Figa wrote:
> Hi Chanwoo,
> 
> On 11.03.2014 08:54, Chanwoo Choi wrote:
>> This patch use ADC to get the temperature of SoC/battery by using NTC thermistor
>> driver in hwmon. NTC thermistor driver covnvert ADC's raw data to temperature
>> by using following variables:
>>
>> - pullup-uv    : Voltage
>> - pullup-ohm   : Pull-up resistance
>> - pulldown-ohm : Pull-down resistance
>> - io-channels  : It means ADC channel.
>>
> 
> Those properties are well-defined in "ntc,ncp15wb473" DT bindings documentation. There is no need to repeat them here.
> 
>> Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
>> ---
>>   arch/arm/boot/dts/exynos4412-trats2.dts | 21 +++++++++++++++++++++
>>   1 file changed, 21 insertions(+)
>>
>> diff --git a/arch/arm/boot/dts/exynos4412-trats2.dts b/arch/arm/boot/dts/exynos4412-trats2.dts
>> index 4f851cc..fc517c3 100644
>> --- a/arch/arm/boot/dts/exynos4412-trats2.dts
>> +++ b/arch/arm/boot/dts/exynos4412-trats2.dts
>> @@ -106,6 +106,27 @@
>>           };
>>       };
>>
>> +    adc: adc@126C0000 {
>> +        vdd-supply = <&ldo3_reg>;
>> +        status = "okay";
>> +
>> +        ncp15wb473@0 {
> 
> style: Nodes should have generic names, e.g. thermistor@0.
> 
> Also if node name is suffixed with @unit-address, then the node should have a reg property with its first entry corresponding to the unit-address. Now there is no physical unit-address definition for those thermistors, so they shouldn't use this naming pattern, but rather something like "thermistor-0" or "thermistor-ap".

OK I'll rename thermistor dt name.
> 
>> +            compatible = "ntc,ncp15wb473";
>> +            pullup-uv = <1800000>;     /* VCC_1.8V_AP */
>> +            pullup-ohm = <100000>;     /* 100K */
>> +            pulldown-ohm = <100000>; /* 100K */
>> +            io-channels = <&adc 1>;  /* AP temperature */
>> +        };
>> +
>> +        ncp15wb473@1 {
>> +            compatible = "ntc,ncp15wb473";
>> +            pullup-uv = <1800000>;     /* VCC_1.8V_AP */
>> +            pullup-ohm = <100000>;     /* 100K */
>> +            pulldown-ohm = <100000>; /* 100K */
>> +            io-channels = <&adc 2>;  /* Battery temperature */
>> +        };
> 
> Anyway, I don't think it is correct to place IIO consumers under IIO provider node, because IIO is not a control bus, but rather a resource provider, like GPIO, clock, etc. So both thermistor nodes should be placed outside the adc node. (They might be grouped in a simple-bus subnode, though, to improve readability.)

OK, I'll move ntc_thermistor node outside of ADC dt node.

Best Regards,
Chanwoo Choi
diff mbox

Patch

diff --git a/arch/arm/boot/dts/exynos4412-trats2.dts b/arch/arm/boot/dts/exynos4412-trats2.dts
index 4f851cc..fc517c3 100644
--- a/arch/arm/boot/dts/exynos4412-trats2.dts
+++ b/arch/arm/boot/dts/exynos4412-trats2.dts
@@ -106,6 +106,27 @@ 
 		};
 	};
 
+	adc: adc@126C0000 {
+		vdd-supply = <&ldo3_reg>;
+		status = "okay";
+
+		ncp15wb473@0 {
+			compatible = "ntc,ncp15wb473";
+			pullup-uv = <1800000>;	 /* VCC_1.8V_AP */
+			pullup-ohm = <100000>;	 /* 100K */
+			pulldown-ohm = <100000>; /* 100K */
+			io-channels = <&adc 1>;  /* AP temperature */
+		};
+
+		ncp15wb473@1 {
+			compatible = "ntc,ncp15wb473";
+			pullup-uv = <1800000>;	 /* VCC_1.8V_AP */
+			pullup-ohm = <100000>;	 /* 100K */
+			pulldown-ohm = <100000>; /* 100K */
+			io-channels = <&adc 2>;  /* Battery temperature */
+		};
+	};
+
 	i2c@13890000 {
 		samsung,i2c-sda-delay = <100>;
 		samsung,i2c-slave-addr = <0x10>;