Commit 5deac458 authored by Anson Huang's avatar Anson Huang Committed by Rob Herring
Browse files

dt-bindings: ata: Convert i.MX sata to json-schema



Convert the i.MX sata binding to DT schema format using json-schema.

Signed-off-by: default avatarAnson Huang <Anson.Huang@nxp.com>
Link: https://lore.kernel.org/r/1596611746-29155-1-git-send-email-Anson.Huang@nxp.com


Signed-off-by: default avatarRob Herring <robh@kernel.org>
parent 3a52d298
Loading
Loading
Loading
Loading
+0 −37
Original line number Diff line number Diff line
* Freescale i.MX AHCI SATA Controller

The Freescale i.MX SATA controller mostly conforms to the AHCI interface
with some special extensions at integration level.

Required properties:
- compatible : should be one of the following:
   - "fsl,imx53-ahci" for i.MX53 SATA controller
   - "fsl,imx6q-ahci" for i.MX6Q SATA controller
   - "fsl,imx6qp-ahci" for i.MX6QP SATA controller
- interrupts : interrupt mapping for SATA IRQ
- reg : registers mapping
- clocks : list of clock specifiers, must contain an entry for each
  required entry in clock-names
- clock-names : should include "sata", "sata_ref" and "ahb" entries

Optional properties:
- fsl,transmit-level-mV : transmit voltage level, in millivolts.
- fsl,transmit-boost-mdB : transmit boost level, in milli-decibels
- fsl,transmit-atten-16ths : transmit attenuation, in 16ths
- fsl,receive-eq-mdB : receive equalisation, in milli-decibels
  Please refer to the technical documentation or the driver source code
  for the list of legal values for these options.
- fsl,no-spread-spectrum : disable spread-spectrum clocking on the SATA
  link.

Examples:

sata@2200000 {
	compatible = "fsl,imx6q-ahci";
	reg = <0x02200000 0x4000>;
	interrupts = <0 39 IRQ_TYPE_LEVEL_HIGH>;
	clocks = <&clks IMX6QDL_CLK_SATA>,
		 <&clks IMX6QDL_CLK_SATA_REF_100M>,
		 <&clks IMX6QDL_CLK_AHB>;
	clock-names = "sata", "sata_ref", "ahb";
};
+83 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/ata/imx-sata.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Freescale i.MX AHCI SATA Controller

maintainers:
  - Shawn Guo <shawn.guo@linaro.org>

description: |
  The Freescale i.MX SATA controller mostly conforms to the AHCI interface
  with some special extensions at integration level.

properties:
  compatible:
    enum:
      - fsl,imx53-ahci
      - fsl,imx6q-ahci
      - fsl,imx6qp-ahci

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  clocks:
    items:
      - description: sata clock
      - description: sata reference clock
      - description: ahb clock

  clock-names:
    items:
      - const: sata
      - const: sata_ref
      - const: ahb

  fsl,transmit-level-mV:
    $ref: /schemas/types.yaml#/definitions/uint32
    description: transmit voltage level, in millivolts.

  fsl,transmit-boost-mdB:
    $ref: /schemas/types.yaml#/definitions/uint32
    description: transmit boost level, in milli-decibels.

  fsl,transmit-atten-16ths:
    $ref: /schemas/types.yaml#/definitions/uint32
    description: transmit attenuation, in 16ths.

  fsl,receive-eq-mdB:
    $ref: /schemas/types.yaml#/definitions/uint32
    description: receive equalisation, in milli-decibels.

  fsl,no-spread-spectrum:
    $ref: /schemas/types.yaml#/definitions/flag
    description: if present, disable spread-spectrum clocking on the SATA link.

required:
  - compatible
  - reg
  - interrupts
  - clocks
  - clock-names

additionalProperties: false

examples:
  - |
    #include <dt-bindings/clock/imx6qdl-clock.h>
    #include <dt-bindings/interrupt-controller/arm-gic.h>

    sata@2200000 {
        compatible = "fsl,imx6q-ahci";
        reg = <0x02200000 0x4000>;
        interrupts = <0 39 IRQ_TYPE_LEVEL_HIGH>;
        clocks = <&clks IMX6QDL_CLK_SATA>,
                 <&clks IMX6QDL_CLK_SATA_REF_100M>,
                 <&clks IMX6QDL_CLK_AHB>;
        clock-names = "sata", "sata_ref", "ahb";
    };