162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
262306a36Sopenharmony_ci%YAML 1.2
362306a36Sopenharmony_ci---
462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/pinctrl/cirrus,madera.yaml#
562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
662306a36Sopenharmony_ci
762306a36Sopenharmony_cititle: Cirrus Logic Madera class audio CODECs pinctrl driver
862306a36Sopenharmony_ci
962306a36Sopenharmony_cimaintainers:
1062306a36Sopenharmony_ci  - patches@opensource.cirrus.com
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_cidescription: |
1362306a36Sopenharmony_ci  The Cirrus Logic Madera codecs provide a number of GPIO functions for
1462306a36Sopenharmony_ci  interfacing to external hardware and to provide logic outputs to other devices.
1562306a36Sopenharmony_ci  Certain groups of GPIO pins also have an alternate function, normally as an
1662306a36Sopenharmony_ci  audio interface.
1762306a36Sopenharmony_ci
1862306a36Sopenharmony_ci  The set of available GPIOs, functions and alternate function groups differs
1962306a36Sopenharmony_ci  between CODECs so refer to the datasheet for the CODEC for further information
2062306a36Sopenharmony_ci  on what is supported on that device.
2162306a36Sopenharmony_ci
2262306a36Sopenharmony_ci  The properties for this driver exist within the parent MFD driver node.
2362306a36Sopenharmony_ci
2462306a36Sopenharmony_ci  See also the core bindings for the parent MFD driver:
2562306a36Sopenharmony_ci
2662306a36Sopenharmony_ci    Documentation/devicetree/bindings/mfd/cirrus,madera.yaml
2762306a36Sopenharmony_ci
2862306a36Sopenharmony_ci  And the generic pinmix bindings:
2962306a36Sopenharmony_ci
3062306a36Sopenharmony_ci    Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt
3162306a36Sopenharmony_ci
3262306a36Sopenharmony_ciproperties:
3362306a36Sopenharmony_ci  pin-settings:
3462306a36Sopenharmony_ci    description:
3562306a36Sopenharmony_ci      One subnode is required to contain the default settings. It
3662306a36Sopenharmony_ci      contains an arbitrary number of configuration subnodes, one for
3762306a36Sopenharmony_ci      each group or pin configuration you want to apply as a default.
3862306a36Sopenharmony_ci    type: object
3962306a36Sopenharmony_ci    patternProperties:
4062306a36Sopenharmony_ci      '-pins$':
4162306a36Sopenharmony_ci        type: object
4262306a36Sopenharmony_ci        allOf:
4362306a36Sopenharmony_ci          - $ref: pincfg-node.yaml#
4462306a36Sopenharmony_ci          - $ref: pinmux-node.yaml#
4562306a36Sopenharmony_ci        properties:
4662306a36Sopenharmony_ci          groups:
4762306a36Sopenharmony_ci            description:
4862306a36Sopenharmony_ci              Name of one pin group to configure.
4962306a36Sopenharmony_ci            enum: [ aif1, aif2, aif3, aif4, mif1, mif2, mif3, pdmspk1,
5062306a36Sopenharmony_ci                    pdmspk2, dmic4, dmic5, dmic6, gpio1, gpio2, gpio3,
5162306a36Sopenharmony_ci                    gpio4, gpio5, gpio6, gpio7, gpio8, gpio9,
5262306a36Sopenharmony_ci                    gpio10, gpio11, gpio12, gpio13, gpio14, gpio15,
5362306a36Sopenharmony_ci                    gpio16, gpio17, gpio18, gpio19, gpio20, gpio21,
5462306a36Sopenharmony_ci                    gpio22, gpio23, gpio24, gpio25, gpio26, gpio27,
5562306a36Sopenharmony_ci                    gpio28, gpio29, gpio30, gpio31, gpio32, gpio33,
5662306a36Sopenharmony_ci                    gpio34, gpio35, gpio36, gpio37, gpio38, gpio39 ]
5762306a36Sopenharmony_ci
5862306a36Sopenharmony_ci          function:
5962306a36Sopenharmony_ci            description:
6062306a36Sopenharmony_ci              Name of function to assign to this group.
6162306a36Sopenharmony_ci            enum: [ aif1, aif2, aif3, aif4, mif1, mif2, mif3,
6262306a36Sopenharmony_ci                    pdmspk1, pdmspk2, dmic3, dmic4, dmic5,
6362306a36Sopenharmony_ci                    dmic6, io, dsp-gpio, irq1, irq2, fll1-clk,
6462306a36Sopenharmony_ci                    fll1-lock, fll2-clk, fll2-lock, fll3-clk,
6562306a36Sopenharmony_ci                    fll3-lock, fllao-clk, fllao-lock, opclk,
6662306a36Sopenharmony_ci                    opclk-async, pwm1, pwm2, spdif, asrc1-in1-lock,
6762306a36Sopenharmony_ci                    asrc1-in2-lock, asrc2-in1-lock, asrc2-in2-lock,
6862306a36Sopenharmony_ci                    spkl-short-circuit, spkr-short-circuit,
6962306a36Sopenharmony_ci                    spk-shutdown, spk-overheat-shutdown,
7062306a36Sopenharmony_ci                    spk-overheat-warn, timer1-sts, timer2-sts,
7162306a36Sopenharmony_ci                    timer3-sts, timer4-sts, timer5-sts, timer6-sts,
7262306a36Sopenharmony_ci                    timer7-sts, timer8-sts, log1-fifo-ne,
7362306a36Sopenharmony_ci                    log2-fifo-ne, log3-fifo-ne, log4-fifo-ne,
7462306a36Sopenharmony_ci                    log5-fifo-ne, log6-fifo-ne, log7-fifo-ne,
7562306a36Sopenharmony_ci                    log8-fifo-ne ]
7662306a36Sopenharmony_ci
7762306a36Sopenharmony_ci          bias-disable: true
7862306a36Sopenharmony_ci
7962306a36Sopenharmony_ci          bias-bus-hold: true
8062306a36Sopenharmony_ci
8162306a36Sopenharmony_ci          bias-pull-up: true
8262306a36Sopenharmony_ci
8362306a36Sopenharmony_ci          bias-pull-down: true
8462306a36Sopenharmony_ci
8562306a36Sopenharmony_ci          drive-push-pull: true
8662306a36Sopenharmony_ci
8762306a36Sopenharmony_ci          drive-open-drain: true
8862306a36Sopenharmony_ci
8962306a36Sopenharmony_ci          drive-strength:
9062306a36Sopenharmony_ci            enum: [ 4, 8 ]
9162306a36Sopenharmony_ci
9262306a36Sopenharmony_ci          input-schmitt-enable: true
9362306a36Sopenharmony_ci
9462306a36Sopenharmony_ci          input-schmitt-disable: true
9562306a36Sopenharmony_ci
9662306a36Sopenharmony_ci          input-debounce: true
9762306a36Sopenharmony_ci
9862306a36Sopenharmony_ci          output-low: true
9962306a36Sopenharmony_ci
10062306a36Sopenharmony_ci          output-high: true
10162306a36Sopenharmony_ci
10262306a36Sopenharmony_ci        additionalProperties: false
10362306a36Sopenharmony_ci
10462306a36Sopenharmony_ci        required:
10562306a36Sopenharmony_ci          - groups
10662306a36Sopenharmony_ci
10762306a36Sopenharmony_ci    additionalProperties: false
10862306a36Sopenharmony_ci
10962306a36Sopenharmony_cirequired:
11062306a36Sopenharmony_ci  - pinctrl-0
11162306a36Sopenharmony_ci  - pinctrl-names
11262306a36Sopenharmony_ci
11362306a36Sopenharmony_ciadditionalProperties: true
114