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