xref: /freebsd/sys/contrib/device-tree/Bindings/pinctrl/cirrus,madera.yaml (revision fac71e4e09885bb2afa3d984a0c239a52e1a7418)
1c66ec88fSEmmanuel Vadot# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2c66ec88fSEmmanuel Vadot%YAML 1.2
3c66ec88fSEmmanuel Vadot---
4c66ec88fSEmmanuel Vadot$id: http://devicetree.org/schemas/pinctrl/cirrus,madera.yaml#
5c66ec88fSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6c66ec88fSEmmanuel Vadot
7c66ec88fSEmmanuel Vadottitle: Cirrus Logic Madera class audio CODECs pinctrl driver
8c66ec88fSEmmanuel Vadot
9c66ec88fSEmmanuel Vadotmaintainers:
10c66ec88fSEmmanuel Vadot  - patches@opensource.cirrus.com
11c66ec88fSEmmanuel Vadot
12c66ec88fSEmmanuel Vadotdescription: |
13c66ec88fSEmmanuel Vadot  The Cirrus Logic Madera codecs provide a number of GPIO functions for
14c66ec88fSEmmanuel Vadot  interfacing to external hardware and to provide logic outputs to other devices.
15c66ec88fSEmmanuel Vadot  Certain groups of GPIO pins also have an alternate function, normally as an
16c66ec88fSEmmanuel Vadot  audio interface.
17c66ec88fSEmmanuel Vadot
18c66ec88fSEmmanuel Vadot  The set of available GPIOs, functions and alternate function groups differs
19c66ec88fSEmmanuel Vadot  between CODECs so refer to the datasheet for the CODEC for further information
20c66ec88fSEmmanuel Vadot  on what is supported on that device.
21c66ec88fSEmmanuel Vadot
22c66ec88fSEmmanuel Vadot  The properties for this driver exist within the parent MFD driver node.
23c66ec88fSEmmanuel Vadot
24c66ec88fSEmmanuel Vadot  See also the core bindings for the parent MFD driver:
25c66ec88fSEmmanuel Vadot
26c66ec88fSEmmanuel Vadot    Documentation/devicetree/bindings/mfd/cirrus,madera.yaml
27c66ec88fSEmmanuel Vadot
28c66ec88fSEmmanuel Vadot  And the generic pinmix bindings:
29c66ec88fSEmmanuel Vadot
30c66ec88fSEmmanuel Vadot    Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt
31c66ec88fSEmmanuel Vadot
32c66ec88fSEmmanuel Vadotproperties:
33c66ec88fSEmmanuel Vadot  pin-settings:
34c66ec88fSEmmanuel Vadot    description:
35c66ec88fSEmmanuel Vadot      One subnode is required to contain the default settings. It
36c66ec88fSEmmanuel Vadot      contains an arbitrary number of configuration subnodes, one for
37c66ec88fSEmmanuel Vadot      each group or pin configuration you want to apply as a default.
38c66ec88fSEmmanuel Vadot    type: object
39c66ec88fSEmmanuel Vadot    patternProperties:
40c66ec88fSEmmanuel Vadot      '-pins$':
41c66ec88fSEmmanuel Vadot        type: object
42c66ec88fSEmmanuel Vadot        allOf:
43*fac71e4eSEmmanuel Vadot          - $ref: pincfg-node.yaml#
44*fac71e4eSEmmanuel Vadot          - $ref: pinmux-node.yaml#
45c66ec88fSEmmanuel Vadot        properties:
46c66ec88fSEmmanuel Vadot          groups:
47c66ec88fSEmmanuel Vadot            description:
48c66ec88fSEmmanuel Vadot              Name of one pin group to configure.
49c66ec88fSEmmanuel Vadot            enum: [ aif1, aif2, aif3, aif4, mif1, mif2, mif3, pdmspk1,
50c66ec88fSEmmanuel Vadot                    pdmspk2, dmic4, dmic5, dmic6, gpio1, gpio2, gpio3,
51c9ccf3a3SEmmanuel Vadot                    gpio4, gpio5, gpio6, gpio7, gpio8, gpio9,
52c66ec88fSEmmanuel Vadot                    gpio10, gpio11, gpio12, gpio13, gpio14, gpio15,
53c9ccf3a3SEmmanuel Vadot                    gpio16, gpio17, gpio18, gpio19, gpio20, gpio21,
54c9ccf3a3SEmmanuel Vadot                    gpio22, gpio23, gpio24, gpio25, gpio26, gpio27,
55c9ccf3a3SEmmanuel Vadot                    gpio28, gpio29, gpio30, gpio31, gpio32, gpio33,
56c9ccf3a3SEmmanuel Vadot                    gpio34, gpio35, gpio36, gpio37, gpio38, gpio39 ]
57c66ec88fSEmmanuel Vadot
58c66ec88fSEmmanuel Vadot          function:
59c66ec88fSEmmanuel Vadot            description:
60c66ec88fSEmmanuel Vadot              Name of function to assign to this group.
61c66ec88fSEmmanuel Vadot            enum: [ aif1, aif2, aif3, aif4, mif1, mif2, mif3,
62c66ec88fSEmmanuel Vadot                    pdmspk1, pdmspk2, dmic3, dmic4, dmic5,
63c66ec88fSEmmanuel Vadot                    dmic6, io, dsp-gpio, irq1, irq2, fll1-clk,
64c66ec88fSEmmanuel Vadot                    fll1-lock, fll2-clk, fll2-lock, fll3-clk,
65c66ec88fSEmmanuel Vadot                    fll3-lock, fllao-clk, fllao-lock, opclk,
66c66ec88fSEmmanuel Vadot                    opclk-async, pwm1, pwm2, spdif, asrc1-in1-lock,
67c66ec88fSEmmanuel Vadot                    asrc1-in2-lock, asrc2-in1-lock, asrc2-in2-lock,
68c66ec88fSEmmanuel Vadot                    spkl-short-circuit, spkr-short-circuit,
69c66ec88fSEmmanuel Vadot                    spk-shutdown, spk-overheat-shutdown,
70c66ec88fSEmmanuel Vadot                    spk-overheat-warn, timer1-sts, timer2-sts,
71c66ec88fSEmmanuel Vadot                    timer3-sts, timer4-sts, timer5-sts, timer6-sts,
72c66ec88fSEmmanuel Vadot                    timer7-sts, timer8-sts, log1-fifo-ne,
73c66ec88fSEmmanuel Vadot                    log2-fifo-ne, log3-fifo-ne, log4-fifo-ne,
74c66ec88fSEmmanuel Vadot                    log5-fifo-ne, log6-fifo-ne, log7-fifo-ne,
75c66ec88fSEmmanuel Vadot                    log8-fifo-ne ]
76c66ec88fSEmmanuel Vadot
77c66ec88fSEmmanuel Vadot          bias-disable: true
78c66ec88fSEmmanuel Vadot
79c66ec88fSEmmanuel Vadot          bias-bus-hold: true
80c66ec88fSEmmanuel Vadot
81c66ec88fSEmmanuel Vadot          bias-pull-up: true
82c66ec88fSEmmanuel Vadot
83c66ec88fSEmmanuel Vadot          bias-pull-down: true
84c66ec88fSEmmanuel Vadot
85c66ec88fSEmmanuel Vadot          drive-push-pull: true
86c66ec88fSEmmanuel Vadot
87c66ec88fSEmmanuel Vadot          drive-open-drain: true
88c66ec88fSEmmanuel Vadot
89c66ec88fSEmmanuel Vadot          drive-strength:
90c66ec88fSEmmanuel Vadot            enum: [ 4, 8 ]
91c66ec88fSEmmanuel Vadot
92c66ec88fSEmmanuel Vadot          input-schmitt-enable: true
93c66ec88fSEmmanuel Vadot
94c66ec88fSEmmanuel Vadot          input-schmitt-disable: true
95c66ec88fSEmmanuel Vadot
96c66ec88fSEmmanuel Vadot          input-debounce: true
97c66ec88fSEmmanuel Vadot
98c66ec88fSEmmanuel Vadot          output-low: true
99c66ec88fSEmmanuel Vadot
100c66ec88fSEmmanuel Vadot          output-high: true
101c66ec88fSEmmanuel Vadot
102c66ec88fSEmmanuel Vadot        additionalProperties: false
103c66ec88fSEmmanuel Vadot
104c66ec88fSEmmanuel Vadot        required:
105c66ec88fSEmmanuel Vadot          - groups
106c66ec88fSEmmanuel Vadot
107c66ec88fSEmmanuel Vadot    additionalProperties: false
108c66ec88fSEmmanuel Vadot
109c66ec88fSEmmanuel Vadotrequired:
110c66ec88fSEmmanuel Vadot  - pinctrl-0
111c66ec88fSEmmanuel Vadot  - pinctrl-names
1126be33864SEmmanuel Vadot
1136be33864SEmmanuel VadotadditionalProperties: true
114