diff options
Diffstat (limited to 'target/linux/brcm2708/patches-4.4/0318-BCM270X_DT-i2c0-bcm2708-pin-group-params.patch')
-rw-r--r-- | target/linux/brcm2708/patches-4.4/0318-BCM270X_DT-i2c0-bcm2708-pin-group-params.patch | 99 |
1 files changed, 99 insertions, 0 deletions
diff --git a/target/linux/brcm2708/patches-4.4/0318-BCM270X_DT-i2c0-bcm2708-pin-group-params.patch b/target/linux/brcm2708/patches-4.4/0318-BCM270X_DT-i2c0-bcm2708-pin-group-params.patch new file mode 100644 index 0000000000..fdebd34cab --- /dev/null +++ b/target/linux/brcm2708/patches-4.4/0318-BCM270X_DT-i2c0-bcm2708-pin-group-params.patch @@ -0,0 +1,99 @@ +From 9b6cc71b7159bebe78cd1ee823a479c0ca485c82 Mon Sep 17 00:00:00 2001 +From: Phil Elwell <phil@raspberrypi.org> +Date: Fri, 6 May 2016 12:53:16 +0100 +Subject: [PATCH] BCM270X_DT: i2c0-bcm2708 - pin group params + +Add parameters to set pin groups as a unit, setting the pin function +appropriately. The parameters are: + pins_0_1 + pins_28_29 + pins_44_45 + pins_46_47 + +Signed-off-by: Phil Elwell <phil@raspberrypi.org> +--- + arch/arm/boot/dts/overlays/README | 11 ++++-- + .../arm/boot/dts/overlays/i2c0-bcm2708-overlay.dts | 43 +++++++++++++++++----- + 2 files changed, 42 insertions(+), 12 deletions(-) + +--- a/arch/arm/boot/dts/overlays/README ++++ b/arch/arm/boot/dts/overlays/README +@@ -449,10 +449,15 @@ Params: ds1307 Select t + + + Name: i2c0-bcm2708 +-Info: Enable the i2c_bcm2708 driver for the i2c0 bus ++Info: Enable the i2c_bcm2708 driver for the i2c0 bus. Not all pin combinations ++ are usable on all platforms. + Load: dtoverlay=i2c0-bcm2708,<param>=<val> +-Params: sda0_pin GPIO pin for SDA0 (0, 28 [or 44] - default 0) +- scl0_pin GPIO pin for SCL0 (1, 29 [or 45] - default 1) ++Params: sda0_pin GPIO pin for SDA0 (deprecated - use pins_*) ++ scl0_pin GPIO pin for SCL0 (deprecated - use pins_*) ++ pins_0_1 Use pins 0 and 1 (default) ++ pins_28_29 Use pins 28 and 29 ++ pins_44_45 Use pins 44 and 45 ++ pins_46_47 Use pins 46 and 47 + + + Name: i2c1-bcm2708 +--- a/arch/arm/boot/dts/overlays/i2c0-bcm2708-overlay.dts ++++ b/arch/arm/boot/dts/overlays/i2c0-bcm2708-overlay.dts +@@ -14,23 +14,48 @@ + fragment@0 { + target = <&i2c0>; + __overlay__ { +- pinctrl-0 = <&i2c0_pins>; + status = "okay"; + }; + }; + + fragment@1 { +- target = <&gpio>; +- __overlay__ { +- i2c0_pins: i2c0 { +- brcm,pins = <0 1>; +- brcm,function = <4>; /* alt0 */ +- }; ++ target = <&i2c0_pins>; ++ frag1: __overlay__ { ++ brcm,pins = <0 1>; ++ brcm,function = <4>; /* alt0 */ ++ }; ++ }; ++ ++ fragment@2 { ++ target = <&i2c0_pins>; ++ __dormant__ { ++ brcm,pins = <28 29>; ++ brcm,function = <4>; /* alt0 */ ++ }; ++ }; ++ ++ fragment@3 { ++ target = <&i2c0_pins>; ++ __dormant__ { ++ brcm,pins = <44 45>; ++ brcm,function = <5>; /* alt1 */ ++ }; ++ }; ++ ++ fragment@4 { ++ target = <&i2c0_pins>; ++ __dormant__ { ++ brcm,pins = <46 47>; ++ brcm,function = <4>; /* alt0 */ + }; + }; + + __overrides__ { +- sda0_pin = <&i2c0_pins>,"brcm,pins:0"; +- scl0_pin = <&i2c0_pins>,"brcm,pins:4"; ++ sda0_pin = <&frag1>,"brcm,pins:0"; ++ scl0_pin = <&frag1>,"brcm,pins:4"; ++ pins_0_1 = <0>,"+1-2-3-4"; ++ pins_28_29 = <0>,"-1+2-3-4"; ++ pins_44_45 = <0>,"-1-2+3-4"; ++ pins_46_47 = <0>,"-1-2-3+4"; + }; + }; |