diff options
Diffstat (limited to 'target/linux/bcm27xx/patches-5.4/950-0669-dt-Update-all-mainline-bcm283x-dt-files-for-i2c0-pin.patch')
-rw-r--r-- | target/linux/bcm27xx/patches-5.4/950-0669-dt-Update-all-mainline-bcm283x-dt-files-for-i2c0-pin.patch | 201 |
1 files changed, 201 insertions, 0 deletions
diff --git a/target/linux/bcm27xx/patches-5.4/950-0669-dt-Update-all-mainline-bcm283x-dt-files-for-i2c0-pin.patch b/target/linux/bcm27xx/patches-5.4/950-0669-dt-Update-all-mainline-bcm283x-dt-files-for-i2c0-pin.patch new file mode 100644 index 0000000000..f5e4e4b008 --- /dev/null +++ b/target/linux/bcm27xx/patches-5.4/950-0669-dt-Update-all-mainline-bcm283x-dt-files-for-i2c0-pin.patch @@ -0,0 +1,201 @@ +From 393b01ee7330723b5f27b86d1b03bed88f8a8ffa Mon Sep 17 00:00:00 2001 +From: Dave Stevenson <dave.stevenson@raspberrypi.com> +Date: Thu, 9 Apr 2020 17:26:13 +0100 +Subject: [PATCH] dt: Update all mainline bcm283x dt files for i2c0 + pinctrl mux + +BSC0 (aka i2c0) can me muxed via pinctrl to GPIOs 0&1, 28&29, or +44&45. These have different uses based on the platform (40pin header, +and CSI/DSI connectors), so add a pinctrl I2C mux between the +different options. + +Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com> +--- + arch/arm/boot/dts/bcm2835-rpi-a-plus.dts | 5 +++++ + arch/arm/boot/dts/bcm2835-rpi-a.dts | 7 +++++++ + arch/arm/boot/dts/bcm2835-rpi-b-plus.dts | 5 +++++ + arch/arm/boot/dts/bcm2835-rpi-b-rev2.dts | 7 +++++++ + arch/arm/boot/dts/bcm2835-rpi-b.dts | 7 +++++++ + arch/arm/boot/dts/bcm2835-rpi-cm1-io1.dts | 5 +++++ + arch/arm/boot/dts/bcm2835-rpi-zero-w.dts | 5 +++++ + arch/arm/boot/dts/bcm2835-rpi-zero.dts | 5 +++++ + arch/arm/boot/dts/bcm2835-rpi.dtsi | 10 +++++++--- + arch/arm/boot/dts/bcm2836-rpi-2-b.dts | 5 +++++ + arch/arm/boot/dts/bcm2837-rpi-3-a-plus.dts | 5 +++++ + arch/arm/boot/dts/bcm2837-rpi-3-b-plus.dts | 5 +++++ + arch/arm/boot/dts/bcm2837-rpi-3-b.dts | 5 +++++ + arch/arm/boot/dts/bcm2837-rpi-cm3-io3.dts | 5 +++++ + 14 files changed, 78 insertions(+), 3 deletions(-) + +--- a/arch/arm/boot/dts/bcm2835-rpi-a-plus.dts ++++ b/arch/arm/boot/dts/bcm2835-rpi-a-plus.dts +@@ -126,3 +126,8 @@ + pinctrl-0 = <&uart0_gpio14>; + status = "okay"; + }; ++ ++/* i2c on camera/display connector is gpio 28&29 */ ++&i2c0mux { ++ pinctrl-1 = <&i2c0_gpio28>; ++}; +--- a/arch/arm/boot/dts/bcm2835-rpi-a.dts ++++ b/arch/arm/boot/dts/bcm2835-rpi-a.dts +@@ -121,3 +121,10 @@ + pinctrl-0 = <&uart0_gpio14>; + status = "okay"; + }; ++ ++/* i2c0 on camera/display connector is gpio 0&1. Not exposed on header. ++ * To avoid having to remap everything, map both ports to gpios 0&1 ++ */ ++&i2c0mux { ++ pinctrl-1 = <&i2c0_gpio0>; ++}; +--- a/arch/arm/boot/dts/bcm2835-rpi-b-plus.dts ++++ b/arch/arm/boot/dts/bcm2835-rpi-b-plus.dts +@@ -128,3 +128,8 @@ + pinctrl-0 = <&uart0_gpio14>; + status = "okay"; + }; ++ ++/* i2c on camera/display connector is gpio 28&29 */ ++&i2c0mux { ++ pinctrl-1 = <&i2c0_gpio28>; ++}; +--- a/arch/arm/boot/dts/bcm2835-rpi-b-rev2.dts ++++ b/arch/arm/boot/dts/bcm2835-rpi-b-rev2.dts +@@ -121,3 +121,10 @@ + pinctrl-0 = <&uart0_gpio14>; + status = "okay"; + }; ++ ++/* i2c0 on camera/display connector is gpio 0&1. Not exposed on header. ++ * To avoid having to remap everything, map both ports to gpios 0&1 ++ */ ++&i2c0mux { ++ pinctrl-1 = <&i2c0_gpio0>; ++}; +--- a/arch/arm/boot/dts/bcm2835-rpi-b.dts ++++ b/arch/arm/boot/dts/bcm2835-rpi-b.dts +@@ -116,3 +116,10 @@ + pinctrl-0 = <&uart0_gpio14>; + status = "okay"; + }; ++ ++/* camera/display connector use BSC1 on GPIOS 2&3. ++ * To avoid having to remap everything, map both ports to gpios 0&1 ++ */ ++&i2c0mux { ++ pinctrl-1 = <&i2c0_gpio0>; ++}; +--- a/arch/arm/boot/dts/bcm2835-rpi-cm1-io1.dts ++++ b/arch/arm/boot/dts/bcm2835-rpi-cm1-io1.dts +@@ -95,3 +95,8 @@ + pinctrl-0 = <&uart0_gpio14>; + status = "okay"; + }; ++ ++/* WHAT TO DO HERE? */ ++&i2c0mux { ++ pinctrl-1 = <&i2c0_gpio28>; ++}; +--- a/arch/arm/boot/dts/bcm2835-rpi-zero-w.dts ++++ b/arch/arm/boot/dts/bcm2835-rpi-zero-w.dts +@@ -149,3 +149,8 @@ + pinctrl-0 = <&uart1_gpio14>; + status = "okay"; + }; ++ ++/* i2c on camera/display connector is gpio 28&29 */ ++&i2c0mux { ++ pinctrl-1 = <&i2c0_gpio28>; ++}; +--- a/arch/arm/boot/dts/bcm2835-rpi-zero.dts ++++ b/arch/arm/boot/dts/bcm2835-rpi-zero.dts +@@ -117,3 +117,8 @@ + pinctrl-0 = <&uart0_gpio14>; + status = "okay"; + }; ++ ++/* i2c on camera/display connector is gpio 28&29 */ ++&i2c0mux { ++ pinctrl-1 = <&i2c0_gpio28>; ++}; +--- a/arch/arm/boot/dts/bcm2835-rpi.dtsi ++++ b/arch/arm/boot/dts/bcm2835-rpi.dtsi +@@ -46,13 +46,17 @@ + }; + }; + +-&i2c0 { +- pinctrl-names = "default"; +- pinctrl-0 = <&i2c0_gpio0>; ++&i2c0if { + status = "okay"; + clock-frequency = <100000>; + }; + ++&i2c0mux { ++ pinctrl-0 = <&i2c0_gpio0>; ++ /* pinctrl-1 varies based on platform */ ++ status = "okay"; ++}; ++ + &i2c1 { + pinctrl-names = "default"; + pinctrl-0 = <&i2c1_gpio2>; +--- a/arch/arm/boot/dts/bcm2836-rpi-2-b.dts ++++ b/arch/arm/boot/dts/bcm2836-rpi-2-b.dts +@@ -128,3 +128,8 @@ + pinctrl-0 = <&uart0_gpio14>; + status = "okay"; + }; ++ ++/* i2c on camera/display connector is gpio 28&29 */ ++&i2c0mux { ++ pinctrl-1 = <&i2c0_gpio28>; ++}; +--- a/arch/arm/boot/dts/bcm2837-rpi-3-a-plus.dts ++++ b/arch/arm/boot/dts/bcm2837-rpi-3-a-plus.dts +@@ -176,3 +176,8 @@ + pinctrl-0 = <&uart1_gpio14>; + status = "okay"; + }; ++ ++/* i2c on camera/display connector is gpio 44&45 */ ++&i2c0mux { ++ pinctrl-1 = <&i2c0_gpio44>; ++}; +--- a/arch/arm/boot/dts/bcm2837-rpi-3-b-plus.dts ++++ b/arch/arm/boot/dts/bcm2837-rpi-3-b-plus.dts +@@ -179,3 +179,8 @@ + pinctrl-0 = <&uart1_gpio14>; + status = "okay"; + }; ++ ++/* i2c on camera/display connector is gpio 44&45 */ ++&i2c0mux { ++ pinctrl-1 = <&i2c0_gpio44>; ++}; +--- a/arch/arm/boot/dts/bcm2837-rpi-3-b.dts ++++ b/arch/arm/boot/dts/bcm2837-rpi-3-b.dts +@@ -174,3 +174,8 @@ + status = "okay"; + bus-width = <4>; + }; ++ ++/* i2c on camera/display connector is gpio 44&45 */ ++&i2c0mux { ++ pinctrl-1 = <&i2c0_gpio44>; ++}; +--- a/arch/arm/boot/dts/bcm2837-rpi-cm3-io3.dts ++++ b/arch/arm/boot/dts/bcm2837-rpi-cm3-io3.dts +@@ -94,3 +94,8 @@ + pinctrl-0 = <&uart0_gpio14>; + status = "okay"; + }; ++ ++/* WHAT TO DO HERE? */ ++&i2c0mux { ++ pinctrl-1 = <&i2c0_gpio28>; ++}; |