| Cirrus Logic Lochnagar Audio Development Board |
| |
| Lochnagar is an evaluation and development board for Cirrus Logic |
| Smart CODEC and Amp devices. It allows the connection of most Cirrus |
| Logic devices on mini-cards, as well as allowing connection of |
| various application processor systems to provide a full evaluation |
| platform. Audio system topology, clocking and power can all be |
| controlled through the Lochnagar, allowing the device under test |
| to be used in a variety of possible use cases. |
| |
| This binding document describes the binding for the pinctrl portion |
| of the driver. |
| |
| Also see these documents for generic binding information: |
| [1] GPIO : ../gpio/gpio.txt |
| [2] Pinctrl: ../pinctrl/pinctrl-bindings.txt |
| |
| And these for relevant defines: |
| [3] include/dt-bindings/pinctrl/lochnagar.h |
| |
| This binding must be part of the Lochnagar MFD binding: |
| [4] ../mfd/cirrus,lochnagar.txt |
| |
| Required properties: |
| |
| - compatible : One of the following strings: |
| "cirrus,lochnagar-pinctrl" |
| |
| - gpio-controller : Indicates this device is a GPIO controller. |
| - #gpio-cells : Must be 2. The first cell is the pin number, see |
| [3] for available pins and the second cell is used to specify |
| optional parameters, see [1]. |
| - gpio-ranges : Range of pins managed by the GPIO controller, see |
| [1]. Both the GPIO and Pinctrl base should be set to zero and the |
| count to the appropriate of the LOCHNAGARx_PIN_NUM_GPIOS define, |
| see [3]. |
| |
| - pinctrl-names : A pinctrl state named "default" must be defined. |
| - pinctrl-0 : A phandle to the default pinctrl state. |
| |
| Required sub-nodes: |
| |
| The pin configurations are defined as a child of the pinctrl states |
| node, see [2]. Each sub-node can have the following properties: |
| - groups : A list of groups to select (either this or "pins" must be |
| specified), available groups: |
| codec-aif1, codec-aif2, codec-aif3, dsp-aif1, dsp-aif2, psia1, |
| psia2, gf-aif1, gf-aif2, gf-aif3, gf-aif4, spdif-aif, usb-aif1, |
| usb-aif2, adat-aif, soundcard-aif |
| - pins : A list of pin names to select (either this or "groups" must |
| be specified), available pins: |
| fpga-gpio1, fpga-gpio2, fpga-gpio3, fpga-gpio4, fpga-gpio5, |
| fpga-gpio6, codec-gpio1, codec-gpio2, codec-gpio3, codec-gpio4, |
| codec-gpio5, codec-gpio6, codec-gpio7, codec-gpio8, dsp-gpio1, |
| dsp-gpio2, dsp-gpio3, dsp-gpio4, dsp-gpio5, dsp-gpio6, gf-gpio2, |
| gf-gpio3, gf-gpio7, codec-aif1-bclk, codec-aif1-rxdat, |
| codec-aif1-lrclk, codec-aif1-txdat, codec-aif2-bclk, |
| codec-aif2-rxdat, codec-aif2-lrclk, codec-aif2-txdat, |
| codec-aif3-bclk, codec-aif3-rxdat, codec-aif3-lrclk, |
| codec-aif3-txdat, dsp-aif1-bclk, dsp-aif1-rxdat, dsp-aif1-lrclk, |
| dsp-aif1-txdat, dsp-aif2-bclk, dsp-aif2-rxdat, |
| dsp-aif2-lrclk, dsp-aif2-txdat, psia1-bclk, psia1-rxdat, |
| psia1-lrclk, psia1-txdat, psia2-bclk, psia2-rxdat, psia2-lrclk, |
| psia2-txdat, gf-aif3-bclk, gf-aif3-rxdat, gf-aif3-lrclk, |
| gf-aif3-txdat, gf-aif4-bclk, gf-aif4-rxdat, gf-aif4-lrclk, |
| gf-aif4-txdat, gf-aif1-bclk, gf-aif1-rxdat, gf-aif1-lrclk, |
| gf-aif1-txdat, gf-aif2-bclk, gf-aif2-rxdat, gf-aif2-lrclk, |
| gf-aif2-txdat, dsp-uart1-rx, dsp-uart1-tx, dsp-uart2-rx, |
| dsp-uart2-tx, gf-uart2-rx, gf-uart2-tx, usb-uart-rx, |
| codec-pdmclk1, codec-pdmdat1, codec-pdmclk2, codec-pdmdat2, |
| codec-dmicclk1, codec-dmicdat1, codec-dmicclk2, codec-dmicdat2, |
| codec-dmicclk3, codec-dmicdat3, codec-dmicclk4, codec-dmicdat4, |
| dsp-dmicclk1, dsp-dmicdat1, dsp-dmicclk2, dsp-dmicdat2, i2c2-scl, |
| i2c2-sda, i2c3-scl, i2c3-sda, i2c4-scl, i2c4-sda, dsp-standby, |
| codec-mclk1, codec-mclk2, dsp-clkin, psia1-mclk, psia2-mclk, |
| gf-gpio1, gf-gpio5, dsp-gpio20, led1, led2 |
| - function : The mux function to select, available functions: |
| aif, fpga-gpio1, fpga-gpio2, fpga-gpio3, fpga-gpio4, fpga-gpio5, |
| fpga-gpio6, codec-gpio1, codec-gpio2, codec-gpio3, codec-gpio4, |
| codec-gpio5, codec-gpio6, codec-gpio7, codec-gpio8, dsp-gpio1, |
| dsp-gpio2, dsp-gpio3, dsp-gpio4, dsp-gpio5, dsp-gpio6, gf-gpio2, |
| gf-gpio3, gf-gpio7, gf-gpio1, gf-gpio5, dsp-gpio20, codec-clkout, |
| dsp-clkout, pmic-32k, spdif-clkout, clk-12m288, clk-11m2986, |
| clk-24m576, clk-22m5792, xmos-mclk, gf-clkout1, gf-mclk1, |
| gf-mclk3, gf-mclk2, gf-clkout2, codec-mclk1, codec-mclk2, |
| dsp-clkin, psia1-mclk, psia2-mclk, spdif-mclk, codec-irq, |
| codec-reset, dsp-reset, dsp-irq, dsp-standby, codec-pdmclk1, |
| codec-pdmdat1, codec-pdmclk2, codec-pdmdat2, codec-dmicclk1, |
| codec-dmicdat1, codec-dmicclk2, codec-dmicdat2, codec-dmicclk3, |
| codec-dmicdat3, codec-dmicclk4, codec-dmicdat4, dsp-dmicclk1, |
| dsp-dmicdat1, dsp-dmicclk2, dsp-dmicdat2, dsp-uart1-rx, |
| dsp-uart1-tx, dsp-uart2-rx, dsp-uart2-tx, gf-uart2-rx, |
| gf-uart2-tx, usb-uart-rx, usb-uart-tx, i2c2-scl, i2c2-sda, |
| i2c3-scl, i2c3-sda, i2c4-scl, i2c4-sda, spdif-aif, psia1, |
| psia1-bclk, psia1-lrclk, psia1-rxdat, psia1-txdat, psia2, |
| psia2-bclk, psia2-lrclk, psia2-rxdat, psia2-txdat, codec-aif1, |
| codec-aif1-bclk, codec-aif1-lrclk, codec-aif1-rxdat, |
| codec-aif1-txdat, codec-aif2, codec-aif2-bclk, codec-aif2-lrclk, |
| codec-aif2-rxdat, codec-aif2-txdat, codec-aif3, codec-aif3-bclk, |
| codec-aif3-lrclk, codec-aif3-rxdat, codec-aif3-txdat, dsp-aif1, |
| dsp-aif1-bclk, dsp-aif1-lrclk, dsp-aif1-rxdat, dsp-aif1-txdat, |
| dsp-aif2, dsp-aif2-bclk, dsp-aif2-lrclk, dsp-aif2-rxdat, |
| dsp-aif2-txdat, gf-aif3, gf-aif3-bclk, gf-aif3-lrclk, |
| gf-aif3-rxdat, gf-aif3-txdat, gf-aif4, gf-aif4-bclk, |
| gf-aif4-lrclk, gf-aif4-rxdat, gf-aif4-txdat, gf-aif1, |
| gf-aif1-bclk, gf-aif1-lrclk, gf-aif1-rxdat, gf-aif1-txdat, |
| gf-aif2, gf-aif2-bclk, gf-aif2-lrclk, gf-aif2-rxdat, |
| gf-aif2-txdat, usb-aif1, usb-aif2, adat-aif, soundcard-aif, |
| |
| - output-enable : Specifies that an AIF group will be used as a master |
| interface (either this or input-enable is required if a group is |
| being muxed to an AIF) |
| - input-enable : Specifies that an AIF group will be used as a slave |
| interface (either this or output-enable is required if a group is |
| being muxed to an AIF) |
| |
| Example: |
| |
| lochnagar-pinctrl { |
| compatible = "cirrus,lochnagar-pinctrl"; |
| |
| gpio-controller; |
| #gpio-cells = <2>; |
| gpio-ranges = <&lochnagar 0 0 LOCHNAGAR2_PIN_NUM_GPIOS>; |
| |
| pinctrl-names = "default"; |
| pinctrl-0 = <&pin-settings>; |
| |
| pin-settings: pin-settings { |
| ap-aif { |
| input-enable; |
| groups = "gf-aif1"; |
| function = "codec-aif3"; |
| }; |
| codec-aif { |
| output-enable; |
| groups = "codec-aif3"; |
| function = "gf-aif1"; |
| }; |
| }; |
| }; |