Documentation / devicetree / bindings / pinctrl / cirrus,madera.yaml


Based on kernel version 6.11. Page generated on 2024-09-24 08:21 EST.

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 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/pinctrl/cirrus,madera.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Cirrus Logic Madera class audio CODECs pinctrl driver

maintainers:
  - patches@opensource.cirrus.com

description: |
  The Cirrus Logic Madera codecs provide a number of GPIO functions for
  interfacing to external hardware and to provide logic outputs to other devices.
  Certain groups of GPIO pins also have an alternate function, normally as an
  audio interface.
 
  The set of available GPIOs, functions and alternate function groups differs
  between CODECs so refer to the datasheet for the CODEC for further information
  on what is supported on that device.
 
  The properties for this driver exist within the parent MFD driver node.
 
  See also the core bindings for the parent MFD driver:
 
    Documentation/devicetree/bindings/mfd/cirrus,madera.yaml
 
  And the generic pinmix bindings:
 
    Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt

properties:
  pin-settings:
    description:
      One subnode is required to contain the default settings. It
      contains an arbitrary number of configuration subnodes, one for
      each group or pin configuration you want to apply as a default.
    type: object
    patternProperties:
      '-pins$':
        type: object
        allOf:
          - $ref: pincfg-node.yaml#
          - $ref: pinmux-node.yaml#
        properties:
          groups:
            description:
              Name of one pin group to configure.
            enum: [ aif1, aif2, aif3, aif4, mif1, mif2, mif3, pdmspk1,
                    pdmspk2, dmic4, dmic5, dmic6, gpio1, gpio2, gpio3,
                    gpio4, gpio5, gpio6, gpio7, gpio8, gpio9,
                    gpio10, gpio11, gpio12, gpio13, gpio14, gpio15,
                    gpio16, gpio17, gpio18, gpio19, gpio20, gpio21,
                    gpio22, gpio23, gpio24, gpio25, gpio26, gpio27,
                    gpio28, gpio29, gpio30, gpio31, gpio32, gpio33,
                    gpio34, gpio35, gpio36, gpio37, gpio38, gpio39 ]

          function:
            description:
              Name of function to assign to this group.
            enum: [ aif1, aif2, aif3, aif4, mif1, mif2, mif3,
                    pdmspk1, pdmspk2, dmic3, dmic4, dmic5,
                    dmic6, io, dsp-gpio, irq1, irq2, fll1-clk,
                    fll1-lock, fll2-clk, fll2-lock, fll3-clk,
                    fll3-lock, fllao-clk, fllao-lock, opclk,
                    opclk-async, pwm1, pwm2, spdif, asrc1-in1-lock,
                    asrc1-in2-lock, asrc2-in1-lock, asrc2-in2-lock,
                    spkl-short-circuit, spkr-short-circuit,
                    spk-shutdown, spk-overheat-shutdown,
                    spk-overheat-warn, timer1-sts, timer2-sts,
                    timer3-sts, timer4-sts, timer5-sts, timer6-sts,
                    timer7-sts, timer8-sts, log1-fifo-ne,
                    log2-fifo-ne, log3-fifo-ne, log4-fifo-ne,
                    log5-fifo-ne, log6-fifo-ne, log7-fifo-ne,
                    log8-fifo-ne ]

          bias-disable: true

          bias-bus-hold: true

          bias-pull-up: true

          bias-pull-down: true

          drive-push-pull: true

          drive-open-drain: true

          drive-strength:
            enum: [ 4, 8 ]

          input-schmitt-enable: true

          input-schmitt-disable: true

          input-debounce:
            maxItems: 1

          output-low: true

          output-high: true

        additionalProperties: false

        required:
          - groups

    additionalProperties: false

required:
  - pinctrl-0
  - pinctrl-names

additionalProperties: true