Re: [PATCH 1/2] Documentation: dt-bindings: Document bindings for Aspeed AST2400/AST2500 ADC

From: Rick Altherr
Date: Mon Mar 06 2017 - 18:13:08 EST


On Thu, Mar 2, 2017 at 10:21 PM, Rob Herring <robh@xxxxxxxxxx> wrote:
> On Tue, Feb 28, 2017 at 12:14:03PM -0800, Rick Altherr wrote:
>> Signed-off-by: Rick Altherr <raltherr@xxxxxxxxxx>
>> ---
>> .../devicetree/bindings/hwmon/aspeed_adc.txt | 48 ++++++++++++++++++++++
>
> ADCs should really be documented in one place regardless of whether
> hwmon or IIO is used. Don't need to move it now, but certainly the
> bindings need to be compatible.
>

hwmon maintainers suggested IIO as well. Looks like there is an IIO
to hwmon bridge so no concerns there. I think IIO looks like a
plausible framework for this part based on my cursory look at the IIO
docs. I'll be working on v2 as an IIO driver.

>> 1 file changed, 48 insertions(+)
>> create mode 100644 Documentation/devicetree/bindings/hwmon/aspeed_adc.txt
>>
>> diff --git a/Documentation/devicetree/bindings/hwmon/aspeed_adc.txt b/Documentation/devicetree/bindings/hwmon/aspeed_adc.txt
>> new file mode 100644
>> index 000000000000..9e481668c4d3
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/hwmon/aspeed_adc.txt
>> @@ -0,0 +1,48 @@
>> +Aspeed AST2400/2500 ADC
>> +
>> +This device is a 10-bit converter for 16 voltage channels. All inputs are
>> +single ended. Each channel can be individually enabled to allow for use of
>> +alternate pin functions.
>> +
>> +1) adc node
>> +
>> + Required properties:
>> + - compatible : Should be one of
>> + "aspeed,ast2400-adc"
>> + "aspeed,ast2500-adc"
>> + - reg : memory window mapping address and length
>> + - #address-cells : must be <1> corresponding to the channel child binding
>> + - #size-cells : must be <0> corresponding to the channel child binding
>> + - clocks : Input clock used to derive the sample clock. Expected to be the
>> + SoC's APB clock.
>> + - update-interval-ms : initial time between updates on a channel
>
> This is like sampling rate? I think we have a standard ADC property for
> that.
>

Will look.

>> +
>> + The node contains child nodes for each channel that the platform uses.
>> +
>> + Example adc node:
>> + adc@1e6e9000 {
>> + #address-cells = <1>;
>> + #size-cells = <0>;
>> + compatible = "aspeed,ast2400-adc";
>> + reg = <0x1e6e9000 0xB0>;
>> + clocks = <&clk_apb>;
>> + update-interval-ms = <100>;
>> +
>> + [ child node definitions... ]
>> + };
>> +
>> +2) channel nodes
>> +
>> + Optional properties:
>> + - status: indicates the operational status of the device.
>> + Value must be either "disabled" or "okay".
>
> Don't need to document this.
>

OK

>> + - label : string describing the monitored value
>
> You need a reg property for the channel number.
>

Missed that when I fixed the code. Will include in next revision.

>> +
>> + Example channel node:
>> + channel@1 {
>> + status = "okay";
>> + label = "3V3 rail";
>> +
>> + pinctrl-names = "default";
>> + pinctrl-0 = <&pinctrl_adc0_default>;
>
> Need to document these.

These are described in the pinctrl bindings. I only put them in the
example as they will be commonly used together but the driver does not
use them.

>
>> + };
>> --
>> 2.11.0.483.g087da7b7c-goog
>>