summaryrefslogtreecommitdiffstats
path: root/Documentation/devicetree/bindings/pinctrl/ti,dra7-iodelay.yaml
blob: a798552c1ac2d1b5d888abe80f1cf1b33ba23d29 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/pinctrl/ti,dra7-iodelay.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Pin configuration for TI IODELAY controller

maintainers:
  - Nishanth Menon <nm@ti.com>
  - Bhargav Joshi <j.bhargav.u@gmail.com>

description:
  TI dra7 based SoCs such as am57xx have a controller for setting the IO delay
  for each pin. For most part the IO delay values are programmed by the
  bootloader, but some pins need to be configured dynamically by the kernel such
  as the MMC pins.

properties:
  compatible:
    const: ti,dra7-iodelay

  reg:
    maxItems: 1

  '#address-cells':
    const: 1

  '#size-cells':
    const: 0

  '#pinctrl-cells':
    const: 2

patternProperties:
  ^.*_conf$:
    type: object
    additionalProperties: false

    properties:
      pinctrl-pin-array:
        $ref: /schemas/types.yaml#/definitions/uint32-array
        description: |
          An array of 32-bit integers defining the pin delay configuration.

    required:
      - pinctrl-pin-array

required:
  - compatible
  - reg
  - '#address-cells'
  - '#size-cells'
  - '#pinctrl-cells'

additionalProperties: false

examples:
  - |
    #include <dt-bindings/pinctrl/dra.h>

    padconf@4844a000 {
        compatible = "ti,dra7-iodelay";
        reg = <0x4844a000 0x0d1c>;
        #address-cells = <1>;
        #size-cells = <0>;
        #pinctrl-cells = <2>;

        mmc2_iodelay_3v3_conf {
            pinctrl-pin-array = <
            0x18c A_DELAY_PS(0) G_DELAY_PS(120) /* CFG_GPMC_A19_IN */
            0x1a4 A_DELAY_PS(265) G_DELAY_PS(360) /* CFG_GPMC_A20_IN */
            0x1b0 A_DELAY_PS(0) G_DELAY_PS(120) /* CFG_GPMC_A21_IN */
            0x1bc A_DELAY_PS(0) G_DELAY_PS(120) /* CFG_GPMC_A22_IN */
            0x1c8 A_DELAY_PS(287) G_DELAY_PS(420) /* CFG_GPMC_A23_IN */
            0x1d4 A_DELAY_PS(144) G_DELAY_PS(240) /* CFG_GPMC_A24_IN */
            0x1e0 A_DELAY_PS(0) G_DELAY_PS(0) /* CFG_GPMC_A25_IN */
            0x1ec A_DELAY_PS(120) G_DELAY_PS(0) /* CFG_GPMC_A26_IN */
            0x1f8 A_DELAY_PS(120) G_DELAY_PS(180) /* CFG_GPMC_A27_IN */
            0x360 A_DELAY_PS(0) G_DELAY_PS(0) /* CFG_GPMC_CS1_IN */
            >;
        };
    };