Files
openwrt-master/target/linux/bcm27xx/patches-6.6/950-1274-regulator-rpi-panel-Remove-the-ID-read.patch
domenico c06fb25d1f
Some checks failed
Build Kernel / Build all affected Kernels (push) Has been cancelled
Build all core packages / Build all core packages for selected target (push) Has been cancelled
Build and Push prebuilt tools container / Build and Push all prebuilt containers (push) Has been cancelled
Build Toolchains / Build Toolchains for each target (push) Has been cancelled
Build host tools / Build host tools for linux and macos based systems (push) Has been cancelled
Coverity scan build / Coverity x86/64 build (push) Has been cancelled
Initial commit
2025-06-24 14:35:53 +02:00

91 lines
2.4 KiB
Diff

From b510e5cbbf8b8e2da3198cf931452290629876b7 Mon Sep 17 00:00:00 2001
From: Dave Stevenson <dave.stevenson@raspberrypi.com>
Date: Fri, 20 Sep 2024 18:32:11 +0100
Subject: [PATCH 1274/1350] regulator/rpi-panel: Remove the ID read
Reading from the Atmel has always been troublesome due to
clock stretching, and the driver does nothing with it anyway.
Remove the read and assume that if the overlay has been
configured (most likely through the firmware autodetection)
that the hardware is present.
Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
---
.../regulator/rpi-panel-attiny-regulator.c | 50 -------------------
1 file changed, 50 deletions(-)
--- a/drivers/regulator/rpi-panel-attiny-regulator.c
+++ b/drivers/regulator/rpi-panel-attiny-regulator.c
@@ -229,39 +229,6 @@ static void attiny_gpio_set(struct gpio_
mutex_unlock(&state->lock);
}
-static int attiny_i2c_read(struct i2c_client *client, u8 reg, unsigned int *buf)
-{
- struct i2c_msg msgs[1];
- u8 addr_buf[1] = { reg };
- u8 data_buf[1] = { 0, };
- int ret;
-
- /* Write register address */
- msgs[0].addr = client->addr;
- msgs[0].flags = 0;
- msgs[0].len = ARRAY_SIZE(addr_buf);
- msgs[0].buf = addr_buf;
-
- ret = i2c_transfer(client->adapter, msgs, ARRAY_SIZE(msgs));
- if (ret != ARRAY_SIZE(msgs))
- return -EIO;
-
- usleep_range(5000, 10000);
-
- /* Read data from register */
- msgs[0].addr = client->addr;
- msgs[0].flags = I2C_M_RD;
- msgs[0].len = 1;
- msgs[0].buf = data_buf;
-
- ret = i2c_transfer(client->adapter, msgs, ARRAY_SIZE(msgs));
- if (ret != ARRAY_SIZE(msgs))
- return -EIO;
-
- *buf = data_buf[0];
- return 0;
-}
-
/*
* I2C driver interface functions
*/
@@ -273,7 +240,6 @@ static int attiny_i2c_probe(struct i2c_c
struct regulator_dev *rdev;
struct attiny_lcd *state;
struct regmap *regmap;
- unsigned int data;
int ret;
state = devm_kzalloc(&i2c->dev, sizeof(*state), GFP_KERNEL);
@@ -291,22 +257,6 @@ static int attiny_i2c_probe(struct i2c_c
goto error;
}
- ret = attiny_i2c_read(i2c, REG_ID, &data);
- if (ret < 0) {
- dev_err(&i2c->dev, "Failed to read REG_ID reg: %d\n", ret);
- goto error;
- }
-
- switch (data) {
- case 0xde: /* ver 1 */
- case 0xc3: /* ver 2 */
- break;
- default:
- dev_err(&i2c->dev, "Unknown Atmel firmware revision: 0x%02x\n", data);
- ret = -ENODEV;
- goto error;
- }
-
regmap_write(regmap, REG_POWERON, 0);
msleep(30);
regmap_write(regmap, REG_PWM, 0);