Re: [PATCH 7/8] ARM: dts: dove: Add internal i2c multiplexer node

From: Gregory CLEMENT
Date: Mon Feb 23 2015 - 10:07:36 EST


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 linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/