[PATCH 13/27] pca9551_led: Delete driver

Simon Glass sjg at chromium.org
Thu Sep 26 22:44:33 CEST 2024


This driver is not used anymore. Drop it.

Signed-off-by: Simon Glass <sjg at chromium.org>
---

 drivers/misc/Kconfig       |  13 ---
 drivers/misc/Makefile      |   1 -
 drivers/misc/pca9551_led.c | 170 -------------------------------------
 3 files changed, 184 deletions(-)
 delete mode 100644 drivers/misc/pca9551_led.c

diff --git a/drivers/misc/Kconfig b/drivers/misc/Kconfig
index 6009d55f400..23eb509d974 100644
--- a/drivers/misc/Kconfig
+++ b/drivers/misc/Kconfig
@@ -446,19 +446,6 @@ config SPL_PWRSEQ
 	  device. When the device is started up, its power sequence can be
 	  initiated.
 
-config PCA9551_LED
-	bool "Enable PCA9551 LED driver"
-	help
-	  Enable driver for PCA9551 LED controller. This controller
-	  is connected via I2C. So I2C needs to be enabled.
-
-config PCA9551_I2C_ADDR
-	hex "I2C address of PCA9551 LED controller"
-	depends on PCA9551_LED
-	default 0x60
-	help
-	  The I2C address of the PCA9551 LED controller.
-
 config STM32MP_FUSE
 	bool "Enable STM32MP fuse wrapper providing the fuse API"
 	depends on ARCH_STM32MP && MISC
diff --git a/drivers/misc/Makefile b/drivers/misc/Makefile
index c4941377b7d..03d87ef8a0e 100644
--- a/drivers/misc/Makefile
+++ b/drivers/misc/Makefile
@@ -57,7 +57,6 @@ obj-$(CONFIG_NPCM_OTP) += npcm_otp.o
 obj-$(CONFIG_NPCM_HOST) += npcm_host_intf.o
 obj-$(CONFIG_NUVOTON_NCT6102D) += nuvoton_nct6102d.o
 obj-$(CONFIG_P2SB) += p2sb-uclass.o
-obj-$(CONFIG_PCA9551_LED) += pca9551_led.o
 obj-$(CONFIG_$(SPL_)PWRSEQ) += pwrseq-uclass.o
 ifdef CONFIG_QFW
 obj-y += qfw.o
diff --git a/drivers/misc/pca9551_led.c b/drivers/misc/pca9551_led.c
deleted file mode 100644
index 040d0d5cf48..00000000000
--- a/drivers/misc/pca9551_led.c
+++ /dev/null
@@ -1,170 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0+
-/*
- * Copyright (C) 2015 Stefan Roese <sr at denx.de>
- */
-
-#include <errno.h>
-#include <i2c.h>
-#include <status_led.h>
-
-#ifndef CONFIG_PCA9551_I2C_ADDR
-#error "CONFIG_PCA9551_I2C_ADDR not defined!"
-#endif
-
-#define PCA9551_REG_INPUT	0x00	/* Input register (read only) */
-#define PCA9551_REG_PSC0	0x01	/* Frequency prescaler 0 */
-#define PCA9551_REG_PWM0	0x02	/* PWM0 */
-#define PCA9551_REG_PSC1	0x03	/* Frequency prescaler 1 */
-#define PCA9551_REG_PWM1	0x04	/* PWM1 */
-#define PCA9551_REG_LS0		0x05	/* LED0 to LED3 selector */
-#define PCA9551_REG_LS1		0x06	/* LED4 to LED7 selector */
-
-#define PCA9551_CTRL_AI		(1 << 4)	/* Auto-increment flag */
-
-#define PCA9551_LED_STATE_ON		0x00
-#define PCA9551_LED_STATE_OFF		0x01
-#define PCA9551_LED_STATE_BLINK0	0x02
-#define PCA9551_LED_STATE_BLINK1	0x03
-
-struct pca9551_blink_rate {
-	u8 psc;	/* Frequency preescaler, see PCA9551_7.pdf p. 6 */
-	u8 pwm;	/* Pulse width modulation, see PCA9551_7.pdf p. 6 */
-};
-
-static int freq_last = -1;
-static int mask_last = -1;
-static int idx_last = -1;
-static int mode_last;
-
-static int pca9551_led_get_state(int led, int *state)
-{
-	unsigned int reg;
-	u8 shift, buf;
-	int ret;
-
-	if (led < 0 || led > 7) {
-		return -EINVAL;
-	} else if (led < 4) {
-		reg = PCA9551_REG_LS0;
-		shift = led << 1;
-	} else {
-		reg = PCA9551_REG_LS1;
-		shift = (led - 4) << 1;
-	}
-
-	ret = i2c_read(CONFIG_PCA9551_I2C_ADDR, reg, 1, &buf, 1);
-	if (ret)
-		return ret;
-
-	*state = (buf >> shift) & 0x03;
-	return 0;
-}
-
-static int pca9551_led_set_state(int led, int state)
-{
-	unsigned int reg;
-	u8 shift, buf, mask;
-	int ret;
-
-	if (led < 0 || led > 7) {
-		return -EINVAL;
-	} else if (led < 4) {
-		reg = PCA9551_REG_LS0;
-		shift = led << 1;
-	} else {
-		reg = PCA9551_REG_LS1;
-		shift = (led - 4) << 1;
-	}
-	mask = 0x03 << shift;
-
-	ret = i2c_read(CONFIG_PCA9551_I2C_ADDR, reg, 1, &buf, 1);
-	if (ret)
-		return ret;
-
-	buf = (buf & ~mask) | ((state & 0x03) << shift);
-
-	ret = i2c_write(CONFIG_PCA9551_I2C_ADDR, reg, 1, &buf, 1);
-	if (ret)
-		return ret;
-
-	return 0;
-}
-
-static int pca9551_led_set_blink_rate(int idx, struct pca9551_blink_rate rate)
-{
-	unsigned int reg;
-	int ret;
-
-	switch (idx) {
-	case 0:
-		reg = PCA9551_REG_PSC0;
-		break;
-	case 1:
-		reg = PCA9551_REG_PSC1;
-		break;
-	default:
-		return -EINVAL;
-	}
-	reg |= PCA9551_CTRL_AI;
-
-	ret = i2c_write(CONFIG_PCA9551_I2C_ADDR, reg, 1, (u8 *)&rate, 2);
-	if (ret)
-		return ret;
-
-	return 0;
-}
-
-/*
- * Functions referenced by cmd_led.c or status_led.c
- */
-void __led_init(led_id_t id, int state)
-{
-}
-
-void __led_set(led_id_t mask, int state)
-{
-	if (state == CONFIG_LED_STATUS_OFF)
-		pca9551_led_set_state(mask, PCA9551_LED_STATE_OFF);
-	else
-		pca9551_led_set_state(mask, PCA9551_LED_STATE_ON);
-}
-
-void __led_toggle(led_id_t mask)
-{
-	int state = 0;
-
-	pca9551_led_get_state(mask, &state);
-	pca9551_led_set_state(mask, !state);
-}
-
-void __led_blink(led_id_t mask, int freq)
-{
-	struct pca9551_blink_rate rate;
-	int mode;
-	int idx;
-
-	if ((freq == freq_last) || (mask == mask_last)) {
-		idx = idx_last;
-		mode = mode_last;
-	} else {
-		/* Toggle blink index */
-		if (idx_last == 0) {
-			idx = 1;
-			mode = PCA9551_LED_STATE_BLINK1;
-		} else {
-			idx = 0;
-			mode = PCA9551_LED_STATE_BLINK0;
-		}
-
-		idx_last = idx;
-		mode_last = mode;
-	}
-	freq_last = freq;
-	mask_last = mask;
-
-	rate.psc = ((freq * 38) / 1000) - 1;
-	rate.pwm = 128;		/* 50% duty cycle */
-
-	pca9551_led_set_blink_rate(idx, rate);
-	pca9551_led_set_state(mask, mode);
-}
-- 
2.43.0



More information about the U-Boot mailing list