1*4882a593Smuzhiyun* Pin-controller driver for the Marvell Berlin SoCs 2*4882a593Smuzhiyun 3*4882a593SmuzhiyunPin control registers are part of both chip controller and system 4*4882a593Smuzhiyuncontroller register sets. Pin controller nodes should be a sub-node of 5*4882a593Smuzhiyuneither the chip controller or system controller node. The pins 6*4882a593Smuzhiyuncontrolled are organized in groups, so no actual pin information is 7*4882a593Smuzhiyunneeded. 8*4882a593Smuzhiyun 9*4882a593SmuzhiyunA pin-controller node should contain subnodes representing the pin group 10*4882a593Smuzhiyunconfigurations, one per function. Each subnode has the group name and 11*4882a593Smuzhiyunthe muxing function used. 12*4882a593Smuzhiyun 13*4882a593SmuzhiyunBe aware the Marvell Berlin datasheets use the keyword 'mode' for what 14*4882a593Smuzhiyunis called a 'function' in the pin-controller subsystem. 15*4882a593Smuzhiyun 16*4882a593SmuzhiyunRequired properties: 17*4882a593Smuzhiyun- compatible: should be one of: 18*4882a593Smuzhiyun "marvell,berlin2-soc-pinctrl", 19*4882a593Smuzhiyun "marvell,berlin2-system-pinctrl", 20*4882a593Smuzhiyun "marvell,berlin2cd-soc-pinctrl", 21*4882a593Smuzhiyun "marvell,berlin2cd-system-pinctrl", 22*4882a593Smuzhiyun "marvell,berlin2q-soc-pinctrl", 23*4882a593Smuzhiyun "marvell,berlin2q-system-pinctrl", 24*4882a593Smuzhiyun "marvell,berlin4ct-avio-pinctrl", 25*4882a593Smuzhiyun "marvell,berlin4ct-soc-pinctrl", 26*4882a593Smuzhiyun "marvell,berlin4ct-system-pinctrl", 27*4882a593Smuzhiyun "syna,as370-soc-pinctrl" 28*4882a593Smuzhiyun 29*4882a593SmuzhiyunRequired subnode-properties: 30*4882a593Smuzhiyun- groups: a list of strings describing the group names. 31*4882a593Smuzhiyun- function: a string describing the function used to mux the groups. 32*4882a593Smuzhiyun 33*4882a593SmuzhiyunExample: 34*4882a593Smuzhiyun 35*4882a593Smuzhiyunsys_pinctrl: pin-controller { 36*4882a593Smuzhiyun compatible = "marvell,berlin2q-system-pinctrl"; 37*4882a593Smuzhiyun 38*4882a593Smuzhiyun uart0_pmux: uart0-pmux { 39*4882a593Smuzhiyun groups = "GSM12"; 40*4882a593Smuzhiyun function = "uart0"; 41*4882a593Smuzhiyun }; 42*4882a593Smuzhiyun}; 43*4882a593Smuzhiyun 44*4882a593Smuzhiyun&uart0 { 45*4882a593Smuzhiyun pinctrl-0 = <&uart0_pmux>; 46*4882a593Smuzhiyun pinctrl-names = "default"; 47*4882a593Smuzhiyun}; 48