brcm2708: update 4.1 patches
[openwrt/openwrt.git] / target / linux / brcm2708 / patches-4.1 / 0209-Build-i2c_gpio-module-and-add-a-device-tree-overlay-.patch
1 From 43833958324dc349e49c0e4e2fa6fe36ebc7508d Mon Sep 17 00:00:00 2001
2 From: Alistair Buxton <a.j.buxton@gmail.com>
3 Date: Sun, 1 Nov 2015 22:27:56 +0000
4 Subject: [PATCH 209/222] Build i2c_gpio module and add a device tree overlay
5 to configure it.
6
7 ---
8 arch/arm/boot/dts/overlays/Makefile | 1 +
9 arch/arm/boot/dts/overlays/README | 11 ++++++++++
10 arch/arm/boot/dts/overlays/i2c-gpio-overlay.dts | 28 +++++++++++++++++++++++++
11 arch/arm/configs/bcm2709_defconfig | 1 +
12 arch/arm/configs/bcmrpi_defconfig | 1 +
13 5 files changed, 42 insertions(+)
14 create mode 100644 arch/arm/boot/dts/overlays/i2c-gpio-overlay.dts
15
16 --- a/arch/arm/boot/dts/overlays/Makefile
17 +++ b/arch/arm/boot/dts/overlays/Makefile
18 @@ -25,6 +25,7 @@ dtb-$(RPI_DT_OVERLAYS) += hifiberry-digi
19 dtb-$(RPI_DT_OVERLAYS) += hy28a-overlay.dtb
20 dtb-$(RPI_DT_OVERLAYS) += hy28b-overlay.dtb
21 dtb-$(RPI_DT_OVERLAYS) += i2c-rtc-overlay.dtb
22 +dtb-$(RPI_DT_OVERLAYS) += i2c-gpio-overlay.dtb
23 dtb-$(RPI_DT_OVERLAYS) += i2s-mmap-overlay.dtb
24 dtb-$(RPI_DT_OVERLAYS) += iqaudio-dac-overlay.dtb
25 dtb-$(RPI_DT_OVERLAYS) += iqaudio-dacplus-overlay.dtb
26 --- a/arch/arm/boot/dts/overlays/README
27 +++ b/arch/arm/boot/dts/overlays/README
28 @@ -284,6 +284,17 @@ Params: speed Display
29 ledgpio GPIO used to control backlight
30
31
32 +Name: i2c-gpio
33 +Info: Adds support for software i2c controller on gpio pins
34 +Load: dtoverlay=i2c-gpio,<param>
35 +Params: i2c_gpio_sda GPIO used for I2C data (default "23")
36 +
37 + i2c_gpio_scl GPIO used for I2C clock (default "24")
38 +
39 + i2c_gpio_delay_us Clock delay in microseconds
40 + (default "2" = ~100kHz)
41 +
42 +
43 Name: i2c-rtc
44 Info: Adds support for a number of I2C Real Time Clock devices
45 Load: dtoverlay=i2c-rtc,<param>
46 --- /dev/null
47 +++ b/arch/arm/boot/dts/overlays/i2c-gpio-overlay.dts
48 @@ -0,0 +1,28 @@
49 +// Overlay for i2c_gpio bitbanging host bus.
50 +/dts-v1/;
51 +/plugin/;
52 +
53 +/ {
54 + compatible = "brcm,bcm2708";
55 +
56 + fragment@0 {
57 + target-path = "/";
58 + __overlay__ {
59 + i2c_gpio: i2c@0 {
60 + compatible = "i2c-gpio";
61 + gpios = <&gpio 23 0 /* sda */
62 + &gpio 24 0 /* scl */
63 + >;
64 + i2c-gpio,delay-us = <2>; /* ~100 kHz */
65 + #address-cells = <1>;
66 + #size-cells = <0>;
67 + };
68 + };
69 + };
70 + __overrides__ {
71 + i2c_gpio_sda = <&i2c_gpio>,"gpios:4";
72 + i2c_gpio_scl = <&i2c_gpio>,"gpios:16";
73 + i2c_gpio_delay_us = <&i2c_gpio>,"i2c-gpio,delay-us:0";
74 + };
75 +};
76 +
77 --- a/arch/arm/configs/bcm2709_defconfig
78 +++ b/arch/arm/configs/bcm2709_defconfig
79 @@ -593,6 +593,7 @@ CONFIG_BCM_VC_SM=y
80 CONFIG_I2C=y
81 CONFIG_I2C_CHARDEV=m
82 CONFIG_I2C_BCM2708=m
83 +CONFIG_I2C_GPIO=m
84 CONFIG_SPI=y
85 CONFIG_SPI_BCM2835=m
86 CONFIG_SPI_BCM2708=m
87 --- a/arch/arm/configs/bcmrpi_defconfig
88 +++ b/arch/arm/configs/bcmrpi_defconfig
89 @@ -586,6 +586,7 @@ CONFIG_BCM_VC_SM=y
90 CONFIG_I2C=y
91 CONFIG_I2C_CHARDEV=m
92 CONFIG_I2C_BCM2708=m
93 +CONFIG_I2C_GPIO=m
94 CONFIG_SPI=y
95 CONFIG_SPI_BCM2835=m
96 CONFIG_SPI_BCM2708=m