diff --git a/arch/arm/boot/dts/overlays/README b/arch/arm/boot/dts/overlays/README index 1244006e21418..08c42f5e46bf1 100644 --- a/arch/arm/boot/dts/overlays/README +++ b/arch/arm/boot/dts/overlays/README @@ -555,6 +555,7 @@ Params: addr I2C bus address of device. Set based on how the overlay - BCM2711 only) i2c6 Choose the I2C6 bus (configure with the i2c6 overlay - BCM2711 only) + i2c-path Override I2C path to allow for i2c-gpio buses Channel parameters can be set for each enabled channel. A maximum of 4 channels can be enabled (letters a thru d). @@ -1238,6 +1239,7 @@ Params: sizex Touchscreen size x (default 800) addr Sets the address for the touch controller. Note that the device must be configured to use the specified address. + i2c-path Override I2C path to allow for i2c-gpio buses Name: enc28j60 @@ -1439,6 +1441,7 @@ Info: Enables I2C connected Goodix gt9271 multiple touch controller using Load: dtoverlay=goodix,= Params: interrupt GPIO used for interrupt (default 4) reset GPIO used for reset (default 17) + i2c-path Override I2C path to allow for i2c-gpio buses Name: googlevoicehat-soundcard @@ -1730,6 +1733,7 @@ Params: addr I2C address of PCF8574 display_height Height of the display in characters (default 2) display_width Width of the display in characters (default 16) + i2c-path Override I2C path to allow for i2c-gpio buses Name: hd44780-lcd @@ -2095,6 +2099,8 @@ Params: addr Sets the address for the fan controller. Note i2c6 Choose the I2C6 bus (configure with the i2c6 overlay - BCM2711 only) + i2c-path Override I2C path to allow for i2c-gpio buses + minpwm PWM setting for the fan when the SoC is below mintemp (range 0-255. default 0) maxpwm PWM setting for the fan when the SoC is above @@ -2165,6 +2171,8 @@ Params: pca9542 Select the NXP PCA9542 device i2c6 Choose the I2C6 bus (configure with the i2c6 overlay - BCM2711 only) + i2c-path Override I2C path to allow for i2c-gpio buses + disconnect_on_idle Force the mux to disconnect all child buses after every transaction. @@ -2172,7 +2180,7 @@ Params: pca9542 Select the NXP PCA9542 device [ The i2c-mux-pca9548a overlay has been deleted. See i2c-mux. ] -Name: i2c-pwm-pca9685a +Name: i2c-`9685a Info: Adds support for an NXP PCA9685A I2C PWM controller on i2c_arm Load: dtoverlay=i2c-pwm-pca9685a,= Params: addr I2C address of PCA9685A (default 0x40) @@ -2186,6 +2194,7 @@ Params: addr I2C address of PCA9685A (default 0x40) overlay - BCM2711 only) i2c6 Choose the I2C6 bus (configure with the i2c6 overlay - BCM2711 only) + i2c-path Override I2C path to allow for i2c-gpio buses Name: i2c-rtc @@ -2255,6 +2264,8 @@ Params: abx80x Select one of the ABx80x family: i2c6 Choose the I2C6 bus (configure with the i2c6 overlay - BCM2711 only) + i2c-path Override I2C path to allow for i2c-gpio buses + addr Sets the address for the RTC. Note that the device must be configured to use the specified address. @@ -2519,6 +2530,7 @@ Params: addr Set the address for the ADT7410, BH1750, BME280, i2c6 Choose the I2C6 bus (configure with the i2c6 overlay - BCM2711 only) + i2c-path Override I2C path to allow for i2c-gpio buses Name: i2c0 Info: Change i2c0 pin usage. Not all pin combinations are usable on all @@ -2661,6 +2673,7 @@ Params: interrupt GPIO used for interrupt (default 4) touchscreen (in pixels) sizey Touchscreen size y, vertical resolution of touchscreen (in pixels) + i2c-path Override I2C path to allow for i2c-gpio buses Name: imx219 @@ -3138,6 +3151,7 @@ Params: gpiopin Gpio pin connected to the INTA output of the overlay - BCM2711 only) i2c6 Choose the I2C6 bus (configure with the i2c6 overlay - BCM2711 only) + i2c-path Override I2C path to allow for i2c-gpio buses Name: mcp23s17 @@ -3587,6 +3601,17 @@ Params: addr I2C address of expander. Default 0x20. cat9554 Select the Onnn CAT9554 (8 bit) pca9654 Select the Onnn PCA9654 (8 bit) xra1202 Select the Exar XRA1202 (8 bit) + i2c0 Choose the I2C0 bus on GPIOs 0&1 + i2c_csi_dsi Choose the I2C0 bus on GPIOs 44&45 + i2c3 Choose the I2C3 bus (configure with the i2c3 + overlay - BCM2711 only) + i2c4 Choose the I2C3 bus (configure with the i2c3 + overlay - BCM2711 only) + i2c5 Choose the I2C5 bus (configure with the i2c4 + overlay - BCM2711 only) + i2c6 Choose the I2C6 bus (configure with the i2c6 + overlay - BCM2711 only) + i2c-path Override I2C path to allow for i2c-gpio buses Name: pcf857x @@ -3598,6 +3623,17 @@ Params: addr I2C address of expander. Default pcf8574a Select the NXP PCF8574A (8 bit) pcf8575 Select the NXP PCF8575 (16 bit) pca8574 Select the NXP PCA8574 (8 bit) + i2c0 Choose the I2C0 bus on GPIOs 0&1 + i2c_csi_dsi Choose the I2C0 bus on GPIOs 44&45 + i2c3 Choose the I2C3 bus (configure with the i2c3 + overlay - BCM2711 only) + i2c4 Choose the I2C3 bus (configure with the i2c3 + overlay - BCM2711 only) + i2c5 Choose the I2C5 bus (configure with the i2c4 + overlay - BCM2711 only) + i2c6 Choose the I2C6 bus (configure with the i2c6 + overlay - BCM2711 only) + i2c-path Override I2C path to allow for i2c-gpio buses Name: pcie-32bit-dma diff --git a/arch/arm/boot/dts/overlays/ads1115-overlay.dts b/arch/arm/boot/dts/overlays/ads1115-overlay.dts index 64ada16de9c72..473798abb76a5 100644 --- a/arch/arm/boot/dts/overlays/ads1115-overlay.dts +++ b/arch/arm/boot/dts/overlays/ads1115-overlay.dts @@ -131,5 +131,7 @@ <&frag100>, "target-path=i2c5"; i2c6 = <&frag100>, "target?=0", <&frag100>, "target-path=i2c6"; + i2c-path = <&frag100>, "target?=0", + <&frag100>, "target-path"; }; }; diff --git a/arch/arm/boot/dts/overlays/edt-ft5406-overlay.dts b/arch/arm/boot/dts/overlays/edt-ft5406-overlay.dts index 6e40c0ebb3bf9..b05b569836769 100644 --- a/arch/arm/boot/dts/overlays/edt-ft5406-overlay.dts +++ b/arch/arm/boot/dts/overlays/edt-ft5406-overlay.dts @@ -41,6 +41,9 @@ i2c6 = <&ts_i2c_frag>, "target?=0", <&ts_i2c_frag>, "target-path=i2c6", <0>,"-0-1"; + i2c-path = <&ts_i2c_frag>, "target?=0", + <&ts_i2c_frag>, "target-path", + <0>,"-0-1"; addr = <&ft5406>,"reg:0"; }; }; diff --git a/arch/arm/boot/dts/overlays/goodix-overlay.dts b/arch/arm/boot/dts/overlays/goodix-overlay.dts index 8571527de49a6..926f35695c737 100644 --- a/arch/arm/boot/dts/overlays/goodix-overlay.dts +++ b/arch/arm/boot/dts/overlays/goodix-overlay.dts @@ -16,7 +16,7 @@ }; }; - fragment@1 { + i2c_frag: fragment@1 { target = <&i2c1>; __overlay__ { #address-cells = <1>; @@ -42,5 +42,7 @@ <>9271>,"irq-gpios:4"; reset = <&goodix_pins>,"brcm,pins:4", <>9271>,"reset-gpios:4"; + i2c-path = <&i2c_frag>, "target?=0", + <&i2c_frag>, "target-path"; }; }; diff --git a/arch/arm/boot/dts/overlays/hd44780-i2c-lcd-overlay.dts b/arch/arm/boot/dts/overlays/hd44780-i2c-lcd-overlay.dts index 36fcf049ffbfe..d5bfd762fe2eb 100644 --- a/arch/arm/boot/dts/overlays/hd44780-i2c-lcd-overlay.dts +++ b/arch/arm/boot/dts/overlays/hd44780-i2c-lcd-overlay.dts @@ -4,7 +4,7 @@ / { compatible = "brcm,bcm2835"; - fragment@0 { + i2c_frag: fragment@0 { target = <&i2c_arm>; __overlay__ { status = "okay"; @@ -52,6 +52,8 @@ display_height = <&lcd_screen>,"display-height-chars:0"; display_width = <&lcd_screen>,"display-width-chars:0"; addr = <&pcf857x>,"reg:0"; + i2c-path = <&i2c_frag>, "target?=0", + <&i2c_frag>, "target-path"; }; }; diff --git a/arch/arm/boot/dts/overlays/i2c-fan-overlay.dts b/arch/arm/boot/dts/overlays/i2c-fan-overlay.dts index f2f4a2aa797a6..49b62789b55c0 100644 --- a/arch/arm/boot/dts/overlays/i2c-fan-overlay.dts +++ b/arch/arm/boot/dts/overlays/i2c-fan-overlay.dts @@ -93,6 +93,8 @@ <&frag100>, "target-path=i2c5"; i2c6 = <&frag100>, "target?=0", <&frag100>, "target-path=i2c6"; + i2c-path = <&frag100>, "target?=0", + <&frag100>, "target-path"; addr = <&emc2301>,"reg:0"; minpwm = <&emc2301>,"emc2305,pwm-min.0"; maxpwm = <&emc2301>,"emc2305,pwm-max.0"; diff --git a/arch/arm/boot/dts/overlays/i2c-mux-overlay.dts b/arch/arm/boot/dts/overlays/i2c-mux-overlay.dts index 0575b276cd269..ed8517dfddd05 100644 --- a/arch/arm/boot/dts/overlays/i2c-mux-overlay.dts +++ b/arch/arm/boot/dts/overlays/i2c-mux-overlay.dts @@ -175,6 +175,8 @@ <&frag100>, "target-path=i2c5"; i2c6 = <&frag100>, "target?=0", <&frag100>, "target-path=i2c6"; + i2c-path = <&frag100>, "target?=0", + <&frag100>, "target-path"; disconnect_on_idle = <&pca9542>,"idle-state:0=", , <&pca9545>,"idle-state:0=", , diff --git a/arch/arm/boot/dts/overlays/i2c-pwm-pca9685a-overlay.dts b/arch/arm/boot/dts/overlays/i2c-pwm-pca9685a-overlay.dts index b8dfbd56d1216..06efa684b08c4 100644 --- a/arch/arm/boot/dts/overlays/i2c-pwm-pca9685a-overlay.dts +++ b/arch/arm/boot/dts/overlays/i2c-pwm-pca9685a-overlay.dts @@ -57,5 +57,7 @@ <&frag100>, "target-path=i2c5"; i2c6 = <&frag100>, "target?=0", <&frag100>, "target-path=i2c6"; + i2c-path = <&frag100>, "target?=0", + <&frag100>, "target-path"; }; }; diff --git a/arch/arm/boot/dts/overlays/i2c-rtc-overlay.dts b/arch/arm/boot/dts/overlays/i2c-rtc-overlay.dts index cd31eac7e3335..ef2c33cbe45b5 100644 --- a/arch/arm/boot/dts/overlays/i2c-rtc-overlay.dts +++ b/arch/arm/boot/dts/overlays/i2c-rtc-overlay.dts @@ -38,5 +38,7 @@ <&frag100>, "target-path=i2c5"; i2c6 = <&frag100>, "target?=0", <&frag100>, "target-path=i2c6"; + i2c-path = <&frag100>, "target?=0", + <&frag100>, "target-path"; }; }; diff --git a/arch/arm/boot/dts/overlays/i2c-sensor-overlay.dts b/arch/arm/boot/dts/overlays/i2c-sensor-overlay.dts index f8a39659d83e4..fe3169924b5f1 100755 --- a/arch/arm/boot/dts/overlays/i2c-sensor-overlay.dts +++ b/arch/arm/boot/dts/overlays/i2c-sensor-overlay.dts @@ -38,5 +38,7 @@ <&frag100>, "target-path=i2c5"; i2c6 = <&frag100>, "target?=0", <&frag100>, "target-path=i2c6"; + i2c-path = <&frag100>, "target?=0", + <&frag100>, "target-path"; }; }; diff --git a/arch/arm/boot/dts/overlays/ilitek251x-overlay.dts b/arch/arm/boot/dts/overlays/ilitek251x-overlay.dts index 551aba591d263..226d490ce092f 100644 --- a/arch/arm/boot/dts/overlays/ilitek251x-overlay.dts +++ b/arch/arm/boot/dts/overlays/ilitek251x-overlay.dts @@ -16,7 +16,7 @@ }; }; - fragment@1 { + frag1: fragment@1 { target = <&i2c1>; __overlay__ { #address-cells = <1>; @@ -41,5 +41,7 @@ <&ili251x>,"interrupts:0"; sizex = <&ili251x>,"touchscreen-size-x:0"; sizey = <&ili251x>,"touchscreen-size-y:0"; + i2c-path = <&frag1>, "target?=0", + <&frag1>, "target-path"; }; }; diff --git a/arch/arm/boot/dts/overlays/mcp23017-overlay.dts b/arch/arm/boot/dts/overlays/mcp23017-overlay.dts index 0f9e89484c55e..253ac69823537 100644 --- a/arch/arm/boot/dts/overlays/mcp23017-overlay.dts +++ b/arch/arm/boot/dts/overlays/mcp23017-overlay.dts @@ -98,6 +98,8 @@ <&frag100>, "target-path=i2c5"; i2c6 = <&frag100>, "target?=0", <&frag100>, "target-path=i2c6"; + i2c-path = <&frag100>, "target?=0", + <&frag100>, "target-path"; }; }; diff --git a/arch/arm/boot/dts/overlays/pca953x-overlay.dts b/arch/arm/boot/dts/overlays/pca953x-overlay.dts index ab414e92e3669..36aeaac324fbd 100644 --- a/arch/arm/boot/dts/overlays/pca953x-overlay.dts +++ b/arch/arm/boot/dts/overlays/pca953x-overlay.dts @@ -5,7 +5,7 @@ /{ compatible = "brcm,bcm2835"; - fragment@0 { + frag0: fragment@0 { target = <&i2c_arm>; __overlay__ { #address-cells = <1>; @@ -204,6 +204,20 @@ }; }; + fragment@100 { + target = <&i2c0if>; + __dormant__ { + status = "okay"; + }; + }; + + fragment@101 { + target = <&i2c0mux>; + __dormant__ { + status = "okay"; + }; + }; + __overrides__ { addr = <&pca>,"reg:0"; pca6416 = <0>, "+1"; @@ -236,5 +250,19 @@ cat9554 = <0>, "+28"; pca9654 = <0>, "+29"; xra1202 = <0>, "+30"; + i2c0 = <&frag0>, "target:0=",<&i2c0>, + <0>,"+100+101"; + i2c_csi_dsi = <&frag0>, "target:0=",<&i2c_csi_dsi>, + <0>,"+100+101"; + i2c3 = <&frag0>, "target?=0", + <&frag0>, "target-path=i2c3"; + i2c4 = <&frag0>, "target?=0", + <&frag0>, "target-path=i2c4"; + i2c5 = <&frag0>, "target?=0", + <&frag0>, "target-path=i2c5"; + i2c6 = <&frag0>, "target?=0", + <&frag0>, "target-path=i2c6"; + i2c-path = <&frag0>, "target?=0", + <&frag0>, "target-path"; }; }; diff --git a/arch/arm/boot/dts/overlays/pcf857x-overlay.dts b/arch/arm/boot/dts/overlays/pcf857x-overlay.dts index 68943e1c33201..fd2ba1e98e904 100644 --- a/arch/arm/boot/dts/overlays/pcf857x-overlay.dts +++ b/arch/arm/boot/dts/overlays/pcf857x-overlay.dts @@ -6,7 +6,7 @@ / { compatible = "brcm,bcm2835"; - fragment@0 { + frag0: fragment@0 { target = <&i2c_arm>; __overlay__ { #address-cells = <1>; @@ -22,11 +22,39 @@ }; }; + fragment@100 { + target = <&i2c0if>; + __dormant__ { + status = "okay"; + }; + }; + + fragment@101 { + target = <&i2c0mux>; + __dormant__ { + status = "okay"; + }; + }; + __overrides__ { pcf8574 = <&pcf857x>,"compatible=nxp,pcf8574", <&pcf857x>,"reg:0=0x20"; pcf8574a = <&pcf857x>,"compatible=nxp,pcf8574a", <&pcf857x>,"reg:0=0x38"; pcf8575 = <&pcf857x>,"compatible=nxp,pcf8575", <&pcf857x>,"reg:0=0x20"; pca8574 = <&pcf857x>,"compatible=nxp,pca8574", <&pcf857x>,"reg:0=0x20"; addr = <&pcf857x>,"reg:0"; + i2c0 = <&frag0>, "target:0=",<&i2c0>, + <0>,"+100+101"; + i2c_csi_dsi = <&frag0>, "target:0=",<&i2c_csi_dsi>, + <0>,"+100+101"; + i2c3 = <&frag0>, "target?=0", + <&frag0>, "target-path=i2c3"; + i2c4 = <&frag0>, "target?=0", + <&frag0>, "target-path=i2c4"; + i2c5 = <&frag0>, "target?=0", + <&frag0>, "target-path=i2c5"; + i2c6 = <&frag0>, "target?=0", + <&frag0>, "target-path=i2c6"; + i2c-path = <&frag0>, "target?=0", + <&frag0>, "target-path"; }; };