18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
28c2ecf20Sopenharmony_ci%YAML 1.2
38c2ecf20Sopenharmony_ci---
48c2ecf20Sopenharmony_ci$id: http://devicetree.org/schemas/pinctrl/cirrus,lochnagar.yaml#
58c2ecf20Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
68c2ecf20Sopenharmony_ci
78c2ecf20Sopenharmony_cititle: Cirrus Logic Lochnagar Audio Development Board
88c2ecf20Sopenharmony_ci
98c2ecf20Sopenharmony_cimaintainers:
108c2ecf20Sopenharmony_ci  - patches@opensource.cirrus.com
118c2ecf20Sopenharmony_ci
128c2ecf20Sopenharmony_cidescription: |
138c2ecf20Sopenharmony_ci  Lochnagar is an evaluation and development board for Cirrus Logic
148c2ecf20Sopenharmony_ci  Smart CODEC and Amp devices. It allows the connection of most Cirrus
158c2ecf20Sopenharmony_ci  Logic devices on mini-cards, as well as allowing connection of various
168c2ecf20Sopenharmony_ci  application processor systems to provide a full evaluation platform.
178c2ecf20Sopenharmony_ci  Audio system topology, clocking and power can all be controlled through
188c2ecf20Sopenharmony_ci  the Lochnagar, allowing the device under test to be used in a variety of
198c2ecf20Sopenharmony_ci  possible use cases.
208c2ecf20Sopenharmony_ci
218c2ecf20Sopenharmony_ci  This binding document describes the binding for the pinctrl portion of
228c2ecf20Sopenharmony_ci  the driver.
238c2ecf20Sopenharmony_ci
248c2ecf20Sopenharmony_ci  Also see these documents for generic binding information:
258c2ecf20Sopenharmony_ci    [1] GPIO : ../gpio/gpio.txt
268c2ecf20Sopenharmony_ci    [2] Pinctrl: ../pinctrl/pinctrl-bindings.txt
278c2ecf20Sopenharmony_ci
288c2ecf20Sopenharmony_ci  And these for relevant defines:
298c2ecf20Sopenharmony_ci    [3] include/dt-bindings/pinctrl/lochnagar.h
308c2ecf20Sopenharmony_ci
318c2ecf20Sopenharmony_ci  This binding must be part of the Lochnagar MFD binding:
328c2ecf20Sopenharmony_ci    [4] ../mfd/cirrus,lochnagar.yaml
338c2ecf20Sopenharmony_ci
348c2ecf20Sopenharmony_ciproperties:
358c2ecf20Sopenharmony_ci  compatible:
368c2ecf20Sopenharmony_ci    enum:
378c2ecf20Sopenharmony_ci      - cirrus,lochnagar-pinctrl
388c2ecf20Sopenharmony_ci
398c2ecf20Sopenharmony_ci  gpio-controller: true
408c2ecf20Sopenharmony_ci
418c2ecf20Sopenharmony_ci  '#gpio-cells':
428c2ecf20Sopenharmony_ci    description:
438c2ecf20Sopenharmony_ci      The first cell is the pin number and the second cell is used
448c2ecf20Sopenharmony_ci      to specify optional parameters.
458c2ecf20Sopenharmony_ci    const: 2
468c2ecf20Sopenharmony_ci
478c2ecf20Sopenharmony_ci  gpio-ranges:
488c2ecf20Sopenharmony_ci    description:
498c2ecf20Sopenharmony_ci      Range of pins managed by the GPIO controller, see [1]. Both the
508c2ecf20Sopenharmony_ci      GPIO and Pinctrl base should be set to zero and the count to the
518c2ecf20Sopenharmony_ci      appropriate of the LOCHNAGARx_PIN_NUM_GPIOS define, see [3].
528c2ecf20Sopenharmony_ci    maxItems: 1
538c2ecf20Sopenharmony_ci
548c2ecf20Sopenharmony_ci  pinctrl-0:
558c2ecf20Sopenharmony_ci    description:
568c2ecf20Sopenharmony_ci      A phandle to the default pinctrl state.
578c2ecf20Sopenharmony_ci
588c2ecf20Sopenharmony_ci  pinctrl-names:
598c2ecf20Sopenharmony_ci    description:
608c2ecf20Sopenharmony_ci      A pinctrl state named "default" must be defined.
618c2ecf20Sopenharmony_ci    const: default
628c2ecf20Sopenharmony_ci
638c2ecf20Sopenharmony_ci  pin-settings:
648c2ecf20Sopenharmony_ci    type: object
658c2ecf20Sopenharmony_ci    patternProperties:
668c2ecf20Sopenharmony_ci      '-pins$':
678c2ecf20Sopenharmony_ci        description:
688c2ecf20Sopenharmony_ci          The pin configurations are defined as a child of the pinctrl
698c2ecf20Sopenharmony_ci          states node, see [2]. Each sub-node can have the following
708c2ecf20Sopenharmony_ci          properties.
718c2ecf20Sopenharmony_ci        type: object
728c2ecf20Sopenharmony_ci        allOf:
738c2ecf20Sopenharmony_ci          - $ref: pincfg-node.yaml#
748c2ecf20Sopenharmony_ci          - $ref: pinmux-node.yaml#
758c2ecf20Sopenharmony_ci
768c2ecf20Sopenharmony_ci        properties:
778c2ecf20Sopenharmony_ci          groups:
788c2ecf20Sopenharmony_ci            description:
798c2ecf20Sopenharmony_ci              A list of groups to select (either this or "pins" must be
808c2ecf20Sopenharmony_ci              specified), available groups.
818c2ecf20Sopenharmony_ci            enum: [ codec-aif1, codec-aif2, codec-aif3, dsp-aif1,
828c2ecf20Sopenharmony_ci                    dsp-aif2, psia1, psia2, gf-aif1, gf-aif2, gf-aif3,
838c2ecf20Sopenharmony_ci                    gf-aif4, spdif-aif, usb-aif1, usb-aif2, adat-aif,
848c2ecf20Sopenharmony_ci                    soundcard-aif ]
858c2ecf20Sopenharmony_ci
868c2ecf20Sopenharmony_ci          pins:
878c2ecf20Sopenharmony_ci            description:
888c2ecf20Sopenharmony_ci              A list of pin names to select (either this or "groups" must
898c2ecf20Sopenharmony_ci              be specified), available pins.
908c2ecf20Sopenharmony_ci            enum: [ fpga-gpio1, fpga-gpio2, fpga-gpio3, fpga-gpio4,
918c2ecf20Sopenharmony_ci                    fpga-gpio5, fpga-gpio6, codec-gpio1, codec-gpio2,
928c2ecf20Sopenharmony_ci                    codec-gpio3, codec-gpio4, codec-gpio5, codec-gpio6,
938c2ecf20Sopenharmony_ci                    codec-gpio7, codec-gpio8, dsp-gpio1, dsp-gpio2,
948c2ecf20Sopenharmony_ci                    dsp-gpio3, dsp-gpio4, dsp-gpio5, dsp-gpio6,
958c2ecf20Sopenharmony_ci                    gf-gpio2, gf-gpio3, gf-gpio7, codec-aif1-bclk,
968c2ecf20Sopenharmony_ci                    codec-aif1-rxdat, codec-aif1-lrclk, codec-aif1-txdat,
978c2ecf20Sopenharmony_ci                    codec-aif2-bclk, codec-aif2-rxdat, codec-aif2-lrclk,
988c2ecf20Sopenharmony_ci                    codec-aif2-txdat, codec-aif3-bclk, codec-aif3-rxdat,
998c2ecf20Sopenharmony_ci                    codec-aif3-lrclk, codec-aif3-txdat, dsp-aif1-bclk,
1008c2ecf20Sopenharmony_ci                    dsp-aif1-rxdat, dsp-aif1-lrclk, dsp-aif1-txdat,
1018c2ecf20Sopenharmony_ci                    dsp-aif2-bclk, dsp-aif2-rxdat, dsp-aif2-lrclk,
1028c2ecf20Sopenharmony_ci                    dsp-aif2-txdat, psia1-bclk, psia1-rxdat, psia1-lrclk,
1038c2ecf20Sopenharmony_ci                    psia1-txdat, psia2-bclk, psia2-rxdat, psia2-lrclk,
1048c2ecf20Sopenharmony_ci                    psia2-txdat, gf-aif3-bclk, gf-aif3-rxdat,
1058c2ecf20Sopenharmony_ci                    gf-aif3-lrclk, gf-aif3-txdat, gf-aif4-bclk,
1068c2ecf20Sopenharmony_ci                    gf-aif4-rxdat, gf-aif4-lrclk, gf-aif4-txdat,
1078c2ecf20Sopenharmony_ci                    gf-aif1-bclk, gf-aif1-rxdat, gf-aif1-lrclk,
1088c2ecf20Sopenharmony_ci                    gf-aif1-txdat, gf-aif2-bclk, gf-aif2-rxdat,
1098c2ecf20Sopenharmony_ci                    gf-aif2-lrclk, gf-aif2-txdat, dsp-uart1-rx,
1108c2ecf20Sopenharmony_ci                    dsp-uart1-tx, dsp-uart2-rx, dsp-uart2-tx,
1118c2ecf20Sopenharmony_ci                    gf-uart2-rx, gf-uart2-tx, usb-uart-rx, codec-pdmclk1,
1128c2ecf20Sopenharmony_ci                    codec-pdmdat1, codec-pdmclk2, codec-pdmdat2,
1138c2ecf20Sopenharmony_ci                    codec-dmicclk1, codec-dmicdat1, codec-dmicclk2,
1148c2ecf20Sopenharmony_ci                    codec-dmicdat2, codec-dmicclk3, codec-dmicdat3,
1158c2ecf20Sopenharmony_ci                    codec-dmicclk4, codec-dmicdat4, dsp-dmicclk1,
1168c2ecf20Sopenharmony_ci                    dsp-dmicdat1, dsp-dmicclk2, dsp-dmicdat2, i2c2-scl,
1178c2ecf20Sopenharmony_ci                    i2c2-sda, i2c3-scl, i2c3-sda, i2c4-scl, i2c4-sda,
1188c2ecf20Sopenharmony_ci                    dsp-standby, codec-mclk1, codec-mclk2, dsp-clkin,
1198c2ecf20Sopenharmony_ci                    psia1-mclk, psia2-mclk, gf-gpio1, gf-gpio5,
1208c2ecf20Sopenharmony_ci                    dsp-gpio20, led1, led2 ]
1218c2ecf20Sopenharmony_ci
1228c2ecf20Sopenharmony_ci          function:
1238c2ecf20Sopenharmony_ci            description:
1248c2ecf20Sopenharmony_ci              The mux function to select, available functions.
1258c2ecf20Sopenharmony_ci            enum: [ aif, fpga-gpio1, fpga-gpio2, fpga-gpio3, fpga-gpio4,
1268c2ecf20Sopenharmony_ci                    fpga-gpio5, fpga-gpio6, codec-gpio1, codec-gpio2,
1278c2ecf20Sopenharmony_ci                    codec-gpio3, codec-gpio4, codec-gpio5, codec-gpio6,
1288c2ecf20Sopenharmony_ci                    codec-gpio7, codec-gpio8, dsp-gpio1, dsp-gpio2,
1298c2ecf20Sopenharmony_ci                    dsp-gpio3, dsp-gpio4, dsp-gpio5, dsp-gpio6,
1308c2ecf20Sopenharmony_ci                    gf-gpio2, gf-gpio3, gf-gpio7, gf-gpio1, gf-gpio5,
1318c2ecf20Sopenharmony_ci                    dsp-gpio20, codec-clkout, dsp-clkout, pmic-32k,
1328c2ecf20Sopenharmony_ci                    spdif-clkout, clk-12m288, clk-11m2986, clk-24m576,
1338c2ecf20Sopenharmony_ci                    clk-22m5792, xmos-mclk, gf-clkout1, gf-mclk1,
1348c2ecf20Sopenharmony_ci                    gf-mclk3, gf-mclk2, gf-clkout2, codec-mclk1,
1358c2ecf20Sopenharmony_ci                    codec-mclk2, dsp-clkin, psia1-mclk, psia2-mclk,
1368c2ecf20Sopenharmony_ci                    spdif-mclk, codec-irq, codec-reset, dsp-reset,
1378c2ecf20Sopenharmony_ci                    dsp-irq, dsp-standby, codec-pdmclk1, codec-pdmdat1,
1388c2ecf20Sopenharmony_ci                    codec-pdmclk2, codec-pdmdat2, codec-dmicclk1,
1398c2ecf20Sopenharmony_ci                    codec-dmicdat1, codec-dmicclk2, codec-dmicdat2,
1408c2ecf20Sopenharmony_ci                    codec-dmicclk3, codec-dmicdat3, codec-dmicclk4,
1418c2ecf20Sopenharmony_ci                    codec-dmicdat4, dsp-dmicclk1, dsp-dmicdat1,
1428c2ecf20Sopenharmony_ci                    dsp-dmicclk2, dsp-dmicdat2, dsp-uart1-rx,
1438c2ecf20Sopenharmony_ci                    dsp-uart1-tx, dsp-uart2-rx, dsp-uart2-tx,
1448c2ecf20Sopenharmony_ci                    gf-uart2-rx, gf-uart2-tx, usb-uart-rx, usb-uart-tx,
1458c2ecf20Sopenharmony_ci                    i2c2-scl, i2c2-sda, i2c3-scl, i2c3-sda, i2c4-scl,
1468c2ecf20Sopenharmony_ci                    i2c4-sda, spdif-aif, psia1, psia1-bclk, psia1-lrclk,
1478c2ecf20Sopenharmony_ci                    psia1-rxdat, psia1-txdat, psia2, psia2-bclk,
1488c2ecf20Sopenharmony_ci                    psia2-lrclk, psia2-rxdat, psia2-txdat, codec-aif1,
1498c2ecf20Sopenharmony_ci                    codec-aif1-bclk, codec-aif1-lrclk, codec-aif1-rxdat,
1508c2ecf20Sopenharmony_ci                    codec-aif1-txdat, codec-aif2, codec-aif2-bclk,
1518c2ecf20Sopenharmony_ci                    codec-aif2-lrclk, codec-aif2-rxdat, codec-aif2-txdat,
1528c2ecf20Sopenharmony_ci                    codec-aif3, codec-aif3-bclk, codec-aif3-lrclk,
1538c2ecf20Sopenharmony_ci                    codec-aif3-rxdat, codec-aif3-txdat, dsp-aif1,
1548c2ecf20Sopenharmony_ci                    dsp-aif1-bclk, dsp-aif1-lrclk, dsp-aif1-rxdat,
1558c2ecf20Sopenharmony_ci                    dsp-aif1-txdat, dsp-aif2, dsp-aif2-bclk,
1568c2ecf20Sopenharmony_ci                    dsp-aif2-lrclk, dsp-aif2-rxdat, dsp-aif2-txdat,
1578c2ecf20Sopenharmony_ci                    gf-aif3, gf-aif3-bclk, gf-aif3-lrclk, gf-aif3-rxdat,
1588c2ecf20Sopenharmony_ci                    gf-aif3-txdat, gf-aif4, gf-aif4-bclk, gf-aif4-lrclk,
1598c2ecf20Sopenharmony_ci                    gf-aif4-rxdat, gf-aif4-txdat, gf-aif1, gf-aif1-bclk,
1608c2ecf20Sopenharmony_ci                    gf-aif1-lrclk, gf-aif1-rxdat, gf-aif1-txdat, gf-aif2,
1618c2ecf20Sopenharmony_ci                    gf-aif2-bclk, gf-aif2-lrclk, gf-aif2-rxdat,
1628c2ecf20Sopenharmony_ci                    gf-aif2-txdat, usb-aif1, usb-aif2, adat-aif,
1638c2ecf20Sopenharmony_ci                    soundcard-aif ]
1648c2ecf20Sopenharmony_ci
1658c2ecf20Sopenharmony_ci          output-enable:
1668c2ecf20Sopenharmony_ci            description:
1678c2ecf20Sopenharmony_ci              Specifies that an AIF group will be used as a master
1688c2ecf20Sopenharmony_ci              interface (either this or input-enable is required if a
1698c2ecf20Sopenharmony_ci              group is being muxed to an AIF)
1708c2ecf20Sopenharmony_ci
1718c2ecf20Sopenharmony_ci          input-enable:
1728c2ecf20Sopenharmony_ci            description:
1738c2ecf20Sopenharmony_ci              Specifies that an AIF group will be used as a slave
1748c2ecf20Sopenharmony_ci              interface (either this or output-enable is required if a
1758c2ecf20Sopenharmony_ci              group is being muxed to an AIF)
1768c2ecf20Sopenharmony_ci
1778c2ecf20Sopenharmony_ci        additionalProperties: false
1788c2ecf20Sopenharmony_ci
1798c2ecf20Sopenharmony_ci        required:
1808c2ecf20Sopenharmony_ci          - function
1818c2ecf20Sopenharmony_ci
1828c2ecf20Sopenharmony_ci    additionalProperties: false
1838c2ecf20Sopenharmony_ci
1848c2ecf20Sopenharmony_cirequired:
1858c2ecf20Sopenharmony_ci  - compatible
1868c2ecf20Sopenharmony_ci  - gpio-controller
1878c2ecf20Sopenharmony_ci  - '#gpio-cells'
1888c2ecf20Sopenharmony_ci  - gpio-ranges
1898c2ecf20Sopenharmony_ci  - pinctrl-0
1908c2ecf20Sopenharmony_ci  - pinctrl-names
1918c2ecf20Sopenharmony_ci
1928c2ecf20Sopenharmony_ciadditionalProperties: false
193