mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-23 23:42:43 +00:00
2e715fb4fc
Add support for BCM2712 (Raspberry Pi 5).
3bb5880ab3
Patches were generated from the diff between linux kernel branch linux-6.1.y
and rpi-6.1.y from raspberry pi kernel source:
- git format-patch linux-6.1.y...rpi-6.1.y
Build system: x86_64
Build-tested: bcm2708, bcm2709, bcm2710, bcm2711
Run-tested: bcm2710/RPi3B, bcm2711/RPi4B
Signed-off-by: Marty Jones <mj8263788@gmail.com>
[Remove applied and reverted patches, squash patches and config commits]
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
96 lines
2.5 KiB
Diff
96 lines
2.5 KiB
Diff
From 3ed6d34d53e94ecbebc64c8fa3d1b6d3c41db8fb Mon Sep 17 00:00:00 2001
|
|
From: Phil Elwell <phil@raspberrypi.com>
|
|
Date: Tue, 24 Oct 2023 09:58:52 +0100
|
|
Subject: [PATCH] fixup! overlays: mcp23017: allow specification of the i2c bus
|
|
|
|
The incorrect fragment order (*) caused broke the interrupt usage, and
|
|
while it was being fixed the lack of a reference to the pinctrl
|
|
declaration was noticed.
|
|
|
|
See: https://github.com/raspberrypi/linux/issues/5677
|
|
|
|
Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
|
|
|
(*) Ideally all fragments would appear in the file in the order in which
|
|
they should be merged, but that is easy to forget and can be awkward, so
|
|
the firmware merges all "intra" fragments (those that target other
|
|
fragments in the overlay) before "inter" fragments (those that target
|
|
the base DTB). However, intra fragments that target other intra
|
|
fragments is a level of nesting too far for this logic to cope, so they
|
|
must appear before the fragments they target.
|
|
---
|
|
.../boot/dts/overlays/mcp23017-overlay.dts | 42 ++++++++++---------
|
|
1 file changed, 22 insertions(+), 20 deletions(-)
|
|
|
|
--- a/arch/arm/boot/dts/overlays/mcp23017-overlay.dts
|
|
+++ b/arch/arm/boot/dts/overlays/mcp23017-overlay.dts
|
|
@@ -24,30 +24,13 @@
|
|
};
|
|
|
|
fragment@2 {
|
|
- target = <&i2cbus>;
|
|
- __overlay__ {
|
|
- #address-cells = <1>;
|
|
- #size-cells = <0>;
|
|
-
|
|
- mcp23017: mcp@20 {
|
|
- compatible = "microchip,mcp23017";
|
|
- reg = <0x20>;
|
|
- gpio-controller;
|
|
- #gpio-cells = <2>;
|
|
-
|
|
- status = "okay";
|
|
- };
|
|
- };
|
|
- };
|
|
-
|
|
- fragment@3 {
|
|
target = <&mcp23017>;
|
|
__dormant__ {
|
|
compatible = "microchip,mcp23008";
|
|
};
|
|
};
|
|
|
|
- fragment@4 {
|
|
+ fragment@3 {
|
|
target = <&mcp23017>;
|
|
mcp23017_irq: __overlay__ {
|
|
#interrupt-cells=<2>;
|
|
@@ -58,6 +41,25 @@
|
|
};
|
|
};
|
|
|
|
+ fragment@4 {
|
|
+ target = <&i2cbus>;
|
|
+ __overlay__ {
|
|
+ #address-cells = <1>;
|
|
+ #size-cells = <0>;
|
|
+
|
|
+ mcp23017: mcp@20 {
|
|
+ compatible = "microchip,mcp23017";
|
|
+ pinctrl-name = "default";
|
|
+ pinctrl-0 = <&mcp23017_pins>;
|
|
+ reg = <0x20>;
|
|
+ gpio-controller;
|
|
+ #gpio-cells = <2>;
|
|
+
|
|
+ status = "okay";
|
|
+ };
|
|
+ };
|
|
+ };
|
|
+
|
|
frag100: fragment@100 {
|
|
target = <&i2c1>;
|
|
i2cbus: __overlay__ {
|
|
@@ -83,8 +85,8 @@
|
|
gpiopin = <&mcp23017_pins>,"brcm,pins:0",
|
|
<&mcp23017_irq>,"interrupts:0";
|
|
addr = <&mcp23017>,"reg:0", <&mcp23017_pins>,"reg:0";
|
|
- mcp23008 = <0>,"=3";
|
|
- noints = <0>,"!1!4";
|
|
+ mcp23008 = <0>,"=2";
|
|
+ noints = <0>,"!1!3";
|
|
i2c0 = <&frag100>, "target:0=",<&i2c0>;
|
|
i2c_csi_dsi = <&frag100>, "target:0=",<&i2c_csi_dsi>,
|
|
<0>,"+101+102";
|