openwrt/target/linux/bcm27xx/patches-6.1/950-0693-dtoverlays-Add-overrides-for-alternate-i2c-buses-to-.patch
Álvaro Fernández Rojas 793f8ab62c bcm27xx: 6.1: add kernel patches
Add kernel patches for version 6.1.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2023-06-09 19:12:30 +02:00

89 lines
2.7 KiB
Diff

From aa985e8be1c2fe4600b68831808c0b70241a37a6 Mon Sep 17 00:00:00 2001
From: Dave Stevenson <dave.stevenson@raspberrypi.com>
Date: Mon, 24 Apr 2023 16:30:07 +0100
Subject: [PATCH] dtoverlays: Add overrides for alternate i2c buses to
i2c-pwm-pva9685a
The i2c-pwm-pca9685a overlay was fixed to i2c-1. Add overrides to allow
it to be assigned to alternate buses.
Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
---
arch/arm/boot/dts/overlays/README | 10 +++++
.../dts/overlays/i2c-pwm-pca9685a-overlay.dts | 37 ++++++++++++++++++-
2 files changed, 46 insertions(+), 1 deletion(-)
--- a/arch/arm/boot/dts/overlays/README
+++ b/arch/arm/boot/dts/overlays/README
@@ -1857,6 +1857,16 @@ 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 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)
Name: i2c-rtc
--- a/arch/arm/boot/dts/overlays/i2c-pwm-pca9685a-overlay.dts
+++ b/arch/arm/boot/dts/overlays/i2c-pwm-pca9685a-overlay.dts
@@ -6,7 +6,7 @@
compatible = "brcm,bcm2835";
fragment@0 {
- target = <&i2c_arm>;
+ target = <&i2cbus>;
__overlay__ {
#address-cells = <1>;
#size-cells = <0>;
@@ -20,7 +20,42 @@
};
};
};
+
+
+ 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";
+ 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";
};
};