123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134 |
- From 67c13f9569f35903cd8e02307223f31701e3bece Mon Sep 17 00:00:00 2001
- From: Dave Stevenson <6by9@users.noreply.github.com>
- Date: Mon, 8 Feb 2016 23:49:41 +0000
- Subject: [PATCH] DT: Add overlays to configure I2C pins
- Lifted from
- https://www.raspberrypi.org/forums/viewtopic.php?f=107&t=120938&p=825883
- so not claiming this to be my own work.
- Adds overlays i2c0-bcm2708 and i2c1-bcm2708 that allow the pin
- allocations for i2c-0 and i2c-1 to be changed.
- ---
- arch/arm/boot/dts/overlays/Makefile | 2 ++
- arch/arm/boot/dts/overlays/README | 16 ++++++++++
- .../arm/boot/dts/overlays/i2c0-bcm2708-overlay.dts | 36 +++++++++++++++++++++
- .../arm/boot/dts/overlays/i2c1-bcm2708-overlay.dts | 37 ++++++++++++++++++++++
- 4 files changed, 91 insertions(+)
- create mode 100644 arch/arm/boot/dts/overlays/i2c0-bcm2708-overlay.dts
- create mode 100644 arch/arm/boot/dts/overlays/i2c1-bcm2708-overlay.dts
- --- a/arch/arm/boot/dts/overlays/Makefile
- +++ b/arch/arm/boot/dts/overlays/Makefile
- @@ -29,6 +29,8 @@ dtb-$(RPI_DT_OVERLAYS) += hy28a-overlay.
- dtb-$(RPI_DT_OVERLAYS) += hy28b-overlay.dtb
- dtb-$(RPI_DT_OVERLAYS) += i2c-rtc-overlay.dtb
- dtb-$(RPI_DT_OVERLAYS) += i2c-gpio-overlay.dtb
- +dtb-$(RPI_DT_OVERLAYS) += i2c0-bcm2708-overlay.dtb
- +dtb-$(RPI_DT_OVERLAYS) += i2c1-bcm2708-overlay.dtb
- dtb-$(RPI_DT_OVERLAYS) += i2s-mmap-overlay.dtb
- dtb-$(RPI_DT_OVERLAYS) += iqaudio-dac-overlay.dtb
- dtb-$(RPI_DT_OVERLAYS) += iqaudio-dacplus-overlay.dtb
- --- a/arch/arm/boot/dts/overlays/README
- +++ b/arch/arm/boot/dts/overlays/README
- @@ -371,6 +371,22 @@ Params: ds1307 Select t
- pcf8563 Select the PCF8563 device
-
-
- +Name: i2c0-bcm2708
- +Info: Enable the i2c_bcm2708 driver for the i2c0 bus
- +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)
- +
- +
- +Name: i2c1-bcm2708
- +Info: Enable the i2c_bcm2708 driver for the i2c1 bus
- +Load: dtoverlay=i2c1-bcm2708,<param>=<val>
- +Params: sda1_pin GPIO pin for SDA1 (2 or 44 - default 2)
- + scl1_pin GPIO pin for SCL1 (3 or 45 - default 3)
- + pin_func Alternative pin function (4 (alt0), 6 (alt2) -
- + default 4)
- +
- +
- Name: i2s-mmap
- Info: Enables mmap support in the bcm2708-i2s driver
- Load: dtoverlay=i2s-mmap
- --- /dev/null
- +++ b/arch/arm/boot/dts/overlays/i2c0-bcm2708-overlay.dts
- @@ -0,0 +1,36 @@
- +/*
- + * Device tree overlay for i2c_bcm2708, i2c0 bus
- + *
- + * Compile:
- + * dtc -@ -I dts -O dtb -o i2c0-bcm2708-overlay.dtb i2c0-bcm2708-overlay.dts
- + */
- +
- +/dts-v1/;
- +/plugin/;
- +
- +/{
- + compatible = "brcm,bcm2708";
- +
- + 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 */
- + };
- + };
- + };
- +
- + __overrides__ {
- + sda0_pin = <&i2c0_pins>,"brcm,pins:0";
- + scl0_pin = <&i2c0_pins>,"brcm,pins:4";
- + };
- +};
- --- /dev/null
- +++ b/arch/arm/boot/dts/overlays/i2c1-bcm2708-overlay.dts
- @@ -0,0 +1,37 @@
- +/*
- + * Device tree overlay for i2c_bcm2708, i2c1 bus
- + *
- + * Compile:
- + * dtc -@ -I dts -O dtb -o i2c1-bcm2708-overlay.dtb i2c1-bcm2708-overlay.dts
- + */
- +
- +/dts-v1/;
- +/plugin/;
- +
- +/{
- + compatible = "brcm,bcm2708";
- +
- + fragment@0 {
- + target = <&i2c1>;
- + __overlay__ {
- + pinctrl-0 = <&i2c1_pins>;
- + status = "okay";
- + };
- + };
- +
- + fragment@1 {
- + target = <&gpio>;
- + __overlay__ {
- + i2c1_pins: i2c1 {
- + brcm,pins = <2 3>;
- + brcm,function = <4>; /* alt0 */
- + };
- + };
- + };
- +
- + __overrides__ {
- + sda1_pin = <&i2c1_pins>,"brcm,pins:0";
- + scl1_pin = <&i2c1_pins>,"brcm,pins:4";
- + pin_func = <&i2c1_pins>,"brcm,function:0";
- + };
- +};
|