|
@@ -0,0 +1,99 @@
|
|
|
+Cirrus Logic Madera class audio codecs pinctrl driver
|
|
|
+
|
|
|
+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/madera.txt
|
|
|
+
|
|
|
+ the generic pinmix bindings:
|
|
|
+ Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt
|
|
|
+
|
|
|
+Required properties of parent mfd node:
|
|
|
+ - pinctrl-names : must be "default"
|
|
|
+ - pinctrl-0 : a phandle to the node containing the subnodes containing default
|
|
|
+ configurations
|
|
|
+
|
|
|
+Required subnodes:
|
|
|
+ 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.
|
|
|
+
|
|
|
+Required properties of configuration subnodes:
|
|
|
+ - groups : name of one pin group to configure. One of:
|
|
|
+ aif1, aif2, aif3, aif4, mif1, mif2, mif3, pdmspk1, pdmspk2,
|
|
|
+ dmic4, dmic5, dmic6,
|
|
|
+ gpio1, gpio2, ..., gpio40
|
|
|
+ The gpioN groups select the single pin of this name for configuration
|
|
|
+
|
|
|
+Optional properties of configuration subnodes:
|
|
|
+ Any configuration option not explicitly listed in the dts will be left at
|
|
|
+ chip default setting.
|
|
|
+
|
|
|
+ - function : name of function to assign to this group. One of:
|
|
|
+ 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 : disable pull-up and pull-down
|
|
|
+ - bias-bus-hold : enable buskeeper
|
|
|
+ - bias-pull-up : output is pulled-up
|
|
|
+ - bias-pull-down : output is pulled-down
|
|
|
+ - drive-push-pull : CMOS output
|
|
|
+ - drive-open-drain : open-drain output
|
|
|
+ - drive-strength : drive strength in mA. Valid values are 4 or 8
|
|
|
+ - input-schmitt-enable : enable schmitt-trigger mode
|
|
|
+ - input-schmitt-disable : disable schmitt-trigger mode
|
|
|
+ - input-debounce : A value of 0 disables debounce, a value !=0 enables
|
|
|
+ debounce
|
|
|
+ - output-low : set the pin to output mode with low level
|
|
|
+ - output-high : set the pin to output mode with high level
|
|
|
+
|
|
|
+Example:
|
|
|
+
|
|
|
+cs47l85@0 {
|
|
|
+ compatible = "cirrus,cs47l85";
|
|
|
+
|
|
|
+ pinctrl-names = "default";
|
|
|
+ pinctrl-0 = <&cs47l85_defaults>;
|
|
|
+
|
|
|
+ cs47l85_defaults: cs47l85-gpio-defaults {
|
|
|
+ aif1 {
|
|
|
+ groups = "aif1";
|
|
|
+ function = "aif1";
|
|
|
+ bias-bus-hold;
|
|
|
+ };
|
|
|
+
|
|
|
+ aif2 {
|
|
|
+ groups = "aif2";
|
|
|
+ function = "aif2";
|
|
|
+ bias-bus-hold;
|
|
|
+ };
|
|
|
+
|
|
|
+ opclk {
|
|
|
+ groups = "gpio1";
|
|
|
+ function = "opclk";
|
|
|
+ bias-pull-up;
|
|
|
+ drive-strength = <8>;
|
|
|
+ };
|
|
|
+ };
|
|
|
+};
|