1 From c00bcce082d0dc0b3b6ccd136b32da3c146784dc 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/381] Add configs and overlay for PCA9548 I2C mux
6 Adds kernel configs for I2C muxes and a dt overlay for PCA9548
7 that adds the 8 muxed I2C buses and mux device.
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
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)
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)
40 Info: Adds support for a number of I2C Real Time Clock devices
41 Load: dtoverlay=i2c-rtc,<param>=<val>
43 +++ b/arch/arm/boot/dts/overlays/i2c-mux-pca9548a-overlay.dts
45 +// Definitions for NXP PCA9548A I2C mux on ARM I2C bus.
50 + compatible = "brcm,bcm2708";
53 + target = <&i2c_arm>;
55 + #address-cells = <1>;
60 + compatible = "nxp,pca9548";
62 + #address-cells = <1>;
66 + #address-cells = <1>;
71 + #address-cells = <1>;
76 + #address-cells = <1>;
81 + #address-cells = <1>;
86 + #address-cells = <1>;
91 + #address-cells = <1>;
96 + #address-cells = <1>;
101 + #address-cells = <1>;
109 + addr = <&i2cmux>,"reg:0";
112 --- a/arch/arm/configs/bcm2709_defconfig
113 +++ b/arch/arm/configs/bcm2709_defconfig
114 @@ -600,6 +600,8 @@ CONFIG_I2C=y
119 +CONFIG_I2C_MUX_PCA954x=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
130 +CONFIG_I2C_MUX_PCA954x=m
133 CONFIG_SPI_BCM2835AUX=m