Pinctrl-based I2C Bus DeMux

This binding describes an I2C bus demultiplexer that uses pin multiplexing to
route the I2C signals, and represents the pin multiplexing configuration using
the pinctrl device tree bindings. This may be used to select one I2C IP core at
runtime which may have a better feature set for a given task than another I2C
IP core on the SoC. The most simple example is to fall back to GPIO bitbanging
if your current runtime configuration hits an errata of the internal IP core.

    +-------------------------------+
    | SoC                           |
    |                               |   +-----+  +-----+
    |   +------------+              |   | dev |  | dev |
    |   |I2C IP Core1|--\           |   +-----+  +-----+
    |   +------------+   \-------+  |      |        |
    |                    |Pinctrl|--|------+--------+
    |   +------------+   +-------+  |
    |   |I2C IP Core2|--/           |
    |   +------------+              |
    |                               |
    +-------------------------------+

Required properties:
- compatible: "i2c-demux-pinctrl"
- i2c-parent: List of phandles of I2C masters available for selection. The first
	      one will be used as default.
- i2c-bus-name: The name of this bus. Also needed as pinctrl-name for the I2C
		parents.

Furthermore, I2C mux properties and child nodes. See i2c-mux.txt in this
directory.

Example:

Here is a snipplet for a bus to be demuxed. It contains various i2c clients for
HDMI, so the bus is named "i2c-hdmi":

	i2chdmi: i2c@8 {

		compatible = "i2c-demux-pinctrl";
		i2c-parent = <&gpioi2c>, <&iic2>, <&i2c2>;
		i2c-bus-name = "i2c-hdmi";
		#address-cells = <1>;
		#size-cells = <0>;

		ak4643: sound-codec@12 {
			compatible = "asahi-kasei,ak4643";

			#sound-dai-cells = <0>;
			reg = <0x12>;
		};

		composite-in@20 {
			compatible = "adi,adv7180";
			reg = <0x20>;
			remote = <&vin1>;

			port {
				adv7180: endpoint {
					bus-width = <8>;
					remote-endpoint = <&vin1ep0>;
				};
			};
		};

		hdmi@39 {
			compatible = "adi,adv7511w";
			reg = <0x39>;
			interrupt-parent = <&gpio1>;
			interrupts = <15 IRQ_TYPE_LEVEL_LOW>;

			adi,input-depth = <8>;
			adi,input-colorspace = "rgb";
			adi,input-clock = "1x";
			adi,input-style = <1>;
			adi,input-justification = "evenly";

			ports {
				#address-cells = <1>;
				#size-cells = <0>;

				port@0 {
					reg = <0>;
					adv7511_in: endpoint {
						remote-endpoint = <&du_out_lvds0>;
					};
				};

				port@1 {
					reg = <1>;
					adv7511_out: endpoint {
						remote-endpoint = <&hdmi_con>;
					};
				};
			};
		};
	};

And for clarification, here are the snipplets for the i2c-parents:

	gpioi2c: i2c@9 {
		#address-cells = <1>;
		#size-cells = <0>;
		compatible = "i2c-gpio";
		gpios = <&gpio5 6 GPIO_ACTIVE_HIGH /* sda */
			 &gpio5 5 GPIO_ACTIVE_HIGH /* scl */
			>;
		i2c-gpio,delay-us = <5>;
	};

...

&i2c2	{
	pinctrl-0 = <&i2c2_pins>;
	pinctrl-names = "i2c-hdmi";

	clock-frequency = <100000>;
};

...

&iic2	{
	pinctrl-0 = <&iic2_pins>;
	pinctrl-names = "i2c-hdmi";

	clock-frequency = <100000>;
};

Please note:

- pinctrl properties for the parent I2C controllers need a pinctrl state
  with the same name as i2c-bus-name, not "default"!

- the i2c masters must have their status "disabled". This driver will
  enable them at runtime when needed.
