immortalwrt/target/linux/bcm27xx/patches-6.6/950-1527-overlays-Factor-out-the-common-i2c-bus-selection.patch
Álvaro Fernández Rojas 5872633b9d bcm27xx: pull 6.6 patches from RPi repo
Adds latest 6.6 patches from the Raspberry Pi repository.

These patches were generated from:
https://github.com/raspberrypi/linux/commits/rpi-6.6.y/
With the following command:
git format-patch -N v6.6.83..HEAD
(HEAD -> 08d4e8f52256bd422d8a1f876411603f627d0a82)

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
(cherry picked from commit 251f76c1c67d62c585d799c38dab31e1385d2ad5)
2025-03-16 21:08:29 +01:00

1631 lines
50 KiB
Diff

From a320d39840745502d420f56b3d49b3723a12058f Mon Sep 17 00:00:00 2001
From: Phil Elwell <phil@raspberrypi.com>
Date: Sun, 26 Jan 2025 22:08:16 +0000
Subject: [PATCH] overlays: Factor out the common i2c bus selection
Create an i2c-buses.dtsi to hold all of the common I2C bus selection
logic, and refactor existing overlays to use it. This patch should
have no functional change overall except to increase the range of
options for some overlays.
There is a slightly ugly mechanism for overriding the default bus, where
the mux nodes may or may not need to be enabled.
Signed-off-by: Phil Elwell <phil@raspberrypi.com>
---
arch/arm/boot/dts/overlays/README | 264 ++++-------------
.../arm/boot/dts/overlays/ads1115-overlay.dts | 39 +--
.../boot/dts/overlays/edt-ft5406-overlay.dts | 39 +--
arch/arm/boot/dts/overlays/edt-ft5406.dtsi | 5 +-
arch/arm/boot/dts/overlays/i2c-buses.dtsi | 67 +++++
.../arm/boot/dts/overlays/i2c-fan-overlay.dts | 45 +--
.../arm/boot/dts/overlays/i2c-mux-overlay.dts | 42 +--
.../dts/overlays/i2c-pwm-pca9685a-overlay.dts | 41 +--
.../arm/boot/dts/overlays/i2c-rtc-overlay.dts | 43 +--
.../boot/dts/overlays/i2c-sensor-overlay.dts | 43 +--
.../boot/dts/overlays/mcp23017-overlay.dts | 47 +--
.../arm/boot/dts/overlays/pca953x-overlay.dts | 277 +++---------------
.../arm/boot/dts/overlays/pcf857x-overlay.dts | 38 +--
.../dts/overlays/sc16is750-i2c-overlay.dts | 37 +--
.../dts/overlays/sc16is752-i2c-overlay.dts | 37 +--
.../overlays/seeed-can-fd-hat-v2-overlay.dts | 9 +-
.../overlays/vc4-kms-dsi-7inch-overlay.dts | 17 +-
.../vc4-kms-dsi-waveshare-800x480-overlay.dts | 15 +-
18 files changed, 202 insertions(+), 903 deletions(-)
create mode 100644 arch/arm/boot/dts/overlays/i2c-buses.dtsi
--- a/arch/arm/boot/dts/overlays/README
+++ b/arch/arm/boot/dts/overlays/README
@@ -568,6 +568,8 @@ Load: dtoverlay=ads1115,<param>[=<val>
Params: addr I2C bus address of device. Set based on how the
addr pin is wired. (default=0x48 assumes addr
is pulled to GND)
+ i2c-bus Supports all the standard I2C bus selection
+ parameters - see "dtoverlay -h i2c-bus"
cha_enable Enable virtual channel a.
cha_cfg Set the configuration for virtual channel a.
(default=4 configures this channel for the
@@ -577,22 +579,6 @@ Params: addr I2C bus
cha_gain Set the gain of the Programmable Gain
Amplifier for this channel. (Default 1 sets the
full scale of the channel to 4.096 Volts)
- i2c0 Choose the I2C0 bus on GPIOs 0&1
- i2c_csi_dsi Choose the I2C bus connected to the main
- camera/display connector.
- See "dtparam -h i2c_csi_dsi" for details.
- i2c_csi_dsi0 Choose the I2C bus connected to the second
- camera/display connector, if present.
- See "dtparam -h i2c_csi_dsi0" for details.
- i2c3 Choose the I2C3 bus (configure with the i2c3
- overlay - BCM2711 only)
- i2c4 Choose the I2C4 bus (configure with the i2c4
- overlay - BCM2711 only)
- i2c5 Choose the I2C5 bus (configure with the i2c5
- 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).
@@ -1263,20 +1249,11 @@ Params: sizex Touchscr
invx Touchscreen inverted x axis
invy Touchscreen inverted y axis
swapxy Touchscreen swapped x y axis
- i2c0 Choose the I2C0 bus on GPIOs 0&1
- i2c1 Choose the I2C1 bus on GPIOs 2&3
- i2c3 Choose the I2C3 bus (configure with the i2c3
- overlay - BCM2711 only)
- i2c4 Choose the I2C4 bus (configure with the i2c4
- overlay - BCM2711 only)
- i2c5 Choose the I2C5 bus (configure with the i2c5
- overlay - BCM2711 only)
- i2c6 Choose the I2C6 bus (configure with the i2c6
- overlay - BCM2711 only)
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
+ i2c-bus Supports all the standard I2C bus selection
+ parameters - see "dtoverlay -h i2c-bus"
Name: enc28j60
@@ -2114,37 +2091,41 @@ Load: dtoverlay=i2c-bcm2708
Params: <None>
-Name: i2c-fan
-Info: Adds support for a number of I2C fan controllers
-Load: dtoverlay=i2c-fan,<param>=<val>
-Params: addr Sets the address for the fan controller. Note
- that the device must be configured to use the
- specified address.
-
- i2c0 Choose the I2C0 bus on GPIOs 0&1
-
- i2c_csi_dsi Choose the I2C bus connected to the main
- camera/display connector.
- See "dtparam -h i2c_csi_dsi" for details.
-
- i2c_csi_dsi0 Choose the I2C bus connected to the second
- camera/display connector, if present.
- See "dtparam -h i2c_csi_dsi0" for details.
-
+Name: i2c-bus
+Info: This is not a real overlay. Many overlays support the use of a variety
+ of I2C buses, and this is where the relevant parameters are documented.
+Load: <Documentation>
+Params: i2c0 Choose the I2C0 bus on GPIOs 0&1
+ i2c1 Choose the I2C1 bus on GPIOs 2&3
+ i2c2 Choose the I2C2 bus (configure with the i2c2
+ overlay - BCM2711 only)
i2c3 Choose the I2C3 bus (configure with the i2c3
overlay - BCM2711 only)
-
i2c4 Choose the I2C4 bus (configure with the i2c4
overlay - BCM2711 only)
-
i2c5 Choose the I2C5 bus (configure with the i2c5
overlay - BCM2711 only)
-
i2c6 Choose the I2C6 bus (configure with the i2c6
overlay - BCM2711 only)
-
+ i2c_csi_dsi Choose the I2C bus connected to the main
+ camera/display connector.
+ See "dtparam -h i2c_csi_dsi" for details.
+ i2c_csi_dsi0 Choose the I2C bus connected to the second
+ camera/display connector, if present.
+ See "dtparam -h i2c_csi_dsi0" for details.
i2c-path Override I2C path to allow for i2c-gpio buses
+
+Name: i2c-fan
+Info: Adds support for a number of I2C fan controllers
+Load: dtoverlay=i2c-fan,<param>=<val>
+Params: addr Sets the address for the fan controller. Note
+ that the device must be configured to use the
+ specified address.
+
+ i2c-bus Supports all the standard I2C bus selection
+ parameters - see "dtoverlay -h i2c-bus"
+
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
@@ -2196,33 +2177,12 @@ Params: pca9542 Select t
addr Change I2C address of the device (default 0x70)
+ i2c-bus Supports all the standard I2C bus selection
+ parameters - see "dtoverlay -h i2c-bus"
+
base Set an explicit base value for the channel bus
numbers
- i2c0 Choose the I2C0 bus on GPIOs 0&1
-
- i2c_csi_dsi Choose the I2C bus connected to the main
- camera/display connector.
- See "dtparam -h i2c_csi_dsi" for details.
-
- i2c_csi_dsi0 Choose the I2C bus connected to the second
- camera/display connector, if present.
- See "dtparam -h i2c_csi_dsi0" for details.
-
- 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
-
disconnect_on_idle Force the mux to disconnect all child buses
after every transaction.
@@ -2234,22 +2194,8 @@ Name: i2c-pwm-pca9685a
Info: Adds support for an NXP PCA9685A I2C PWM controller on i2c_arm
Load: dtoverlay=i2c-pwm-pca9685a,<param>=<val>
Params: addr I2C address of PCA9685A (default 0x40)
- i2c0 Choose the I2C0 bus on GPIOs 0&1
- i2c_csi_dsi Choose the I2C bus connected to the main
- camera/display connector.
- See "dtparam -h i2c_csi_dsi" for details.
- i2c_csi_dsi0 Choose the I2C bus connected to the second
- camera/display connector, if present.
- See "dtparam -h i2c_csi_dsi0" for details.
- 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
+ i2c-bus Supports all the standard I2C bus selection
+ parameters - see "dtoverlay -h i2c-bus"
Name: i2c-rtc
@@ -2303,29 +2249,8 @@ Params: abx80x Select o
s35390a Select the ABLIC S35390A device
- i2c0 Choose the I2C0 bus on GPIOs 0&1
-
- i2c_csi_dsi Choose the I2C bus connected to the main
- camera/display connector.
- See "dtparam -h i2c_csi_dsi" for details.
-
- i2c_csi_dsi0 Choose the I2C bus connected to the second
- camera/display connector, if present.
- See "dtparam -h i2c_csi_dsi0" for details.
-
- 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
+ i2c-bus Supports all the standard I2C bus selection
+ parameters - see "dtoverlay -h i2c-bus"
addr Sets the address for the RTC. Note that the
device must be configured to use the specified
@@ -2451,6 +2376,9 @@ Params: addr Set the
JC42, LM75, MCP980x, MPU6050, MPU9250, MS5637,
MS5803, MS5805, MS5837, MS8607, SHT3x or TMP102
+ i2c-bus Supports all the standard I2C bus selection
+ parameters - see "dtoverlay -h i2c-bus"
+
adt7410 Select the Analog Devices ADT7410 and ADT7420
temperature sensors
Valid address 0x48-0x4b, default 0x48
@@ -2591,29 +2519,6 @@ Params: addr Set the
veml6070 Select the Vishay VEML6070 ultraviolet light
sensor
- i2c0 Choose the I2C0 bus on GPIOs 0&1
-
- i2c_csi_dsi Choose the I2C bus connected to the main
- camera/display connector.
- See "dtparam -h i2c_csi_dsi" for details.
- i2c_csi_dsi0 Choose the I2C bus connected to the second
- camera/display connector, if present.
- See "dtparam -h i2c_csi_dsi0" for details.
-
- 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: i2c0
Info: Change i2c0 pin usage. Not all pin combinations are usable on all
@@ -3255,24 +3160,11 @@ Params: gpiopin Gpio pin
addr I2C address of the MCP23017 (default: 0x20)
+ i2c-bus Supports all the standard I2C bus selection
+ parameters - see "dtoverlay -h i2c-bus"
+
mcp23008 Configure an MCP23008 instead.
noints Disable the interrupt GPIO line.
- i2c0 Choose the I2C0 bus on GPIOs 0&1
- i2c_csi_dsi Choose the I2C bus connected to the main
- camera/display connector.
- See "dtparam -h i2c_csi_dsi" for details.
- i2c_csi_dsi0 Choose the I2C bus connected to the second
- camera/display connector, if present.
- See "dtparam -h i2c_csi_dsi0" for details.
- i2c3 Choose the I2C3 bus (configure with the i2c3
- overlay - BCM2711 only)
- i2c4 Choose the I2C4 bus (configure with the i2c4
- overlay - BCM2711 only)
- i2c5 Choose the I2C5 bus (configure with the i2c5
- 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
@@ -3692,6 +3584,8 @@ Name: pca953x
Info: TI PCA953x family of I2C GPIO expanders. Default is for NXP PCA9534.
Load: dtoverlay=pca953x,<param>=<val>
Params: addr I2C address of expander. Default 0x20.
+ i2c-bus Supports all the standard I2C bus selection
+ parameters - see "dtoverlay -h i2c-bus"
pca6416 Select the NXP PCA6416 (16 bit)
pca9505 Select the NXP PCA9505 (40 bit)
pca9535 Select the NXP PCA9535 (16 bit)
@@ -3722,22 +3616,6 @@ Params: addr I2C addr
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 I2C bus connected to the main
- camera/display connector.
- See "dtparam -h i2c_csi_dsi" for details.
- i2c_csi_dsi0 Choose the I2C bus connected to the second
- camera/display connector, if present.
- See "dtparam -h i2c_csi_dsi0" for details.
- 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
@@ -3745,26 +3623,12 @@ Info: NXP PCF857x family of I2C GPIO e
Load: dtoverlay=pcf857x,<param>=<val>
Params: addr I2C address of expander. Default
depends on model selected.
+ i2c-bus Supports all the standard I2C bus selection
+ parameters - see "dtoverlay -h i2c-bus"
pcf8574 Select the NXP PCF8574 (8 bit)
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 I2C bus connected to the main
- camera/display connector.
- See "dtparam -h i2c_csi_dsi" for details.
- i2c_csi_dsi0 Choose the I2C bus connected to the second
- camera/display connector, if present.
- See "dtparam -h i2c_csi_dsi0" for details.
- 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
@@ -4463,23 +4327,9 @@ Info: Overlay for the NXP SC16IS750 UA
Load: dtoverlay=sc16is750-i2c,<param>=<val>
Params: int_pin GPIO used for IRQ (default 24)
addr Address (default 0x48)
+ i2c-bus Supports all the standard I2C bus selection
+ parameters - see "dtoverlay -h i2c-bus"
xtal On-board crystal frequency (default 14745600)
- i2c0 Choose the I2C0 bus on GPIOs 0&1
- i2c_csi_dsi Choose the I2C bus connected to the main
- camera/display connector.
- See "dtparam -h i2c_csi_dsi" for details.
- i2c_csi_dsi0 Choose the I2C bus connected to the second
- camera/display connector, if present.
- See "dtparam -h i2c_csi_dsi0" for details.
- i2c3 Choose the I2C3 bus (configure with the i2c3
- overlay - BCM2711 only)
- i2c4 Choose the I2C4 bus (configure with the i2c4
- overlay - BCM2711 only)
- i2c5 Choose the I2C5 bus (configure with the i2c5
- 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: sc16is750-spi0
@@ -4497,23 +4347,9 @@ Info: Overlay for the NXP SC16IS752 du
Load: dtoverlay=sc16is752-i2c,<param>=<val>
Params: int_pin GPIO used for IRQ (default 24)
addr Address (default 0x48)
+ i2c-bus Supports all the standard I2C bus selection
+ parameters - see "dtoverlay -h i2c-bus"
xtal On-board crystal frequency (default 14745600)
- i2c0 Choose the I2C0 bus on GPIOs 0&1
- i2c_csi_dsi Choose the I2C bus connected to the main
- camera/display connector.
- See "dtparam -h i2c_csi_dsi" for details.
- i2c_csi_dsi0 Choose the I2C bus connected to the second
- camera/display connector, if present.
- See "dtparam -h i2c_csi_dsi0" for details.
- i2c3 Choose the I2C3 bus (configure with the i2c3
- overlay - BCM2711 only)
- i2c4 Choose the I2C4 bus (configure with the i2c4
- overlay - BCM2711 only)
- i2c5 Choose the I2C5 bus (configure with the i2c5
- 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: sc16is752-spi0
--- a/arch/arm/boot/dts/overlays/ads1115-overlay.dts
+++ b/arch/arm/boot/dts/overlays/ads1115-overlay.dts
@@ -5,6 +5,8 @@
/dts-v1/;
/plugin/;
+#include "i2c-buses.dtsi"
+
/ {
compatible = "brcm,bcm2835";
@@ -81,27 +83,6 @@
};
};
- frag100: fragment@100 {
- target = <&i2c1>;
- i2cbus: __overlay__ {
- status = "okay";
- };
- };
-
- fragment@101 {
- target = <&i2c0if>;
- __dormant__ {
- status = "okay";
- };
- };
-
- fragment@102 {
- target = <&i2c0mux>;
- __dormant__ {
- status = "okay";
- };
- };
-
__overrides__ {
addr = <&ads1115>,"reg:0";
cha_enable = <0>,"=0";
@@ -120,21 +101,5 @@
chd_cfg = <&channel_d>,"reg:0";
chd_gain = <&channel_d>,"ti,gain:0";
chd_datarate = <&channel_d>,"ti,datarate:0";
- i2c0 = <&frag100>, "target:0=",<&i2c0>,
- <0>,"+101+102";
- i2c_csi_dsi = <&frag100>, "target:0=",<&i2c_csi_dsi>,
- <0>,"+101+102";
- i2c_csi_dsi0 = <&frag100>, "target:0=",<&i2c_csi_dsi0>,
- <0>,"+101+102";
- i2c3 = <&frag100>, "target?=0",
- <&frag100>, "target-path=i2c3";
- i2c4 = <&frag100>, "target?=0",
- <&frag100>, "target-path=i2c4";
- i2c5 = <&frag100>, "target?=0",
- <&frag100>, "target-path=i2c5";
- i2c6 = <&frag100>, "target?=0",
- <&frag100>, "target-path=i2c6";
- i2c-path = <&frag100>, "target?=0",
- <&frag100>, "target-path";
};
};
--- a/arch/arm/boot/dts/overlays/edt-ft5406-overlay.dts
+++ b/arch/arm/boot/dts/overlays/edt-ft5406-overlay.dts
@@ -7,43 +7,16 @@
/dts-v1/;
/plugin/;
+#define ENABLE_I2C0_MUX
+#include "i2c-buses.dtsi"
#include "edt-ft5406.dtsi"
-/ {
- fragment@0 {
- target = <&i2c0if>;
- __overlay__ {
- status = "okay";
- };
- };
-
- fragment@1 {
- target = <&i2c0mux>;
- __overlay__ {
- status = "okay";
- };
- };
+&busfrag {
+ target = <&i2c_csi_dsi>;
+};
+/ {
__overrides__ {
- i2c0 = <&ts_i2c_frag>,"target:0=",<&i2c0>;
- i2c1 = <&ts_i2c_frag>, "target?=0",
- <&ts_i2c_frag>, "target-path=i2c1",
- <0>,"-0-1";
- i2c3 = <&ts_i2c_frag>, "target?=0",
- <&ts_i2c_frag>, "target-path=i2c3",
- <0>,"-0-1";
- i2c4 = <&ts_i2c_frag>, "target?=0",
- <&ts_i2c_frag>, "target-path=i2c4",
- <0>,"-0-1";
- i2c5 = <&ts_i2c_frag>, "target?=0",
- <&ts_i2c_frag>, "target-path=i2c5",
- <0>,"-0-1";
- 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";
};
};
--- a/arch/arm/boot/dts/overlays/edt-ft5406.dtsi
+++ b/arch/arm/boot/dts/overlays/edt-ft5406.dtsi
@@ -22,12 +22,11 @@
};
};
- ts_i2c_frag: fragment@12 {
- target = <&i2c_csi_dsi>;
+ fragment@12 {
+ target = <&i2cbus>;
__overlay__ {
#address-cells = <1>;
#size-cells = <0>;
- status = "okay";
ft5406: ts@38 {
compatible = "edt,edt-ft5506";
--- /dev/null
+++ b/arch/arm/boot/dts/overlays/i2c-buses.dtsi
@@ -0,0 +1,67 @@
+// Common i2c buses, and dtparams to select them
+
+/ {
+ compatible = "brcm,bcm2835";
+
+ busfrag: fragment@100 {
+ target = <&i2c_arm>;
+ i2cbus: __overlay__ {
+ status = "okay";
+ };
+ };
+
+ fragment@101 {
+ target = <&i2c0if>;
+#ifdef ENABLE_I2C0_MUX
+ __overlay__ {
+#else
+ __dormant__ {
+#endif
+ status = "okay";
+ };
+ };
+
+ fragment@102 {
+ target = <&i2c0mux>;
+#ifdef ENABLE_I2C0_MUX
+ __overlay__ {
+#else
+ __dormant__ {
+#endif
+ status = "okay";
+ };
+ };
+
+ __overrides__ {
+ i2c0 = <&busfrag>,"target:0=",<&i2c0>,
+ <&busfrag>, "target-path?=0",
+ <0>,"+101+102";
+ i2c_csi_dsi = <&busfrag>,"target:0=",<&i2c_csi_dsi>,
+ <&busfrag>, "target-path?=0",
+ <0>,"+101+102";
+ i2c_csi_dsi0 = <&busfrag>, "target:0=",<&i2c_csi_dsi0>,
+ <&busfrag>, "target-path?=0",
+ <0>,"+101+102";
+ i2c1 = <&busfrag>,"target:0=",<&i2c1>,
+ <&busfrag>, "target-path?=0",
+ <0>,"-101-102";
+ i2c2 = <&busfrag>, "target?=0",
+ <&busfrag>, "target-path=i2c2",
+ <0>,"-101-102";
+ i2c3 = <&busfrag>, "target?=0",
+ <&busfrag>, "target-path=i2c3",
+ <0>,"-101-102";
+ i2c4 = <&busfrag>, "target?=0",
+ <&busfrag>, "target-path=i2c4",
+ <0>,"-101-102";
+ i2c5 = <&busfrag>, "target?=0",
+ <&busfrag>, "target-path=i2c5",
+ <0>,"-101-102";
+ i2c6 = <&busfrag>, "target?=0",
+ <&busfrag>, "target-path=i2c6",
+ <0>,"-101-102";
+ i2c-path = <&busfrag>, "target?=0",
+ <&busfrag>, "target-path",
+ <0>,"-101-102";
+ };
+};
--- a/arch/arm/boot/dts/overlays/i2c-fan-overlay.dts
+++ b/arch/arm/boot/dts/overlays/i2c-fan-overlay.dts
@@ -4,6 +4,8 @@
#include <dt-bindings/thermal/thermal.h>
+#include "i2c-buses.dtsi"
+
/ {
compatible = "brcm,bcm2835";
@@ -22,35 +24,14 @@
};
};
- frag100: fragment@100 {
- target = <&i2c_arm>;
- i2cbus: __overlay__ {
- status = "okay";
- };
- };
-
- fragment@101 {
- target = <&i2c0if>;
- __dormant__ {
- status = "okay";
- };
- };
-
- fragment@102 {
- target = <&i2c0mux>;
- __dormant__ {
- status = "okay";
- };
- };
-
- fragment@103 {
+ fragment@1 {
target = <&cpu_thermal>;
__overlay__ {
polling-delay = <2000>; /* milliseconds */
};
};
- fragment@104 {
+ fragment@2 {
target = <&thermal_trips>;
__overlay__ {
fanmid0: fanmid0 {
@@ -66,7 +47,7 @@
};
};
- fragment@105 {
+ fragment@3 {
target = <&cooling_maps>;
__overlay__ {
map0: map0 {
@@ -81,22 +62,6 @@
};
__overrides__ {
- i2c0 = <&frag100>,"target:0=",<&i2c0>,
- <0>,"+101+102";
- i2c_csi_dsi = <&frag100>,"target:0=",<&i2c_csi_dsi>,
- <0>,"+101+102";
- i2c_csi_dsi0 = <&frag100>, "target:0=",<&i2c_csi_dsi0>,
- <0>,"+101+102";
- i2c3 = <&frag100>, "target?=0",
- <&frag100>, "target-path=i2c3";
- i2c4 = <&frag100>, "target?=0",
- <&frag100>, "target-path=i2c4";
- i2c5 = <&frag100>, "target?=0",
- <&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";
--- a/arch/arm/boot/dts/overlays/i2c-mux-overlay.dts
+++ b/arch/arm/boot/dts/overlays/i2c-mux-overlay.dts
@@ -5,6 +5,8 @@
#include <dt-bindings/mux/mux.h>
+#include "i2c-buses.dtsi"
+
/{
compatible = "brcm,bcm2835";
@@ -13,7 +15,6 @@
__dormant__ {
#address-cells = <1>;
#size-cells = <0>;
- status = "okay";
pca9542: mux@70 {
compatible = "nxp,pca9542";
@@ -40,7 +41,6 @@
__dormant__ {
#address-cells = <1>;
#size-cells = <0>;
- status = "okay";
pca9545: mux@70 {
compatible = "nxp,pca9545";
@@ -77,7 +77,6 @@
__dormant__ {
#address-cells = <1>;
#size-cells = <0>;
- status = "okay";
pca9548: mux@70 {
compatible = "nxp,pca9548";
@@ -129,27 +128,6 @@
};
};
- frag100: fragment@100 {
- target = <&i2c_arm>;
- i2cbus: __overlay__ {
- status = "okay";
- };
- };
-
- fragment@101 {
- target = <&i2c0if>;
- __dormant__ {
- status = "okay";
- };
- };
-
- fragment@102 {
- target = <&i2c0mux>;
- __dormant__ {
- status = "okay";
- };
- };
-
__overrides__ {
pca9542 = <0>, "+0";
pca9545 = <0>, "+1";
@@ -163,22 +141,6 @@
<&pca9545>,"base-nr:0",
<&pca9548>,"base-nr:0";
- i2c0 = <&frag100>, "target:0=",<&i2c0>,
- <0>,"+101+102";
- i2c_csi_dsi = <&frag100>, "target:0=",<&i2c_csi_dsi>,
- <0>,"+101+102";
- i2c_csi_dsi0 = <&frag100>, "target:0=",<&i2c_csi_dsi0>,
- <0>,"+101+102";
- i2c3 = <&frag100>, "target?=0",
- <&frag100>, "target-path=i2c3";
- i2c4 = <&frag100>, "target?=0",
- <&frag100>, "target-path=i2c4";
- i2c5 = <&frag100>, "target?=0",
- <&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=", <MUX_IDLE_DISCONNECT>,
<&pca9545>,"idle-state:0=", <MUX_IDLE_DISCONNECT>,
--- a/arch/arm/boot/dts/overlays/i2c-pwm-pca9685a-overlay.dts
+++ b/arch/arm/boot/dts/overlays/i2c-pwm-pca9685a-overlay.dts
@@ -2,6 +2,8 @@
/dts-v1/;
/plugin/;
+#include "i2c-buses.dtsi"
+
/{
compatible = "brcm,bcm2835";
@@ -10,7 +12,6 @@
__overlay__ {
#address-cells = <1>;
#size-cells = <0>;
- status = "okay";
pca: pca@40 {
compatible = "nxp,pca9685-pwm";
@@ -21,45 +22,7 @@
};
};
-
- frag100: fragment@100 {
- target = <&i2c_arm>;
- i2cbus: __overlay__ {
- status = "okay";
- };
- };
-
- fragment@101 {
- target = <&i2c0if>;
- __dormant__ {
- status = "okay";
- };
- };
-
- fragment@102 {
- target = <&i2c0mux>;
- __dormant__ {
- status = "okay";
- };
- };
-
__overrides__ {
addr = <&pca>,"reg:0";
- i2c0 = <&frag100>, "target:0=",<&i2c0>,
- <0>,"+101+102";
- i2c_csi_dsi = <&frag100>, "target:0=",<&i2c_csi_dsi>,
- <0>,"+101+102";
- i2c_csi_dsi0 = <&frag100>, "target:0=",<&i2c_csi_dsi0>,
- <0>,"+101+102";
- i2c3 = <&frag100>, "target?=0",
- <&frag100>, "target-path=i2c3";
- i2c4 = <&frag100>, "target?=0",
- <&frag100>, "target-path=i2c4";
- i2c5 = <&frag100>, "target?=0",
- <&frag100>, "target-path=i2c5";
- i2c6 = <&frag100>, "target?=0",
- <&frag100>, "target-path=i2c6";
- i2c-path = <&frag100>, "target?=0",
- <&frag100>, "target-path";
};
};
--- a/arch/arm/boot/dts/overlays/i2c-rtc-overlay.dts
+++ b/arch/arm/boot/dts/overlays/i2c-rtc-overlay.dts
@@ -3,45 +3,4 @@
/plugin/;
#include "i2c-rtc-common.dtsi"
-
-/ {
- frag100: fragment@100 {
- target = <&i2c_arm>;
- i2cbus: __overlay__ {
- status = "okay";
- };
- };
-
- fragment@101 {
- target = <&i2c0if>;
- __dormant__ {
- status = "okay";
- };
- };
-
- fragment@102 {
- target = <&i2c0mux>;
- __dormant__ {
- status = "okay";
- };
- };
-
- __overrides__ {
- i2c0 = <&frag100>, "target:0=",<&i2c0>,
- <0>,"+101+102";
- i2c_csi_dsi = <&frag100>, "target:0=",<&i2c_csi_dsi>,
- <0>,"+101+102";
- i2c_csi_dsi0 = <&frag100>, "target:0=",<&i2c_csi_dsi0>,
- <0>,"+101+102";
- i2c3 = <&frag100>, "target?=0",
- <&frag100>, "target-path=i2c3";
- i2c4 = <&frag100>, "target?=0",
- <&frag100>, "target-path=i2c4";
- i2c5 = <&frag100>, "target?=0",
- <&frag100>, "target-path=i2c5";
- i2c6 = <&frag100>, "target?=0",
- <&frag100>, "target-path=i2c6";
- i2c-path = <&frag100>, "target?=0",
- <&frag100>, "target-path";
- };
-};
+#include "i2c-buses.dtsi"
--- a/arch/arm/boot/dts/overlays/i2c-sensor-overlay.dts
+++ b/arch/arm/boot/dts/overlays/i2c-sensor-overlay.dts
@@ -3,45 +3,4 @@
/plugin/;
#include "i2c-sensor-common.dtsi"
-
-/ {
- frag100: fragment@100 {
- target = <&i2c_arm>;
- i2cbus: __overlay__ {
- status = "okay";
- };
- };
-
- fragment@101 {
- target = <&i2c0if>;
- __dormant__ {
- status = "okay";
- };
- };
-
- fragment@102 {
- target = <&i2c0mux>;
- __dormant__ {
- status = "okay";
- };
- };
-
- __overrides__ {
- i2c0 = <&frag100>, "target:0=",<&i2c0>,
- <0>,"+101+102";
- i2c_csi_dsi = <&frag100>, "target:0=",<&i2c_csi_dsi>,
- <0>,"+101+102";
- i2c_csi_dsi0 = <&frag100>, "target:0=",<&i2c_csi_dsi0>,
- <0>,"+101+102";
- i2c3 = <&frag100>, "target?=0",
- <&frag100>, "target-path=i2c3";
- i2c4 = <&frag100>, "target?=0",
- <&frag100>, "target-path=i2c4";
- i2c5 = <&frag100>, "target?=0",
- <&frag100>, "target-path=i2c5";
- i2c6 = <&frag100>, "target?=0",
- <&frag100>, "target-path=i2c6";
- i2c-path = <&frag100>, "target?=0",
- <&frag100>, "target-path";
- };
-};
+#include "i2c-buses.dtsi"
--- a/arch/arm/boot/dts/overlays/mcp23017-overlay.dts
+++ b/arch/arm/boot/dts/overlays/mcp23017-overlay.dts
@@ -3,16 +3,11 @@
/dts-v1/;
/plugin/;
+#include "i2c-buses.dtsi"
+
/ {
compatible = "brcm,bcm2835";
- fragment@0 {
- target = <&i2cbus>;
- __overlay__ {
- status = "okay";
- };
- };
-
fragment@1 {
target = <&gpio>;
__overlay__ {
@@ -60,49 +55,11 @@
};
};
- frag100: fragment@100 {
- target = <&i2c1>;
- i2cbus: __overlay__ {
- status = "okay";
- };
- };
-
- fragment@101 {
- target = <&i2c0if>;
- __dormant__ {
- status = "okay";
- };
- };
-
- fragment@102 {
- target = <&i2c0mux>;
- __dormant__ {
- status = "okay";
- };
- };
-
__overrides__ {
gpiopin = <&mcp23017_pins>,"brcm,pins:0",
<&mcp23017_irq>,"interrupts:0";
addr = <&mcp23017>,"reg:0", <&mcp23017_pins>,"reg:0";
mcp23008 = <0>,"=2";
noints = <0>,"!1!3";
- i2c0 = <&frag100>, "target:0=",<&i2c0>,
- <0>,"+101+102";
- i2c_csi_dsi = <&frag100>, "target:0=",<&i2c_csi_dsi>,
- <0>,"+101+102";
- i2c_csi_dsi0 = <&frag100>, "target:0=",<&i2c_csi_dsi0>,
- <0>,"+101+102";
- i2c3 = <&frag100>, "target?=0",
- <&frag100>, "target-path=i2c3";
- i2c4 = <&frag100>, "target?=0",
- <&frag100>, "target-path=i2c4";
- i2c5 = <&frag100>, "target?=0",
- <&frag100>, "target-path=i2c5";
- i2c6 = <&frag100>, "target?=0",
- <&frag100>, "target-path=i2c6";
- i2c-path = <&frag100>, "target?=0",
- <&frag100>, "target-path";
};
};
-
--- a/arch/arm/boot/dts/overlays/pca953x-overlay.dts
+++ b/arch/arm/boot/dts/overlays/pca953x-overlay.dts
@@ -2,11 +2,13 @@
/dts-v1/;
/plugin/;
+#include "i2c-buses.dtsi"
+
/{
compatible = "brcm,bcm2835";
- frag0: fragment@0 {
- target = <&i2c_arm>;
+ fragment@0 {
+ target = <&i2cbus>;
__overlay__ {
#address-cells = <1>;
#size-cells = <0>;
@@ -21,248 +23,37 @@
};
};
- fragment@1 {
- target = <&pca>;
- __dormant__ {
- compatible = "nxp,pca6416";
- };
- };
- fragment@2 {
- target = <&pca>;
- __dormant__ {
- compatible = "nxp,pca9505";
- };
- };
- fragment@3 {
- target = <&pca>;
- __dormant__ {
- compatible = "nxp,pca9535";
- };
- };
- fragment@4 {
- target = <&pca>;
- __dormant__ {
- compatible = "nxp,pca9536";
- };
- };
- fragment@5 {
- target = <&pca>;
- __dormant__ {
- compatible = "nxp,pca9537";
- };
- };
- fragment@6 {
- target = <&pca>;
- __dormant__ {
- compatible = "nxp,pca9538";
- };
- };
- fragment@7 {
- target = <&pca>;
- __dormant__ {
- compatible = "nxp,pca9539";
- };
- };
- fragment@8 {
- target = <&pca>;
- __dormant__ {
- compatible = "nxp,pca9554";
- };
- };
- fragment@9 {
- target = <&pca>;
- __dormant__ {
- compatible = "nxp,pca9555";
- };
- };
- fragment@10 {
- target = <&pca>;
- __dormant__ {
- compatible = "nxp,pca9556";
- };
- };
- fragment@11 {
- target = <&pca>;
- __dormant__ {
- compatible = "nxp,pca9557";
- };
- };
- fragment@12 {
- target = <&pca>;
- __dormant__ {
- compatible = "nxp,pca9574";
- };
- };
- fragment@13 {
- target = <&pca>;
- __dormant__ {
- compatible = "nxp,pca9575";
- };
- };
- fragment@14 {
- target = <&pca>;
- __dormant__ {
- compatible = "nxp,pca9698";
- };
- };
- fragment@15 {
- target = <&pca>;
- __dormant__ {
- compatible = "nxp,pcal6416";
- };
- };
- fragment@16 {
- target = <&pca>;
- __dormant__ {
- compatible = "nxp,pcal6524";
- };
- };
- fragment@17 {
- target = <&pca>;
- __dormant__ {
- compatible = "nxp,pcal9555a";
- };
- };
- fragment@18 {
- target = <&pca>;
- __dormant__ {
- compatible = "maxim,max7310";
- };
- };
- fragment@19 {
- target = <&pca>;
- __dormant__ {
- compatible = "maxim,max7312";
- };
- };
- fragment@20 {
- target = <&pca>;
- __dormant__ {
- compatible = "maxim,max7313";
- };
- };
- fragment@21 {
- target = <&pca>;
- __dormant__ {
- compatible = "maxim,max7315";
- };
- };
- fragment@22 {
- target = <&pca>;
- __dormant__ {
- compatible = "ti,pca6107";
- };
- };
- fragment@23 {
- target = <&pca>;
- __dormant__ {
- compatible = "ti,tca6408";
- };
- };
- fragment@24 {
- target = <&pca>;
- __dormant__ {
- compatible = "ti,tca6416";
- };
- };
- fragment@25 {
- target = <&pca>;
- __dormant__ {
- compatible = "ti,tca6424";
- };
- };
- fragment@26 {
- target = <&pca>;
- __dormant__ {
- compatible = "ti,tca9539";
- };
- };
- fragment@27 {
- target = <&pca>;
- __dormant__ {
- compatible = "ti,tca9554";
- };
- };
- fragment@28 {
- target = <&pca>;
- __dormant__ {
- compatible = "onnn,cat9554";
- };
- };
- fragment@29 {
- target = <&pca>;
- __dormant__ {
- compatible = "onnn,pca9654";
- };
- };
- fragment@30 {
- target = <&pca>;
- __dormant__ {
- compatible = "exar,xra1202";
- };
- };
-
- fragment@100 {
- target = <&i2c0if>;
- __dormant__ {
- status = "okay";
- };
- };
-
- fragment@101 {
- target = <&i2c0mux>;
- __dormant__ {
- status = "okay";
- };
- };
-
__overrides__ {
addr = <&pca>,"reg:0";
- pca6416 = <0>, "+1";
- pca9505 = <0>, "+2";
- pca9535 = <0>, "+3";
- pca9536 = <0>, "+4";
- pca9537 = <0>, "+5";
- pca9538 = <0>, "+6";
- pca9539 = <0>, "+7";
- pca9554 = <0>, "+8";
- pca9555 = <0>, "+9";
- pca9556 = <0>, "+10";
- pca9557 = <0>, "+11";
- pca9574 = <0>, "+12";
- pca9575 = <0>, "+13";
- pca9698 = <0>, "+14";
- pcal6416 = <0>, "+15";
- pcal6524 = <0>, "+16";
- pcal9555a = <0>, "+17";
- max7310 = <0>, "+18";
- max7312 = <0>, "+19";
- max7313 = <0>, "+20";
- max7315 = <0>, "+21";
- pca6107 = <0>, "+22";
- tca6408 = <0>, "+23";
- tca6416 = <0>, "+24";
- tca6424 = <0>, "+25";
- tca9539 = <0>, "+26";
- tca9554 = <0>, "+27";
- 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";
- i2c_csi_dsi0 = <&frag0>, "target:0=",<&i2c_csi_dsi0>,
- <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";
+ pca6416 = <&pca>,"compatible=nxp,pca6416";
+ pca9505 = <&pca>,"compatible=nxp,pca9505";
+ pca9535 = <&pca>,"compatible=nxp,pca9535";
+ pca9536 = <&pca>,"compatible=nxp,pca9536";
+ pca9537 = <&pca>,"compatible=nxp,pca9537";
+ pca9538 = <&pca>,"compatible=nxp,pca9538";
+ pca9539 = <&pca>,"compatible=nxp,pca9539";
+ pca9554 = <&pca>,"compatible=nxp,pca9554";
+ pca9555 = <&pca>,"compatible=nxp,pca9555";
+ pca9556 = <&pca>,"compatible=nxp,pca9556";
+ pca9557 = <&pca>,"compatible=nxp,pca9557";
+ pca9574 = <&pca>,"compatible=nxp,pca9574";
+ pca9575 = <&pca>,"compatible=nxp,pca9575";
+ pca9698 = <&pca>,"compatible=nxp,pca9698";
+ pcal6416 = <&pca>,"compatible=nxp,pcal6416";
+ pcal6524 = <&pca>,"compatible=nxp,pcal6524";
+ pcal9555a = <&pca>,"compatible=nxp,pcal9555a";
+ max7310 = <&pca>,"compatible=maxim,max7310";
+ max7312 = <&pca>,"compatible=maxim,max7312";
+ max7313 = <&pca>,"compatible=maxim,max7313";
+ max7315 = <&pca>,"compatible=maxim,max7315";
+ pca6107 = <&pca>,"compatible=ti,pca6107";
+ tca6408 = <&pca>,"compatible=ti,tca6408";
+ tca6416 = <&pca>,"compatible=ti,tca6416";
+ tca6424 = <&pca>,"compatible=ti,tca6424";
+ tca9539 = <&pca>,"compatible=ti,tca9539";
+ tca9554 = <&pca>,"compatible=ti,tca9554";
+ cat9554 = <&pca>,"compatible=onnn,cat9554";
+ pca9654 = <&pca>,"compatible=onnn,pca9654";
+ xra1202 = <&pca>,"compatible=exar,xra1202";
};
};
--- a/arch/arm/boot/dts/overlays/pcf857x-overlay.dts
+++ b/arch/arm/boot/dts/overlays/pcf857x-overlay.dts
@@ -3,11 +3,13 @@
/dts-v1/;
/plugin/;
+#include "i2c-buses.dtsi"
+
/ {
compatible = "brcm,bcm2835";
- frag0: fragment@0 {
- target = <&i2c_arm>;
+ fragment@0 {
+ target = <&i2cbus>;
__overlay__ {
#address-cells = <1>;
#size-cells = <0>;
@@ -22,41 +24,11 @@
};
};
- 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";
+ 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";
- i2c_csi_dsi0 = <&frag0>, "target:0=",<&i2c_csi_dsi0>,
- <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";
};
};
--- a/arch/arm/boot/dts/overlays/sc16is750-i2c-overlay.dts
+++ b/arch/arm/boot/dts/overlays/sc16is750-i2c-overlay.dts
@@ -1,15 +1,16 @@
/dts-v1/;
/plugin/;
+#include "i2c-buses.dtsi"
+
/ {
compatible = "brcm,bcm2835";
- frag0: fragment@0 {
- target = <&i2c_arm>;
+ fragment@0 {
+ target = <&i2cbus>;
__overlay__ {
#address-cells = <1>;
#size-cells = <0>;
- status = "okay";
sc16is750: sc16is750@48 {
compatible = "nxp,sc16is750";
@@ -48,40 +49,10 @@
};
};
- fragment@100 {
- target = <&i2c0if>;
- __dormant__ {
- status = "okay";
- };
- };
-
- fragment@101 {
- target = <&i2c0mux>;
- __dormant__ {
- status = "okay";
- };
- };
-
__overrides__ {
int_pin = <&sc16is750>,"interrupts:0", <&int_pins>,"brcm,pins:0",
<&int_pins>,"reg:0";
addr = <&sc16is750>,"reg:0", <&sc16is750_clk>,"name";
xtal = <&sc16is750_clk>,"clock-frequency:0";
- i2c0 = <&frag0>, "target:0=",<&i2c0>,
- <0>,"+100+101";
- i2c_csi_dsi = <&frag0>, "target:0=",<&i2c_csi_dsi>,
- <0>,"+100+101";
- i2c_csi_dsi0 = <&frag0>, "target:0=",<&i2c_csi_dsi0>,
- <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";
};
};
--- a/arch/arm/boot/dts/overlays/sc16is752-i2c-overlay.dts
+++ b/arch/arm/boot/dts/overlays/sc16is752-i2c-overlay.dts
@@ -1,15 +1,16 @@
/dts-v1/;
/plugin/;
+#include "i2c-buses.dtsi"
+
/ {
compatible = "brcm,bcm2835";
- frag0: fragment@0 {
- target = <&i2c_arm>;
+ fragment@0 {
+ target = <&i2cbus>;
__overlay__ {
#address-cells = <1>;
#size-cells = <0>;
- status = "okay";
sc16is752: sc16is752@48 {
compatible = "nxp,sc16is752";
@@ -48,40 +49,10 @@
};
};
- fragment@100 {
- target = <&i2c0if>;
- __dormant__ {
- status = "okay";
- };
- };
-
- fragment@101 {
- target = <&i2c0mux>;
- __dormant__ {
- status = "okay";
- };
- };
-
__overrides__ {
int_pin = <&sc16is752>,"interrupts:0", <&int_pins>,"brcm,pins:0",
<&int_pins>,"reg:0";
addr = <&sc16is752>,"reg:0",<&sc16is752_clk>,"name";
xtal = <&sc16is752_clk>,"clock-frequency:0";
- i2c0 = <&frag0>, "target:0=",<&i2c0>,
- <0>,"+100+101";
- i2c_csi_dsi = <&frag0>, "target:0=",<&i2c_csi_dsi>,
- <0>,"+100+101";
- i2c_csi_dsi0 = <&frag0>, "target:0=",<&i2c_csi_dsi0>,
- <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";
};
};
--- a/arch/arm/boot/dts/overlays/seeed-can-fd-hat-v2-overlay.dts
+++ b/arch/arm/boot/dts/overlays/seeed-can-fd-hat-v2-overlay.dts
@@ -98,8 +98,9 @@
};
};
fragment@8 {
- target = <&i2cbus>;
+ target = <&i2c_arm>;
__overlay__ {
+ status = "okay";
#address-cells = <1>;
#size-cells = <0>;
pcf85063@51 {
@@ -108,10 +109,4 @@
};
};
};
- fragment@9 {
- target = <&i2c_arm>;
- i2cbus: __overlay__ {
- status = "okay";
- };
- };
};
--- a/arch/arm/boot/dts/overlays/vc4-kms-dsi-7inch-overlay.dts
+++ b/arch/arm/boot/dts/overlays/vc4-kms-dsi-7inch-overlay.dts
@@ -1,4 +1,4 @@
-/*
+ /*
* Device Tree overlay for RaspberryPi 7" Touchscreen panel
*
*/
@@ -8,6 +8,11 @@
#include "edt-ft5406.dtsi"
+&ft5406 {
+ vcc-supply = <&reg_display>;
+ reset-gpio = <&reg_display 1 1>;
+};
+
/ {
/* No compatible as it will have come from edt-ft5406.dtsi */
@@ -77,7 +82,7 @@
i2c_frag: fragment@2 {
target = <&i2c_csi_dsi>;
- __overlay__ {
+ i2cbus: __overlay__ {
#address-cells = <1>;
#size-cells = <0>;
status = "okay";
@@ -104,18 +109,10 @@
status = "okay";
};
};
- fragment@5 {
- target = <&ft5406>;
- __overlay__ {
- vcc-supply = <&reg_display>;
- reset-gpio = <&reg_display 1 1>;
- };
- };
__overrides__ {
dsi0 = <&dsi_frag>, "target:0=",<&dsi0>,
<&i2c_frag>, "target:0=",<&i2c_csi_dsi0>,
- <&ts_i2c_frag>, "target:0=",<&i2c_csi_dsi0>,
<&panel_disp>, "reg:0=0",
<&reg_bridge>, "reg:0=0",
<&reg_bridge>, "regulator-name=bridge_reg_0";
--- a/arch/arm/boot/dts/overlays/vc4-kms-dsi-waveshare-800x480-overlay.dts
+++ b/arch/arm/boot/dts/overlays/vc4-kms-dsi-waveshare-800x480-overlay.dts
@@ -9,6 +9,11 @@
#include "edt-ft5406.dtsi"
+&ft5406 {
+ vcc-supply = <&reg_display>;
+ reset-gpio = <&reg_display 1 1>;
+};
+
/ {
/* No compatible as it will have come from edt-ft5406.dtsi */
@@ -73,7 +78,7 @@
i2c_frag: fragment@2 {
target = <&i2c_csi_dsi>;
- __overlay__ {
+ i2cbus: __overlay__ {
#address-cells = <1>;
#size-cells = <0>;
status = "okay";
@@ -100,18 +105,10 @@
status = "okay";
};
};
- fragment@5 {
- target = <&ft5406>;
- __overlay__ {
- vcc-supply = <&reg_display>;
- reset-gpio = <&reg_display 1 1>;
- };
- };
__overrides__ {
dsi0 = <&dsi_frag>, "target:0=",<&dsi0>,
<&i2c_frag>, "target:0=",<&i2c_csi_dsi0>,
- <&ts_i2c_frag>, "target:0=",<&i2c_csi_dsi0>,
<&reg_bridge>, "reg:0=0",
<&reg_bridge>, "regulator-name=bridge_reg_0";
disable_touch = <&ft5406>, "status=disabled";