Re: [PATCH 30/46] dt-bindings:iio:adc:renesas,rcar-gyroadc: txt to yaml conversion.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sat, Oct 31, 2020 at 06:48:38PM +0000, Jonathan Cameron wrote:
> From: Jonathan Cameron <Jonathan.Cameron@xxxxxxxxxx>
> 
> This is a somewhat unusual device, in that it effectively does
> spi offload.   That means that it doesn't act as a full SPI
> master, but supports some functionality.  As such it supports
> a subset of specific SPI ADCs.  There is potential for a future
> clash in bindings, but as these are simple devices hopefully that
> will not occur.
> 
> One addition to this from testing it against existing dts files
> was to add a resets property.
> This is specified in arch/arm/boot/dts/r8a7791.dtsi
> If it's the dtsi that is wrong and not the binding doc, then
> we can fix that instead.
> 
> Signed-off-by: Jonathan Cameron <Jonathan.Cameron@xxxxxxxxxx>
> Cc: Marek Vasut <marek.vasut+renesas@xxxxxxxxx>
> ---
>  .../bindings/iio/adc/renesas,gyroadc.txt      |  98 ------------
>  .../iio/adc/renesas,rcar-gyroadc.yaml         | 141 ++++++++++++++++++
>  2 files changed, 141 insertions(+), 98 deletions(-)
> 
> diff --git a/Documentation/devicetree/bindings/iio/adc/renesas,gyroadc.txt b/Documentation/devicetree/bindings/iio/adc/renesas,gyroadc.txt
> deleted file mode 100644
> index df5b9f2ad8d8..000000000000
> --- a/Documentation/devicetree/bindings/iio/adc/renesas,gyroadc.txt
> +++ /dev/null
> @@ -1,98 +0,0 @@
> -* Renesas R-Car GyroADC device driver
> -
> -The GyroADC block is a reduced SPI block with up to 8 chipselect lines,
> -which supports the SPI protocol of a selected few SPI ADCs. The SPI ADCs
> -are sampled by the GyroADC block in a round-robin fashion and the result
> -presented in the GyroADC registers.
> -
> -Required properties:
> -- compatible:	Should be "<soc-specific>", "renesas,rcar-gyroadc".
> -                The <soc-specific> should be one of:
> -		renesas,r8a7791-gyroadc - for the GyroADC block present
> -					  in r8a7791 SoC
> -		renesas,r8a7792-gyroadc - for the GyroADC with interrupt
> -					  block present in r8a7792 SoC
> -- reg:		Address and length of the register set for the device
> -- clocks:	References to all the clocks specified in the clock-names
> -		property as specified in
> -		Documentation/devicetree/bindings/clock/clock-bindings.txt.
> -- clock-names:	Shall contain "fck". The "fck" is the GyroADC block clock.
> -- power-domains: Must contain a reference to the PM domain, if available.
> -- #address-cells: Should be <1> (setting for the subnodes) for all ADCs
> -		except for "fujitsu,mb88101a". Should be <0> (setting for
> -		only subnode) for "fujitsu,mb88101a".
> -- #size-cells:	Should be <0> (setting for the subnodes)
> -
> -Sub-nodes:
> -You must define subnode(s) which select the connected ADC type and reference
> -voltage for the GyroADC channels.
> -
> -Required properties for subnodes:
> -- compatible:	Should be either of:
> -		"fujitsu,mb88101a"
> -			- Fujitsu MB88101A compatible mode,
> -			  12bit sampling, up to 4 channels can be sampled in
> -			  round-robin fashion. One Fujitsu chip supplies four
> -			  GyroADC channels with data as it contains four ADCs
> -			  on the chip and thus for 4-channel operation, single
> -			  MB88101A is required. The Cx chipselect lines of the
> -			  MB88101A connect directly to two CHS lines of the
> -			  GyroADC, no demuxer is required. The data out line
> -			  of each MB88101A connects to a shared input pin of
> -			  the GyroADC.
> -		"ti,adcs7476" or "ti,adc121" or "adi,ad7476"
> -			- TI ADCS7476 / TI ADC121 / ADI AD7476 compatible mode,
> -			  15bit sampling, up to 8 channels can be sampled in
> -			  round-robin fashion. One TI/ADI chip supplies single
> -			  ADC channel with data, thus for 8-channel operation,
> -			  8 chips are required. A 3:8 chipselect demuxer is
> -			  required to connect the nCS line of the TI/ADI chips
> -			  to the GyroADC, while MISO line of each TI/ADI ADC
> -			  connects to a shared input pin of the GyroADC.
> -		"maxim,max1162" or "maxim,max11100"
> -			- Maxim MAX1162 / Maxim MAX11100 compatible mode,
> -			  16bit sampling, up to 8 channels can be sampled in
> -			  round-robin fashion. One Maxim chip supplies single
> -			  ADC channel with data, thus for 8-channel operation,
> -			  8 chips are required. A 3:8 chipselect demuxer is
> -			  required to connect the nCS line of the MAX chips
> -			  to the GyroADC, while MISO line of each Maxim ADC
> -			  connects to a shared input pin of the GyroADC.
> -- reg:		Should be the number of the analog input. Should be present
> -		for all ADCs except "fujitsu,mb88101a".
> -- vref-supply:	Reference to the channel reference voltage regulator.
> -
> -Example:
> -	vref_max1162: regulator-vref-max1162 {
> -		compatible = "regulator-fixed";
> -
> -		regulator-name = "MAX1162 Vref";
> -		regulator-min-microvolt = <4096000>;
> -		regulator-max-microvolt = <4096000>;
> -	};
> -
> -	adc@e6e54000 {
> -		compatible = "renesas,r8a7791-gyroadc", "renesas,rcar-gyroadc";
> -		reg = <0 0xe6e54000 0 64>;
> -		clocks = <&mstp9_clks R8A7791_CLK_GYROADC>;
> -		clock-names = "fck";
> -		power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
> -
> -		pinctrl-0 = <&adc_pins>;
> -		pinctrl-names = "default";
> -
> -		#address-cells = <1>;
> -		#size-cells = <0>;
> -
> -		adc@0 {
> -			reg = <0>;
> -			compatible = "maxim,max1162";
> -			vref-supply = <&vref_max1162>;
> -		};
> -
> -		adc@1 {
> -			reg = <1>;
> -			compatible = "maxim,max1162";
> -			vref-supply = <&vref_max1162>;
> -		};
> -	};
> diff --git a/Documentation/devicetree/bindings/iio/adc/renesas,rcar-gyroadc.yaml b/Documentation/devicetree/bindings/iio/adc/renesas,rcar-gyroadc.yaml
> new file mode 100644
> index 000000000000..aeaa9d372450
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/iio/adc/renesas,rcar-gyroadc.yaml
> @@ -0,0 +1,141 @@
> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/iio/adc/renesas,rcar-gyroadc.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Renesas R-Car GyroADC
> +
> +maintainers:
> +  - Marek Vasut <marek.vasut+renesas@xxxxxxxxx>
> +
> +description: |
> +  The GyroADC block is a reduced SPI block with up to 8 chipselect lines,
> +  which supports the SPI protocol of a selected few SPI ADCs. The SPI ADCs
> +  are sampled by the GyroADC block in a round-robin fashion and the result
> +  presented in the GyroADC registers.
> +  The ADC bindings should match with that of the devices connected to a
> +  full featured SPI bus.
> +
> +properties:
> +  compatible:
> +    items:
> +      - enum:
> +          - renesas,r8a7791-gyroadc
> +          - renesas,r8a7792-gyroadc
> +      - const: renesas,rcar-gyroadc
> +
> +  reg:
> +    maxItems: 1
> +
> +  clocks:
> +    maxItems: 1
> +
> +  clock-names:
> +    const: fck
> +
> +  power-domains: true
> +
> +  resets: true
> +
> +  "#address-cells":
> +    const: 1
> +
> +  "#size-cells":
> +    const: 0
> +
> +additionalProperties: false
> +
> +required:
> +  - compatible
> +  - reg
> +  - clocks
> +  - clock-names
> +  - "#address-cells"
> +  - "#size-cells"
> +
> +patternProperties:
> +  "^[a-zA-Z][a-zA-Z0-9,+\\-._]{0,63}@[0-9a-fA-F]+$":

No reason to repeat this regex as all node names get checked. Just need 
to restrict the unit-address:

"@[0-7]$"

> +    type: object
> +    properties:
> +      compatible:
> +        description: |
> +          fujitsu,mb88101a
> +          - Fujitsu MB88101A compatible mode,
> +            12bit sampling, up to 4 channels can be sampled in round-robin
> +            fashion. One Fujitsu chip supplies four GyroADC channels with
> +            data as it contains four ADCs on the chip and thus for 4-channel
> +            operation, single MB88101A is required. The Cx chipselect lines
> +            of the MB88101A connect directly to two CHS lines of the GyroADC,
> +            no demuxer is required. The data out line of each MB88101A
> +            connects to a shared input pin of the GyroADC.
> +          ti,adcs7476 or ti,adc121 or adi,ad7476
> +          - TI ADCS7476 / TI ADC121 / ADI AD7476 compatible mode, 15bit
> +            sampling, up to 8 channels can be sampled in round-robin
> +            fashion. One TI/ADI chip supplies single ADC channel with data,
> +            thus for 8-channel operation, 8 chips are required.
> +            A 3:8 chipselect demuxer is  required to connect the nCS line
> +            of the TI/ADI chips to the GyroADC, while MISO line of each
> +            TI/ADI ADC connects to a shared input pin of the GyroADC.
> +          maxim,max1162 or maxim,max11100
> +          - Maxim MAX1162 / Maxim MAX11100 compatible mode,  16bit sampling,
> +            up to 8 channels can be sampled in round-robin fashion. One
> +            Maxim chip supplies single ADC channel with data, thus for
> +            8-channel operation, 8 chips are required.
> +            A 3:8 chipselect demuxer is required to connect the nCS line
> +            of the MAX chips to the GyroADC, while MISO line of each Maxim
> +            ADC connects to a shared input pin of the GyroADC.
> +        enum:
> +          - adi,7476
> +          - fujitsu,mb88101a
> +          - maxim,max1162
> +          - maxim,max11100
> +          - ti,adcs7476
> +          - ti,adc121
> +
> +      reg: true

minimum: 0
maximum: 7

> +
> +      vref-supply: true
> +
> +    additionalProperties: false
> +
> +    required:
> +      - compatible
> +      - reg
> +      - vref-supply
> +
> +examples:
> +  - |
> +    #include <dt-bindings/clock/r8a7791-clock.h>
> +    #include <dt-bindings/power/r8a7791-sysc.h>
> +    soc {
> +        #address-cells = <2>;
> +        #size-cells = <2>;
> +
> +        adc@e6e54000 {
> +            compatible = "renesas,r8a7791-gyroadc", "renesas,rcar-gyroadc";
> +            reg = <0 0xe6e54000 0 64>;
> +            clocks = <&mstp9_clks R8A7791_CLK_GYROADC>;
> +            clock-names = "fck";
> +            power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
> +
> +            pinctrl-0 = <&adc_pins>;
> +            pinctrl-names = "default";
> +
> +            #address-cells = <1>;
> +            #size-cells = <0>;
> +
> +            adc@0 {
> +                reg = <0>;
> +                compatible = "maxim,max1162";
> +                vref-supply = <&vref_max1162>;
> +            };
> +
> +            adc@1 {
> +                reg = <1>;
> +                compatible = "maxim,max1162";
> +                vref-supply = <&vref_max1162>;
> +            };
> +        };
> +    };
> +...
> -- 
> 2.28.0
> 



[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Input]     [Linux Kernel]     [Linux SCSI]     [X.org]

  Powered by Linux