diff --git a/arch/arm/boot/dts/overlays/Makefile b/arch/arm/boot/dts/overlays/Makefile index 3758fa9992bde3..94b472aa99101b 100644 --- a/arch/arm/boot/dts/overlays/Makefile +++ b/arch/arm/boot/dts/overlays/Makefile @@ -34,6 +34,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-pca9545a.dtbo dtbo-$(RPI_DT_OVERLAYS) += i2c-mux-pca9548a.dtbo dtbo-$(RPI_DT_OVERLAYS) += i2c-pwm-pca9685a.dtbo dtbo-$(RPI_DT_OVERLAYS) += i2c0-bcm2708.dtbo diff --git a/arch/arm/boot/dts/overlays/README b/arch/arm/boot/dts/overlays/README index 78b2616399987d..a6bddcabb8d915 100644 --- a/arch/arm/boot/dts/overlays/README +++ b/arch/arm/boot/dts/overlays/README @@ -420,6 +420,12 @@ Params: i2c_gpio_sda GPIO used for I2C data (default "23") i2c_gpio_delay_us Clock delay in microseconds (default "2" = ~100kHz) + +Name: i2c-mux-pca9545a +Info: Adds support for an NXP PCA9545A I2C multiplexer on i2c_arm +Load: dtoverlay=i2c-mux-pca9545a,= +Params: addr I2C address of PCA9545A (default 0x73) + Name: i2c-mux-pca9548a Info: Adds support for an NXP PCA9548A I2C multiplexer on i2c_arm diff --git a/arch/arm/boot/dts/overlays/i2c-mux-pca9545a-overlay.dts b/arch/arm/boot/dts/overlays/i2c-mux-pca9545a-overlay.dts new file mode 100644 index 00000000000000..6cba2f3c820db9 --- /dev/null +++ b/arch/arm/boot/dts/overlays/i2c-mux-pca9545a-overlay.dts @@ -0,0 +1,47 @@ +// Definitions for NXP PCA9545A 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@73 { + compatible = "nxp,pca9545"; + reg = <0x73>; + #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>; + }; + }; + }; + }; + __overrides__ { + addr = <&i2cmux>,"reg:0"; + }; +};