ahci-common.yaml 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
  2. %YAML 1.2
  3. ---
  4. $id: http://devicetree.org/schemas/ata/ahci-common.yaml#
  5. $schema: http://devicetree.org/meta-schemas/core.yaml#
  6. title: Common Properties for Serial ATA AHCI controllers
  7. maintainers:
  8. - Hans de Goede <hdegoede@redhat.com>
  9. - Damien Le Moal <dlemoal@kernel.org>
  10. description:
  11. This document defines device tree properties for a common AHCI SATA
  12. controller implementation. It's hardware interface is supposed to
  13. conform to the technical standard defined by Intel (see Serial ATA
  14. Advanced Host Controller Interface specification for details). The
  15. document doesn't constitute a DT-node binding by itself but merely
  16. defines a set of common properties for the AHCI-compatible devices.
  17. select: false
  18. allOf:
  19. - $ref: sata-common.yaml#
  20. properties:
  21. reg:
  22. description:
  23. Generic AHCI registers space conforming to the Serial ATA AHCI
  24. specification.
  25. reg-names:
  26. description: CSR space IDs
  27. contains:
  28. const: ahci
  29. interrupts:
  30. description:
  31. Generic AHCI state change interrupt. Can be implemented either as a
  32. single line attached to the controller or as a set of the signals
  33. indicating the particular port events.
  34. minItems: 1
  35. maxItems: 32
  36. ahci-supply:
  37. description: Power regulator for AHCI controller
  38. target-supply:
  39. description: Power regulator for SATA target device
  40. phy-supply:
  41. description: Power regulator for SATA PHY
  42. phys:
  43. description: Reference to the SATA PHY node
  44. maxItems: 1
  45. phy-names:
  46. const: sata-phy
  47. hba-cap:
  48. $ref: /schemas/types.yaml#/definitions/uint32
  49. description:
  50. Bitfield of the HBA generic platform capabilities like Staggered
  51. Spin-up or Mechanical Presence Switch support. It can be used to
  52. appropriately initialize the HWinit fields of the HBA CAP register
  53. in case if the system firmware hasn't done it.
  54. ports-implemented:
  55. $ref: /schemas/types.yaml#/definitions/uint32
  56. description:
  57. Mask that indicates which ports the HBA supports. Useful if PI is not
  58. programmed by the BIOS, which is true for some embedded SoC's.
  59. patternProperties:
  60. "^sata-port@[0-9a-f]+$":
  61. $ref: '#/$defs/ahci-port'
  62. description:
  63. It is optionally possible to describe the ports as sub-nodes so
  64. to enable each port independently when dealing with multiple PHYs.
  65. required:
  66. - reg
  67. - interrupts
  68. additionalProperties: true
  69. $defs:
  70. ahci-port:
  71. $ref: /schemas/ata/sata-common.yaml#/$defs/sata-port
  72. properties:
  73. reg:
  74. description:
  75. AHCI SATA port identifier. By design AHCI controller can't have
  76. more than 32 ports due to the CAP.NP fields and PI register size
  77. constraints.
  78. minimum: 0
  79. maximum: 31
  80. phys:
  81. description: Individual AHCI SATA port PHY
  82. maxItems: 1
  83. phy-names:
  84. description: AHCI SATA port PHY ID
  85. const: sata-phy
  86. target-supply:
  87. description: Power regulator for SATA port target device
  88. hba-port-cap:
  89. $ref: /schemas/types.yaml#/definitions/uint32
  90. description:
  91. Bitfield of the HBA port-specific platform capabilities like Hot
  92. plugging, eSATA, FIS-based Switching, etc (see AHCI specification
  93. for details). It can be used to initialize the HWinit fields of
  94. the PxCMD register in case if the system firmware hasn't done it.
  95. required:
  96. - reg
  97. ...