Re: [PATCH v3 1/4] dt-bindings: iio: magnetometer: ak8975: convert txt format to yaml

Stephan Gerhold
2020-05-19T13:23:34Z

On Tue, May 19, 2020 at 02:43:51PM +0200, Jonathan Albrieux wrote:
> Converts documentation from txt format to yaml.
>
> Signed-off-by: Jonathan Albrieux <jonathan.albrieux@gmail.com>
> ---
> .../bindings/iio/magnetometer/ak8975.txt | 30 ---------
> .../bindings/iio/magnetometer/ak8975.yaml | 66 +++++++++++++++++++
> 2 files changed, 66 insertions(+), 30 deletions(-)
> delete mode 100644 Documentation/devicetree/bindings/iio/magnetometer/ak8975.txt
> create mode 100644 Documentation/devicetree/bindings/iio/magnetometer/ak8975.yaml
>
> diff --git a/Documentation/devicetree/bindings/iio/magnetometer/ak8975.txt b/Documentation/devicetree/bindings/iio/magnetometer/ak8975.txt
> deleted file mode 100644
> index aa67ceb0d4e0..000000000000
> --- a/Documentation/devicetree/bindings/iio/magnetometer/ak8975.txt
> +++ /dev/null
> @@ -1,30 +0,0 @@
> -* AsahiKASEI AK8975 magnetometer sensor
> -
> -Required properties:
> -
> - - compatible : should be "asahi-kasei,ak8975"
> - - reg : the I2C address of the magnetometer
> -
> -Optional properties:
> -
> - - gpios : should be device tree identifier of the magnetometer DRDY pin
> - - vdd-supply: an optional regulator that needs to be on to provide VDD
> - - mount-matrix: an optional 3x3 mounting rotation matrix
> -
> -Example:
> -
> -ak8975@c {
> - compatible = "asahi-kasei,ak8975";
> - reg = <0x0c>;
> - gpios = <&gpj0 7 0>;
> - vdd-supply = <&ldo_3v3_gnss>;
> - mount-matrix = "-0.984807753012208", /* x0 */
> - "0", /* y0 */
> - "-0.173648177666930", /* z0 */
> - "0", /* x1 */
> - "-1", /* y1 */
> - "0", /* z1 */
> - "-0.173648177666930", /* x2 */
> - "0", /* y2 */
> - "0.984807753012208"; /* z2 */
> -};
> diff --git a/Documentation/devicetree/bindings/iio/magnetometer/ak8975.yaml b/Documentation/devicetree/bindings/iio/magnetometer/ak8975.yaml
> new file mode 100644
> index 000000000000..86e3efa693a8
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/iio/magnetometer/ak8975.yaml
> @@ -0,0 +1,66 @@
> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/iio/magnetometer/ak8975.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: AsahiKASEI AK8975 magnetometer sensor
> +
> +maintainers:
> + - can't find a mantainer, author is Laxman Dewangan <ldewangan@nvidia.com>

Should probably add someone here, although I'm not sure who either.

> +
> +properties:
> + compatible:
> + enum:
> + - "asahi-kasei,ak8975"
> + - "ak8975"
> + - "asahi-kasei,ak8963"
> + - "ak8963"
> + - "asahi-kasei,ak09911"
> + - "ak09911"
> + - "asahi-kasei,ak09912"
> + - "ak09912"
> +

I wonder if the ones without vendor prefix (asahi-kasei,) should be
marked as deprecated somehow?

Looking at some other schemas I see either a "# deprecated" comment, or:

properties:
compatible:
oneOf:
- const: asahi-kasei,ak8975
- const: asahi-kasei,ak8963
- const: asahi-kasei,ak09911
- const: asahi-kasei,ak09912
- const: ak8975
deprecated: true
- const: ak8963
deprecated: true
- const: ak09911
deprecated: true
- const: ak09912
deprecated: true

(e.g. in Documentation/devicetree/bindings/sound/samsung,odroid.yaml)
I guess this one is preferred since it allows parsing those
compatibles as deprecated?

> + reg:
> + maxItems: 1
> + description: the I2C address of the magnetometer
> +
> + gpios:
> + description: should be device tree identifier of the magnetometer DRDY pin
> +
> + vdd-supply:
> + maxItems: 1
> + description: |
> + an optional regulator that needs to be on to provide VDD power to
> + the sensor.
> +
> + mount-matrix:
> + description: an optional 3x3 mounting rotation matrix
> +
> +required:
> + - compatible
> + - reg
> +
> +examples:
> + - |
> + i2c@78b7000 {
> + reg = <0x78b6000 0x600>;
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + ak8975@c {

Per device tree specification this should preferably use a generic name
describing the function of the device, i.e. magnetometer@c.

> + compatible = "asahi-kasei,ak8975";
> + reg = <0x0c>;
> + gpios = <&gpj0 7 0>;

I think using the dt-bindings constants for the GPIO flags is preferred
now, i.e. gpios = <&gpj0 7 GPIO_ACTIVE_HIGH>.

> + vdd-supply = <&ldo_3v3_gnss>;
> + mount-matrix = "-0.984807753012208", /* x0 */
> + "0", /* y0 */
> + "-0.173648177666930", /* z0 */
> + "0", /* x1 */
> + "-1", /* y1 */
> + "0", /* z1 */
> + "-0.173648177666930", /* x2 */
> + "0", /* y2 */
> + "0.984807753012208"; /* z2 */
> + };
> + };
> --
> 2.17.1