openwrt/target/linux/bcm27xx/patches-6.1/950-0539-overlays-i2c-sensor-Add-mpu6050-and-mpu9250.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

169 lines
5.8 KiB
Diff

From d9cc69d32d100db9e383c81bd5c8f62ec16fd61c Mon Sep 17 00:00:00 2001
From: Phil Elwell <phil@raspberrypi.com>
Date: Tue, 17 Jan 2023 15:47:04 +0000
Subject: [PATCH] overlays: i2c-sensor: Add mpu6050 and mpu9250
Add support for the MPU6050 and MPU9250 IMU sensors to the i2c-sensor
container overlay. At the same time, deprecate the standalone mpu6050
overlay, but keep it around for now.
(Also fix a few typos spotted while editing)
See: https://github.com/raspberrypi/linux/issues/5325
Signed-off-by: Phil Elwell <phil@raspberrypi.com>
---
arch/arm/boot/dts/overlays/README | 26 ++++++-----
.../boot/dts/overlays/i2c-sensor-common.dtsi | 43 ++++++++++++++++++-
arch/arm/boot/dts/overlays/overlay_map.dts | 4 ++
3 files changed, 61 insertions(+), 12 deletions(-)
--- a/arch/arm/boot/dts/overlays/README
+++ b/arch/arm/boot/dts/overlays/README
@@ -1983,8 +1983,8 @@ Info: Adds support for a number of I2C
Load: dtoverlay=i2c-sensor,<param>=<val>
Params: addr Set the address for the BH1750, BME280, BME680,
BMP280, CCS811, DS1621, HDC100X, JC42, LM75,
- MCP980x, MS5637, MS5803, MS5805, MS5837, MS8607,
- SHT3x or TMP102
+ MCP980x, MPU6050, MPU9250, MS5637, MS5803,
+ MS5805, MS5837, MS8607, SHT3x or TMP102
aht10 Select the Aosong AHT10 temperature and humidity
sensor
@@ -2016,8 +2016,8 @@ Params: addr Set the
htu21 Select the HTU21 temperature and humidity sensor
- int_pin Set the GPIO to use for interrupts (max30102
- only)
+ int_pin Set the GPIO to use for interrupts (max30102,
+ mpu6050 and mpu9250 only)
jc42 Select any of the many JEDEC JC42.4-compliant
temperature sensors, including:
@@ -2045,6 +2045,12 @@ Params: addr Set the
use the "jc42" option.
Valid addresses are 0x18-0x1f (default 0x18)
+ mpu6050 Select the InvenSense MPU6050 IMU. Valid
+ valid addresses are 0x68 and 0x69 (default 0x68)
+
+ mpu9250 Select the InvenSense MPU9250 IMU. Valid
+ valid addresses are 0x68 and 0x69 (default 0x68)
+
ms5637 Select the Measurement Specialities MS5637
pressure and temperature sensor.
@@ -2913,10 +2919,10 @@ Params: overclock_50 Clock (i
Name: mpu6050
-Info: Overlay for i2c connected mpu6050 imu
-Load: dtoverlay=mpu6050,<param>=<val>
-Params: interrupt GPIO pin for interrupt (default 4)
- addr I2C address of the device (default 0x68)
+Info: This overlay has been deprecated - use "dtoverlay=i2c-sensor,mpu6050"
+ instead. Note that "int_pin" is the new name for the "interrupt"
+ parameter.
+Load: <Deprecated>
Name: mz61581
@@ -3416,7 +3422,7 @@ Params: <None>
Name: rpi-dac
-Info: This overlay has been renaamed to i2s-dac.
+Info: This overlay has been renamed to i2s-dac.
Load: <Deprecated>
@@ -3546,7 +3552,7 @@ Params: poe_fan_temp0 Temperat
Name: rpi-proto
-Info: This overlay has been renamaed to proto-codec.
+Info: This overlay has been renamed to proto-codec.
Load: <Deprecated>
--- a/arch/arm/boot/dts/overlays/i2c-sensor-common.dtsi
+++ b/arch/arm/boot/dts/overlays/i2c-sensor-common.dtsi
@@ -421,6 +421,40 @@
};
};
+ fragment@28 {
+ target = <&i2cbus>;
+ __dormant__ {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ status = "okay";
+ clock-frequency = <400000>;
+
+ mpu6050: mpu6050@68 {
+ compatible = "invensense,mpu6050";
+ reg = <0x68>;
+ interrupt-parent = <&gpio>;
+ interrupts = <4 2>;
+ };
+ };
+ };
+
+ fragment@29 {
+ target = <&i2cbus>;
+ __dormant__ {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ status = "okay";
+ clock-frequency = <400000>;
+
+ mpu9250: mpu9250@68 {
+ compatible = "invensense,mpu9250";
+ reg = <0x68>;
+ interrupt-parent = <&gpio>;
+ interrupts = <4 2>;
+ };
+ };
+ };
+
__overrides__ {
bme280 = <0>,"+0";
bmp085 = <0>,"+1";
@@ -451,14 +485,19 @@
ms5805 = <0>,"+25";
ms5837 = <0>,"+26";
ms8607 = <0>,"+27";
+ mpu6050 = <0>,"+28";
+ mpu9250 = <0>,"+29";
addr = <&bme280>,"reg:0", <&bmp280>,"reg:0", <&tmp102>,"reg:0",
<&lm75>,"reg:0", <&hdc100x>,"reg:0", <&sht3x>,"reg:0",
<&ds1621>,"reg:0", <&bme680>,"reg:0", <&ccs811>,"reg:0",
<&bh1750>,"reg:0", <&mcp980x>,"reg:0", <&jc42>,"reg:0",
<&ms5637>,"reg:0", <&ms5803>,"reg:0", <&ms5805>,"reg:0",
- <&ms5837>,"reg:0", <&ms8607>,"reg:0";
- int_pin = <&max30102>, "interrupts:0";
+ <&ms5837>,"reg:0", <&ms8607>,"reg:0",
+ <&mpu6050>, "reg:0", <&mpu9250>, "reg:0";
+ int_pin = <&max30102>, "interrupts:0",
+ <&mpu6050>, "interrupts:0",
+ <&mpu9250>, "interrupts:0";
no_timeout = <&jc42>, "smbus-timeout-disable?";
};
};
--- a/arch/arm/boot/dts/overlays/overlay_map.dts
+++ b/arch/arm/boot/dts/overlays/overlay_map.dts
@@ -61,6 +61,10 @@
bcm2711;
};
+ mpu6050 {
+ deprecated = "use i2c-sensor,mpu6050";
+ };
+
pcie-32bit-dma {
bcm2711;
};