Hi Sebastian, On 17/02/2015 19:52, Sebastian Hesselbarth wrote: > This adds a i2c-mux-pinctrl node to dove.dtsi for the internal i2c > mux found on Dove SoCs. Up to now, we had no board using any of the > two additional i2c busses, so make sure the change does not break > any existing boards. > > Therefore, we rename the i2c-controller node label to "i2c" and > enable it by default. Also, the dedicated sub-bus (now "i2c0") is > enabled by default. The two optional sub-busses require additional > external pin-muxing, so disable them by default. > > Signed-off-by: Sebastian Hesselbarth <sebastian.hesselbarth@xxxxxxxxx> Acked-by: Gregory CLEMENT <gregory.clement@xxxxxxxxxxxxxxxxxx> Thanks, Gregory > --- > Wolfram, > > Actually, I was hoping that default pin hog mechanism > (pinctrl-names = "default") could also be used from i2c mux nodes > and devices. Anyway, I had a look at i2c-core/mux code and failed > how to achieve that easily. Instead I decided, it would also be ok > to put the pin hog into the i2c controller node where pins will be > bound by standard platform device code. > > Cc: Jason Cooper <jason@xxxxxxxxxxxxxx> > Cc: Andrew Lunn <andrew@xxxxxxx> > Cc: Gregory Clement <gregory.clement@xxxxxxxxxxxxxxxxxx> > Cc: Gabriel Dobato <dobatog@xxxxxxxxx> > Cc: Wolfram Sang <wsa@xxxxxxxxxxxxx> > Cc: Stephen Warren <swarren@xxxxxxxxxxxxx> > Cc: linux-i2c@xxxxxxxxxxxxxxx > Cc: devicetree@xxxxxxxxxxxxxxx > Cc: linux-arm-kernel@xxxxxxxxxxxxxxxxxxx > Cc: linux-kernel@xxxxxxxxxxxxxxx > --- > arch/arm/boot/dts/dove.dtsi | 40 ++++++++++++++++++++++++++++++++++++++-- > 1 file changed, 38 insertions(+), 2 deletions(-) > > diff --git a/arch/arm/boot/dts/dove.dtsi b/arch/arm/boot/dts/dove.dtsi > index 9ad829523a13..b3340e862b0e 100644 > --- a/arch/arm/boot/dts/dove.dtsi > +++ b/arch/arm/boot/dts/dove.dtsi > @@ -28,6 +28,42 @@ > }; > }; > > + i2c-mux { > + compatible = "i2c-mux-pinctrl"; > + #address-cells = <1>; > + #size-cells = <0>; > + > + i2c-parent = <&i2c>; > + > + pinctrl-names = "i2c0", "i2c1", "i2c2"; > + pinctrl-0 = <&pmx_i2cmux_0>; > + pinctrl-1 = <&pmx_i2cmux_1>; > + pinctrl-2 = <&pmx_i2cmux_2>; > + > + i2c0: i2c@0 { > + reg = <0>; > + #address-cells = <1>; > + #size-cells = <0>; > + status = "okay"; > + }; > + > + i2c1: i2c@1 { > + reg = <1>; > + #address-cells = <1>; > + #size-cells = <0>; > + /* Requires pmx_i2c1 on i2c controller node */ > + status = "disabled"; > + }; > + > + i2c2: i2c@2 { > + reg = <2>; > + #address-cells = <1>; > + #size-cells = <0>; > + /* Requires pmx_i2c2 on i2c controller node */ > + status = "disabled"; > + }; > + }; > + > l2: l2-cache { > compatible = "marvell,tauros2-cache"; > marvell,tauros2-cache-features = <0>; > @@ -123,7 +159,7 @@ > status = "disabled"; > }; > > - i2c0: i2c-ctrl@11000 { > + i2c: i2c-ctrl@11000 { > compatible = "marvell,mv64xxx-i2c"; > reg = <0x11000 0x20>; > #address-cells = <1>; > @@ -132,7 +168,7 @@ > clock-frequency = <400000>; > timeout-ms = <1000>; > clocks = <&core_clk 0>; > - status = "disabled"; > + status = "okay"; > }; > > uart0: serial@12000 { > -- Gregory Clement, Free Electrons Kernel, drivers, real-time and embedded Linux development, consulting, training and support. http://free-electrons.com -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html