Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Document: devicetree: add OF documents for lantiq falcon pinctrl

Signed-off-by: John Crispin <blogic@openwrt.org>
Signed-off-by: Thomas Langer <thomas.langer@lantiq.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Cc: devicetree-discuss@lists.ozlabs.org
Cc: linux-kernel@vger.kernel.org

+83
+83
Documentation/devicetree/bindings/pinctrl/lantiq,falcon-pinumx.txt
··· 1 + Lantiq FALCON pinmux controller 2 + 3 + Required properties: 4 + - compatible: "lantiq,pinctrl-falcon" 5 + - reg: Should contain the physical address and length of the gpio/pinmux 6 + register range 7 + 8 + Please refer to pinctrl-bindings.txt in this directory for details of the 9 + common pinctrl bindings used by client devices, including the meaning of the 10 + phrase "pin configuration node". 11 + 12 + Lantiq's pin configuration nodes act as a container for an abitrary number of 13 + subnodes. Each of these subnodes represents some desired configuration for a 14 + pin, a group, or a list of pins or groups. This configuration can include the 15 + mux function to select on those group(s), and two pin configuration parameters: 16 + pull-up and open-drain 17 + 18 + The name of each subnode is not important as long as it is unique; all subnodes 19 + should be enumerated and processed purely based on their content. 20 + 21 + Each subnode only affects those parameters that are explicitly listed. In 22 + other words, a subnode that lists a mux function but no pin configuration 23 + parameters implies no information about any pin configuration parameters. 24 + Similarly, a pin subnode that describes a pullup parameter implies no 25 + information about e.g. the mux function. 26 + 27 + We support 2 types of nodes. 28 + 29 + Definition of mux function groups: 30 + 31 + Required subnode-properties: 32 + - lantiq,groups : An array of strings. Each string contains the name of a group. 33 + Valid values for these names are listed below. 34 + - lantiq,function: A string containing the name of the function to mux to the 35 + group. Valid values for function names are listed below. 36 + 37 + Valid values for group and function names: 38 + 39 + mux groups: 40 + por, ntr, ntr8k, hrst, mdio, bootled, asc0, spi, spi cs0, spi cs1, i2c, 41 + jtag, slic, pcm, asc1 42 + 43 + functions: 44 + rst, ntr, mdio, led, asc, spi, i2c, jtag, slic, pcm 45 + 46 + 47 + Definition of pin configurations: 48 + 49 + Required subnode-properties: 50 + - lantiq,pins : An array of strings. Each string contains the name of a pin. 51 + Valid values for these names are listed below. 52 + 53 + Optional subnode-properties: 54 + - lantiq,pull: Integer, representing the pull-down/up to apply to the pin. 55 + 0: none, 1: down 56 + - lantiq,drive-current: Boolean, enables drive-current 57 + - lantiq,slew-rate: Boolean, enables slew-rate 58 + 59 + Example: 60 + pinmux0 { 61 + compatible = "lantiq,pinctrl-falcon"; 62 + pinctrl-names = "default"; 63 + pinctrl-0 = <&state_default>; 64 + 65 + state_default: pinmux { 66 + asc0 { 67 + lantiq,groups = "asc0"; 68 + lantiq,function = "asc"; 69 + }; 70 + ntr { 71 + lantiq,groups = "ntr8k"; 72 + lantiq,function = "ntr"; 73 + }; 74 + i2c { 75 + lantiq,groups = "i2c"; 76 + lantiq,function = "i2c"; 77 + }; 78 + hrst { 79 + lantiq,groups = "hrst"; 80 + lantiq,function = "rst"; 81 + }; 82 + }; 83 + };