Re: [PATCH 1/2] iio: vadc: Qualcomm SPMI PMIC voltage ADC driver

From: Stanimir Varbanov
Date: Mon Sep 08 2014 - 11:30:12 EST


On 09/08/2014 01:19 PM, Arnd Bergmann wrote:
> On Monday 08 September 2014 11:13:50 Stanimir Varbanov wrote:
>> On 09/05/2014 03:26 PM, Arnd Bergmann wrote:
>>> On Friday 05 September 2014 15:14:33 Stanimir Varbanov wrote:
>>>> + VADC_CHAN(LR_MUX1_BAT_THERM, 0) /* 0x30 */
>>>> + VADC_CHAN(LR_MUX2_BAT_ID, 0)
>>>> + VADC_CHAN(LR_MUX3_XO_THERM, 0)
>>>> + VADC_CHAN(LR_MUX4_AMUX_THM1, 0)
>>>> + VADC_CHAN(LR_MUX5_AMUX_THM2,by you 0)
>>>> + VADC_CHAN(LR_MUX6_AMUX_THM3, 0)
>>>> + VADC_CHAN(LR_MUX7_HW_ID, 0)
>>>> + VADC_CHAN(LR_MUX8_AMUX_THM4, 0)
>>>> + VADC_CHAN(LR_MUX9_AMUX_THM5, 0)
>>>> + VADC_CHAN(AMUX_PU1, 0)
>>>> + VADC_CHAN(AMUX_PU2, 0)
>>>> + VADC_CHAN(LR_MUX3_BUF_XO_THERM_BUF, 0) /* 0x3c */
>>>> +
>>>> + VADC_CHAN(LR_MUX1_PU1_BAT_THERM, 0) /* 0x70 */
>>>> + VADC_CHAN(LR_MUX2_PU1_BAT_ID, 0)
>>>> + VADC_CHAN(LR_MUX3_PU1_XO_THERM, 0)
>>>> + VADC_CHAN(LR_MUX4_PU1_AMUX_THM1, 0)
>>>> + VADC_CHAN(LR_MUX5_PU1_AMUX_THM2, 0)
>>>> + VADC_CHAN(LR_MUX6_PU1_AMUX_THM3, 0)
>>>> + VADC_CHAN(LR_MUX7_PU1_AMUX_HW_ID, 0)
>>>> + VADC_CHAN(LR_MUX8_PU1_AMUX_THM4, 0)
>>>> + VADC_CHAN(LR_MUX9_PU1_AMUX_THM5, 0)
>>>> + VADC_CHAN(LR_MUX10_PU1_AMUX_USB_ID, 0) /* 0x79 */
>>>> + VADC_CHAN(LR_MUX3_BUF_PU1_XO_THERM_BUF, 0) /* 0x7c */
>>>>
>>>
>>> These numbers all look hardware specific, so why put macros into the
>>> device tree rather than using them directly?
>>
>> The idea was to use #defines in DT nodes when we need to overwrite the
>> adc channel parameters, see example in 2/2 how it will be used.
>
> I don't understand. The node in the example has
>
> + /* Channel node */
> + usb_id_nopull@39 {
> + qcom,channel = <VADC_LR_MUX10_USB_ID>;
> ...
> + };
>
>
> And VADC_LR_MUX10_USB_ID is defined to 0x39. How is this helping anything?
> You just introduce an artificial dependency on the header file, which makes
> it a mess to merge the patches or do updates, and anybody who needs to
> make updates to this now has to go through the same pain, to update the
> dts files, the driver and the binding document in lockstep.
>
> Why not remove the qcom,channel property completely and use a 'reg'
> property with #address-cells=<1>, #size-cells=<0> and put the number
> directly in there, with no need for obfuscation macros?

OK thanks for the remarks. I will fix this mess.

I hope you are expecting to see this:

pmic_vadc: vadc@3100 {
#address-cells = <1>;
#size-cells = <0>;
#io-channel-cells = <1>;
io-channel-ranges;

usb_id_nopull@39 {
reg = <0x39>;
};
};

and use the vadc channel from usb device node

usb {
...
io-channels = <&pmic_vadc 0x39>;
io-channel-names = "usbidnopull";
};


--
regards,
Stan
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/