Skip to content

Commit

Permalink
Add configs and overlay for PCA9548 I2C mux
Browse files Browse the repository at this point in the history
Adds kernel configs for I2C muxes and a dt overlay for PCA9548
that adds the 8 muxed I2C buses and mux device.
  • Loading branch information
6by9 authored and Phil Elwell committed Mar 24, 2016
1 parent 2faaa2c commit 09e64d4
Show file tree
Hide file tree
Showing 5 changed files with 78 additions and 0 deletions.
1 change: 1 addition & 0 deletions arch/arm/boot/dts/overlays/Makefile
Expand Up @@ -29,6 +29,7 @@ dtbo-$(RPI_DT_OVERLAYS) += hy28a.dtbo
dtbo-$(RPI_DT_OVERLAYS) += hy28b.dtbo
dtbo-$(RPI_DT_OVERLAYS) += i2c-rtc.dtbo
dtbo-$(RPI_DT_OVERLAYS) += i2c-gpio.dtbo
dtbo-$(RPI_DT_OVERLAYS) += i2c-mux-pca9548a.dtbo
dtbo-$(RPI_DT_OVERLAYS) += i2c0-bcm2708.dtbo
dtbo-$(RPI_DT_OVERLAYS) += i2c1-bcm2708.dtbo
dtbo-$(RPI_DT_OVERLAYS) += i2s-mmap.dtbo
Expand Down
6 changes: 6 additions & 0 deletions arch/arm/boot/dts/overlays/README
Expand Up @@ -360,6 +360,12 @@ Params: i2c_gpio_sda GPIO used for I2C data (default "23")
(default "2" = ~100kHz)


Name: i2c-mux-pca9548a
Info: Adds support for an NXP PCA9548A I2C multiplexer on i2c_arm
Load: dtoverlay=i2c-mux-pca9548a,<param>=<val>
Params: addr I2C address of PCA9548A (default 0x70)


Name: i2c-rtc
Info: Adds support for a number of I2C Real Time Clock devices
Load: dtoverlay=i2c-rtc,<param>=<val>
Expand Down
67 changes: 67 additions & 0 deletions arch/arm/boot/dts/overlays/i2c-mux-pca9548a-overlay.dts
@@ -0,0 +1,67 @@
// Definitions for NXP PCA9548A I2C mux on ARM I2C bus.
/dts-v1/;
/plugin/;

/{
compatible = "brcm,bcm2708";

fragment@0 {
target = <&i2c_arm>;
__overlay__ {
#address-cells = <1>;
#size-cells = <0>;
status = "okay";

i2cmux: mux@70 {
compatible = "nxp,pca9548";
reg = <0x70>;
#address-cells = <1>;
#size-cells = <0>;

i2c@0 {
#address-cells = <1>;
#size-cells = <0>;
reg = <0>;
};
i2c@1 {
#address-cells = <1>;
#size-cells = <0>;
reg = <1>;
};
i2c@2 {
#address-cells = <1>;
#size-cells = <0>;
reg = <2>;
};
i2c@3 {
#address-cells = <1>;
#size-cells = <0>;
reg = <3>;
};
i2c@4 {
#address-cells = <1>;
#size-cells = <0>;
reg = <4>;
};
i2c@5 {
#address-cells = <1>;
#size-cells = <0>;
reg = <5>;
};
i2c@6 {
#address-cells = <1>;
#size-cells = <0>;
reg = <6>;
};
i2c@7 {
#address-cells = <1>;
#size-cells = <0>;
reg = <7>;
};
};
};
};
__overrides__ {
addr = <&i2cmux>,"reg:0";
};
};
2 changes: 2 additions & 0 deletions arch/arm/configs/bcm2709_defconfig
Expand Up @@ -600,6 +600,8 @@ CONFIG_I2C=y
CONFIG_I2C_CHARDEV=m
CONFIG_I2C_BCM2708=m
CONFIG_I2C_GPIO=m
CONFIG_I2C_MUX=m
CONFIG_I2C_MUX_PCA954x=m
CONFIG_SPI=y
CONFIG_SPI_BCM2835=m
CONFIG_SPI_BCM2835AUX=m
Expand Down
2 changes: 2 additions & 0 deletions arch/arm/configs/bcmrpi_defconfig
Expand Up @@ -593,6 +593,8 @@ CONFIG_I2C=y
CONFIG_I2C_CHARDEV=m
CONFIG_I2C_BCM2708=m
CONFIG_I2C_GPIO=m
CONFIG_I2C_MUX=m
CONFIG_I2C_MUX_PCA954x=m
CONFIG_SPI=y
CONFIG_SPI_BCM2835=m
CONFIG_SPI_BCM2835AUX=m
Expand Down

0 comments on commit 09e64d4

Please sign in to comment.