ST Ericsson abx500 pinmux controller

Required properties:
- compatible: "stericsson,ab8500-gpio",  "stericsson,ab8540-gpio",
	      "stericsson,ab8505-gpio", "stericsson,ab9540-gpio",

Please refer to pinctrl-bindings.txt in this directory for details of the
common pinctrl bindings used by client devices, including the meaning of the
phrase "pin configuration node".

ST Ericsson's pin configuration nodes act as a container for an arbitrary number of
subnodes. Each of these subnodes represents some desired configuration for a
pin, a group, or a list of pins or groups. This configuration can include the
mux function to select on those pin(s)/group(s), and various pin configuration
parameters, such as input, output, pull up, pull down...

The name of each subnode is not important; all subnodes should be enumerated
and processed purely based on their content.

Required subnode-properties:
- ste,pins : An array of strings. Each string contains the name of a pin or
    group.

Optional subnode-properties:
- ste,function: A string containing the name of the function to mux to the
  pin or group.

- generic pin configuration option to use. Example :

	default_cfg {
		ste,pins = "GPIO1";
		bias-disable;
	};

- ste,config: Handle of pin configuration node containing the generic
  pinconfig options to use, as described in pinctrl-bindings.txt in
  this directory. Example :

	pcfg_bias_disable: pcfg_bias_disable {
		bias-disable;
	};

	default_cfg {
		ste,pins = "GPIO1";
		ste.config = <&pcfg_bias_disable>;
	};

Example board file extract:

&pinctrl_abx500 {
	pinctrl-names = "default";
	pinctrl-0 = <&sysclkreq2_default_mode>, <&sysclkreq3_default_mode>, <&gpio3_default_mode>, <&sysclkreq6_default_mode>, <&pwmout1_default_mode>, <&pwmout2_default_mode>, <&pwmout3_default_mode>, <&adi1_default_mode>, <&dmic12_default_mode>, <&dmic34_default_mode>, <&dmic56_default_mode>, <&sysclkreq5_default_mode>, <&batremn_default_mode>, <&service_default_mode>, <&pwrctrl0_default_mode>, <&pwrctrl1_default_mode>, <&pwmextvibra1_default_mode>, <&pwmextvibra2_default_mode>, <&gpio51_default_mode>, <&gpio52_default_mode>, <&gpio53_default_mode>, <&gpio54_default_mode>, <&pdmclkdat_default_mode>;

	sysclkreq2 {
		sysclkreq2_default_mode: sysclkreq2_default {
			default_mux {
				ste,function = "sysclkreq";
				ste,pins = "sysclkreq2_d_1";
			};
			default_cfg {
				ste,pins = "GPIO1";
				bias-disable;
			};
		};
	};
	sysclkreq3 {
		sysclkreq3_default_mode: sysclkreq3_default {
			default_mux {
				ste,function = "sysclkreq";
				ste,pins = "sysclkreq3_d_1";
			};
			default_cfg {
				ste,pins = "GPIO2";
				output-low;
			};
		};
	};
	gpio3 {
		gpio3_default_mode: gpio3_default {
			default_mux {
				ste,function = "gpio";
				ste,pins = "gpio3_a_1";
			};
			default_cfg {
				ste,pins = "GPIO3";
				output-low;
			};
		};
	};
	sysclkreq6 {
		sysclkreq6_default_mode: sysclkreq6_default {
			default_mux {
				ste,function = "sysclkreq";
				ste,pins = "sysclkreq6_d_1";
			};
			default_cfg {
				ste,pins = "GPIO4";
				bias-disable;
			};
		};
	};
	pwmout1 {
		pwmout1_default_mode: pwmout1_default {
			default_mux {
				ste,function = "pwmout";
				ste,pins = "pwmout1_d_1";
			};
			default_cfg {
				ste,pins = "GPIO14";
				output-low;
			};
		};
	};
	pwmout2 {
		pwmout2_default_mode: pwmout2_default {
			pwmout2_default_mux {
				ste,function = "pwmout";
				ste,pins = "pwmout2_d_1";
			};
			pwmout2_default_cfg {
				ste,pins = "GPIO15";
				output-low;
			};
		};
	};
	pwmout3 {
		pwmout3_default_mode: pwmout3_default {
			pwmout3_default_mux {
				ste,function = "pwmout";
				ste,pins = "pwmout3_d_1";
			};
			pwmout3_default_cfg {
				ste,pins = "GPIO16";
				output-low;
			};
		};
	};
	adi1 {

		adi1_default_mode: adi1_default {
			adi1_default_mux {
				ste,function = "adi1";
				ste,pins = "adi1_d_1";
			};
			adi1_default_cfg1 {
				ste,pins = "GPIO17","GPIO19","GPIO20";
				bias-disable;
			};
			adi1_default_cfg2 {
				ste,pins = "GPIO18";
				output-low;
			};
		};
	};
	dmic12 {
		dmic12_default_mode: dmic12_default {
			dmic12_default_mux {
				ste,function = "dmic";
				ste,pins = "dmic12_d_1";
			};
			dmic12_default_cfg1 {
				ste,pins = "GPIO27";
				output-low;
			};
			dmic12_default_cfg2 {
				ste,pins = "GPIO28";
				bias-disable;
			};
		};
	};
	dmic34 {
		dmic34_default_mode: dmic34_default {
			dmic34_default_mux {
				ste,function = "dmic";
				ste,pins = "dmic34_d_1";
			};
			dmic34_default_cfg1 {
				ste,pins = "GPIO29";
				output-low;
			};
			dmic34_default_cfg2 {
				ste,pins = "GPIO30";
				bias-disable;{

			};
		};
	};
	dmic56 {
		dmic56_default_mode: dmic56_default {
			dmic56_default_mux {
				ste,function = "dmic";
				ste,pins = "dmic56_d_1";
			};
			dmic56_default_cfg1 {
				ste,pins = "GPIO31";
				output-low;
			};
			dmic56_default_cfg2 {
				ste,pins = "GPIO32";
				bias-disable;
			};
		};
	};
	sysclkreq5 {
		sysclkreq5_default_mode: sysclkreq5_default {
			sysclkreq5_default_mux {
				ste,function = "sysclkreq";
				ste,pins = "sysclkreq5_d_1";
			};
			sysclkreq5_default_cfg {
				ste,pins = "GPIO42";
				output-low;
			};
		};
	};
	batremn {
		batremn_default_mode: batremn_default {
			batremn_default_mux {
				ste,function = "batremn";
				ste,pins = "batremn_d_1";
			};
			batremn_default_cfg {
				ste,pins = "GPIO43";
				bias-disable;
			};
		};
	};
	service {
		service_default_mode: service_default {
			service_default_mux {
				ste,function = "service";
				ste,pins = "service_d_1";
			};
			service_default_cfg {
				ste,pins = "GPIO44";
				bias-disable;
			};
		};
	};
	pwrctrl0 {
		pwrctrl0_default_mux: pwrctrl0_mux {
			pwrctrl0_default_mux {
				ste,function = "pwrctrl";
				ste,pins = "pwrctrl0_d_1";
			};
		};
		pwrctrl0_default_mode: pwrctrl0_default {
			pwrctrl0_default_cfg {
				ste,pins = "GPIO45";
				bias-disable;
			};
		};
	};
	pwrctrl1 {
		pwrctrl1_default_mux: pwrctrl1_mux {
			pwrctrl1_default_mux {
				ste,function = "pwrctrl";
				ste,pins = "pwrctrl1_d_1";
			};
		};
		pwrctrl1_default_mode: pwrctrl1_default {
			pwrctrl1_default_cfg {
				ste,pins = "GPIO46";
				bias-disable;
			};
		};
	};
	pwmextvibra1 {
		pwmextvibra1_default_mode: pwmextvibra1_default {
			pwmextvibra1_default_mux {
				ste,function = "pwmextvibra";
				ste,pins = "pwmextvibra1_d_1";
			};
			pwmextvibra1_default_cfg {
				ste,pins = "GPIO47";
				bias-disable;
			};
		};
	};
	pwmextvibra2 {
		pwmextvibra2_default_mode: pwmextvibra2_default {
			pwmextvibra2_default_mux {
				ste,function = "pwmextvibra";
				ste,pins = "pwmextvibra2_d_1";
			};
			pwmextvibra1_default_cfg {
				ste,pins = "GPIO48";
				bias-disable;
			};
		};
	};
	gpio51 {
		gpio51_default_mode: gpio51_default {
				gpio51_default_mux {
				ste,function = "gpio";
				ste,pins = "gpio51_a_1";
			};
			gpio51_default_cfg {
				ste,pins = "GPIO51";
				output-low;
			};
		};
	};
	gpio52 {
		gpio52_default_mode: gpio52_default {
			gpio52_default_mux {
				ste,function = "gpio";
				ste,pins = "gpio52_a_1";
			};
			gpio52_default_cfg {
				ste,pins = "GPIO52";
				bias-pull-down;
			};
		};
	};
	gpio53 {
		gpio53_default_mode: gpio53_default {
			gpio53_default_mux {
				ste,function = "gpio";
				ste,pins = "gpio53_a_1";
			};
			gpio53_default_cfg {
				ste,pins = "GPIO53";
				bias-pull-down;
			};
		};
	};
	gpio54 {
		gpio54_default_mode: gpio54_default {
			gpio54_default_mux {
				ste,function = "gpio";
				ste,pins = "gpio54_a_1";
			};
			gpio54_default_cfg {
				ste,pins = "GPIO54";
				output-low;
			};
		};
	};
	pdmclkdat {
		pdmclkdat_default_mode: pdmclkdat_default {
			pdmclkdat_default_mux {
				ste,function = "pdm";
				ste,pins = "pdmclkdat_d_1";
			};
			pdmclkdat_default_cfg {
				ste,pins = "GPIO55", "GPIO56";
				bias-disable;
			};
		};
	};
};
