dab5a44067
n As usual these patches were extracted and rebased from the raspberry pi repo: https://github.com/raspberrypi/linux/tree/rpi-4.4.y Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
100 lines
3.1 KiB
Diff
100 lines
3.1 KiB
Diff
From 6ba415c6b0e804682ba7ae4477af9cbc56fb0776 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
|