brcm2708: update linux 4.4 patches to latest version
[openwrt/openwrt.git] / target / linux / brcm2708 / patches-4.4 / 0213-Add-configs-and-overlay-for-PCA9548-I2C-mux.patch
1 From 9a4c1bb2dd7727a0592ec0456b6763bd9d12bf2b Mon Sep 17 00:00:00 2001
2 From: Dave Stevenson <6by9@users.noreply.github.com>
3 Date: Thu, 17 Mar 2016 18:16:16 +0000
4 Subject: [PATCH 213/423] Add configs and overlay for PCA9548 I2C mux
5
6 Adds kernel configs for I2C muxes and a dt overlay for PCA9548
7 that adds the 8 muxed I2C buses and mux device.
8 ---
9 arch/arm/boot/dts/overlays/Makefile | 1 +
10 arch/arm/boot/dts/overlays/README | 6 ++
11 .../boot/dts/overlays/i2c-mux-pca9548a-overlay.dts | 67 ++++++++++++++++++++++
12 arch/arm/configs/bcm2709_defconfig | 2 +
13 arch/arm/configs/bcmrpi_defconfig | 2 +
14 5 files changed, 78 insertions(+)
15 create mode 100644 arch/arm/boot/dts/overlays/i2c-mux-pca9548a-overlay.dts
16
17 --- a/arch/arm/boot/dts/overlays/Makefile
18 +++ b/arch/arm/boot/dts/overlays/Makefile
19 @@ -29,6 +29,7 @@ dtbo-$(RPI_DT_OVERLAYS) += hy28a.dtbo
20 dtbo-$(RPI_DT_OVERLAYS) += hy28b.dtbo
21 dtbo-$(RPI_DT_OVERLAYS) += i2c-rtc.dtbo
22 dtbo-$(RPI_DT_OVERLAYS) += i2c-gpio.dtbo
23 +dtbo-$(RPI_DT_OVERLAYS) += i2c-mux-pca9548a.dtbo
24 dtbo-$(RPI_DT_OVERLAYS) += i2c0-bcm2708.dtbo
25 dtbo-$(RPI_DT_OVERLAYS) += i2c1-bcm2708.dtbo
26 dtbo-$(RPI_DT_OVERLAYS) += i2s-mmap.dtbo
27 --- a/arch/arm/boot/dts/overlays/README
28 +++ b/arch/arm/boot/dts/overlays/README
29 @@ -360,6 +360,12 @@ Params: i2c_gpio_sda GPIO use
30 (default "2" = ~100kHz)
31
32
33 +Name: i2c-mux-pca9548a
34 +Info: Adds support for an NXP PCA9548A I2C multiplexer on i2c_arm
35 +Load: dtoverlay=i2c-mux-pca9548a,<param>=<val>
36 +Params: addr I2C address of PCA9548A (default 0x70)
37 +
38 +
39 Name: i2c-rtc
40 Info: Adds support for a number of I2C Real Time Clock devices
41 Load: dtoverlay=i2c-rtc,<param>=<val>
42 --- /dev/null
43 +++ b/arch/arm/boot/dts/overlays/i2c-mux-pca9548a-overlay.dts
44 @@ -0,0 +1,67 @@
45 +// Definitions for NXP PCA9548A I2C mux on ARM I2C bus.
46 +/dts-v1/;
47 +/plugin/;
48 +
49 +/{
50 + compatible = "brcm,bcm2708";
51 +
52 + fragment@0 {
53 + target = <&i2c_arm>;
54 + __overlay__ {
55 + #address-cells = <1>;
56 + #size-cells = <0>;
57 + status = "okay";
58 +
59 + i2cmux: mux@70 {
60 + compatible = "nxp,pca9548";
61 + reg = <0x70>;
62 + #address-cells = <1>;
63 + #size-cells = <0>;
64 +
65 + i2c@0 {
66 + #address-cells = <1>;
67 + #size-cells = <0>;
68 + reg = <0>;
69 + };
70 + i2c@1 {
71 + #address-cells = <1>;
72 + #size-cells = <0>;
73 + reg = <1>;
74 + };
75 + i2c@2 {
76 + #address-cells = <1>;
77 + #size-cells = <0>;
78 + reg = <2>;
79 + };
80 + i2c@3 {
81 + #address-cells = <1>;
82 + #size-cells = <0>;
83 + reg = <3>;
84 + };
85 + i2c@4 {
86 + #address-cells = <1>;
87 + #size-cells = <0>;
88 + reg = <4>;
89 + };
90 + i2c@5 {
91 + #address-cells = <1>;
92 + #size-cells = <0>;
93 + reg = <5>;
94 + };
95 + i2c@6 {
96 + #address-cells = <1>;
97 + #size-cells = <0>;
98 + reg = <6>;
99 + };
100 + i2c@7 {
101 + #address-cells = <1>;
102 + #size-cells = <0>;
103 + reg = <7>;
104 + };
105 + };
106 + };
107 + };
108 + __overrides__ {
109 + addr = <&i2cmux>,"reg:0";
110 + };
111 +};
112 --- a/arch/arm/configs/bcm2709_defconfig
113 +++ b/arch/arm/configs/bcm2709_defconfig
114 @@ -600,6 +600,8 @@ CONFIG_I2C=y
115 CONFIG_I2C_CHARDEV=m
116 CONFIG_I2C_BCM2708=m
117 CONFIG_I2C_GPIO=m
118 +CONFIG_I2C_MUX=m
119 +CONFIG_I2C_MUX_PCA954x=m
120 CONFIG_SPI=y
121 CONFIG_SPI_BCM2835=m
122 CONFIG_SPI_BCM2835AUX=m
123 --- a/arch/arm/configs/bcmrpi_defconfig
124 +++ b/arch/arm/configs/bcmrpi_defconfig
125 @@ -593,6 +593,8 @@ CONFIG_I2C=y
126 CONFIG_I2C_CHARDEV=m
127 CONFIG_I2C_BCM2708=m
128 CONFIG_I2C_GPIO=m
129 +CONFIG_I2C_MUX=m
130 +CONFIG_I2C_MUX_PCA954x=m
131 CONFIG_SPI=y
132 CONFIG_SPI_BCM2835=m
133 CONFIG_SPI_BCM2835AUX=m