123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- From c8d4cf878f12987c7fda5ac6bfe85168a24dc40a Mon Sep 17 00:00:00 2001
- From: Alistair Buxton <a.j.buxton@gmail.com>
- Date: Sun, 1 Nov 2015 22:27:56 +0000
- Subject: [PATCH] Build i2c_gpio module and add a device tree overlay to
- configure it.
- ---
- arch/arm/boot/dts/overlays/Makefile | 1 +
- arch/arm/boot/dts/overlays/README | 13 +++++++++++-
- arch/arm/boot/dts/overlays/i2c-gpio-overlay.dts | 28 +++++++++++++++++++++++++
- arch/arm/configs/bcm2709_defconfig | 1 +
- arch/arm/configs/bcmrpi_defconfig | 1 +
- 5 files changed, 43 insertions(+), 1 deletion(-)
- create mode 100644 arch/arm/boot/dts/overlays/i2c-gpio-overlay.dts
- --- a/arch/arm/boot/dts/overlays/Makefile
- +++ b/arch/arm/boot/dts/overlays/Makefile
- @@ -25,6 +25,7 @@ dtb-$(RPI_DT_OVERLAYS) += hifiberry-digi
- dtb-$(RPI_DT_OVERLAYS) += hy28a-overlay.dtb
- 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) += 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
- @@ -287,9 +287,20 @@ Params: speed Display
- ledgpio GPIO used to control backlight
-
-
- +Name: i2c-gpio
- +Info: Adds support for software i2c controller on gpio pins
- +Load: dtoverlay=i2c-gpio,<param>=<val>
- +Params: i2c_gpio_sda GPIO used for I2C data (default "23")
- +
- + i2c_gpio_scl GPIO used for I2C clock (default "24")
- +
- + i2c_gpio_delay_us Clock delay in microseconds
- + (default "2" = ~100kHz)
- +
- +
- Name: i2c-rtc
- Info: Adds support for a number of I2C Real Time Clock devices
- -Load: dtoverlay=i2c-rtc,<param>
- +Load: dtoverlay=i2c-rtc,<param>=<val>
- Params: ds1307 Select the DS1307 device
-
- ds3231 Select the DS3231 device
- --- /dev/null
- +++ b/arch/arm/boot/dts/overlays/i2c-gpio-overlay.dts
- @@ -0,0 +1,28 @@
- +// Overlay for i2c_gpio bitbanging host bus.
- +/dts-v1/;
- +/plugin/;
- +
- +/ {
- + compatible = "brcm,bcm2708";
- +
- + fragment@0 {
- + target-path = "/";
- + __overlay__ {
- + i2c_gpio: i2c@0 {
- + compatible = "i2c-gpio";
- + gpios = <&gpio 23 0 /* sda */
- + &gpio 24 0 /* scl */
- + >;
- + i2c-gpio,delay-us = <2>; /* ~100 kHz */
- + #address-cells = <1>;
- + #size-cells = <0>;
- + };
- + };
- + };
- + __overrides__ {
- + i2c_gpio_sda = <&i2c_gpio>,"gpios:4";
- + i2c_gpio_scl = <&i2c_gpio>,"gpios:16";
- + i2c_gpio_delay_us = <&i2c_gpio>,"i2c-gpio,delay-us:0";
- + };
- +};
- +
- --- a/arch/arm/configs/bcm2709_defconfig
- +++ b/arch/arm/configs/bcm2709_defconfig
- @@ -595,6 +595,7 @@ CONFIG_RAW_DRIVER=y
- CONFIG_I2C=y
- CONFIG_I2C_CHARDEV=m
- CONFIG_I2C_BCM2708=m
- +CONFIG_I2C_GPIO=m
- CONFIG_SPI=y
- CONFIG_SPI_BCM2835=m
- CONFIG_SPI_SPIDEV=y
- --- a/arch/arm/configs/bcmrpi_defconfig
- +++ b/arch/arm/configs/bcmrpi_defconfig
- @@ -588,6 +588,7 @@ CONFIG_RAW_DRIVER=y
- CONFIG_I2C=y
- CONFIG_I2C_CHARDEV=m
- CONFIG_I2C_BCM2708=m
- +CONFIG_I2C_GPIO=m
- CONFIG_SPI=y
- CONFIG_SPI_BCM2835=m
- CONFIG_SPI_SPIDEV=y
|