From 8136eda6d48c8bc8dda5dfa439f7324d55448ca2 Mon Sep 17 00:00:00 2001 From: Ryan Date: Wed, 13 Sep 2023 22:53:15 +1000 Subject: is31fl3731: driver naming cleanups (#21918) --- drivers/led/issi/is31fl3731-simple.h | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) (limited to 'drivers/led/issi/is31fl3731-simple.h') diff --git a/drivers/led/issi/is31fl3731-simple.h b/drivers/led/issi/is31fl3731-simple.h index 69fba14a0b..ee830faca8 100644 --- a/drivers/led/issi/is31fl3731-simple.h +++ b/drivers/led/issi/is31fl3731-simple.h @@ -20,9 +20,23 @@ #include #include -#include #include "progmem.h" +// ======== DEPRECATED DEFINES - DO NOT USE ======== +#ifdef LED_DRIVER_COUNT +# define IS31FL3731_DRIVER_COUNT LED_DRIVER_COUNT +#endif +#ifdef ISSI_TIMEOUT +# define IS31FL3731_I2C_TIMEOUT ISSI_TIMEOUT +#endif +#ifdef ISSI_PERSISTENCE +# define IS31FL3731_I2C_PERSISTENCE ISSI_PERSISTENCE +#endif +#ifdef ISSI_3731_DEGHOST +# define IS31FL3731_DEGHOST ISSI_3731_DEGHOST +#endif +// ======== + typedef struct is31_led { uint8_t driver : 2; uint8_t v; -- cgit v1.2.3 From 8f221052897754870e5c08a2de92c24d20cd307e Mon Sep 17 00:00:00 2001 From: Ryan Date: Tue, 19 Sep 2023 19:31:54 +1000 Subject: Add and use I2C address defines for ISSI LED drivers (#22008) --- drivers/led/issi/is31fl3731-simple.h | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'drivers/led/issi/is31fl3731-simple.h') diff --git a/drivers/led/issi/is31fl3731-simple.h b/drivers/led/issi/is31fl3731-simple.h index ee830faca8..e6c9ce37c5 100644 --- a/drivers/led/issi/is31fl3731-simple.h +++ b/drivers/led/issi/is31fl3731-simple.h @@ -37,6 +37,11 @@ #endif // ======== +#define IS31FL3731_I2C_ADDRESS_GND 0x74 +#define IS31FL3731_I2C_ADDRESS_SCL 0x75 +#define IS31FL3731_I2C_ADDRESS_SDA 0x76 +#define IS31FL3731_I2C_ADDRESS_VCC 0x77 + typedef struct is31_led { uint8_t driver : 2; uint8_t v; -- cgit v1.2.3 From d99dbe4d56a5d414b8d131bf703257172af91b70 Mon Sep 17 00:00:00 2001 From: Ryan Date: Wed, 4 Oct 2023 20:12:50 +1100 Subject: Update ISSI LED types (#22099) --- drivers/led/issi/is31fl3731-simple.h | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'drivers/led/issi/is31fl3731-simple.h') diff --git a/drivers/led/issi/is31fl3731-simple.h b/drivers/led/issi/is31fl3731-simple.h index e6c9ce37c5..940ad413d8 100644 --- a/drivers/led/issi/is31fl3731-simple.h +++ b/drivers/led/issi/is31fl3731-simple.h @@ -35,6 +35,9 @@ #ifdef ISSI_3731_DEGHOST # define IS31FL3731_DEGHOST ISSI_3731_DEGHOST #endif + +#define is31_led is31fl3731_led_t +#define g_is31_leds g_is31fl3731_leds // ======== #define IS31FL3731_I2C_ADDRESS_GND 0x74 @@ -42,12 +45,12 @@ #define IS31FL3731_I2C_ADDRESS_SDA 0x76 #define IS31FL3731_I2C_ADDRESS_VCC 0x77 -typedef struct is31_led { +typedef struct is31fl3731_led_t { uint8_t driver : 2; uint8_t v; -} __attribute__((packed)) is31_led; +} __attribute__((packed)) is31fl3731_led_t; -extern const is31_led PROGMEM g_is31_leds[LED_MATRIX_LED_COUNT]; +extern const is31fl3731_led_t PROGMEM g_is31fl3731_leds[LED_MATRIX_LED_COUNT]; void is31fl3731_init(uint8_t addr); void is31fl3731_write_register(uint8_t addr, uint8_t reg, uint8_t data); -- cgit v1.2.3 From d56ee70c524b4fc4d1638e5e8c4bdeb89e752993 Mon Sep 17 00:00:00 2001 From: Ryan Date: Sat, 21 Oct 2023 21:41:59 +1000 Subject: Rename `DRIVER_ADDR_n` defines (#22200) Co-authored-by: Nick Brassel --- drivers/led/issi/is31fl3731-simple.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'drivers/led/issi/is31fl3731-simple.h') diff --git a/drivers/led/issi/is31fl3731-simple.h b/drivers/led/issi/is31fl3731-simple.h index 940ad413d8..3233fdc0d7 100644 --- a/drivers/led/issi/is31fl3731-simple.h +++ b/drivers/led/issi/is31fl3731-simple.h @@ -23,6 +23,18 @@ #include "progmem.h" // ======== DEPRECATED DEFINES - DO NOT USE ======== +#ifdef LED_DRIVER_ADDR_1 +# define IS31FL3731_I2C_ADDRESS_1 LED_DRIVER_ADDR_1 +#endif +#ifdef LED_DRIVER_ADDR_2 +# define IS31FL3731_I2C_ADDRESS_2 LED_DRIVER_ADDR_2 +#endif +#ifdef LED_DRIVER_ADDR_3 +# define IS31FL3731_I2C_ADDRESS_3 LED_DRIVER_ADDR_3 +#endif +#ifdef LED_DRIVER_ADDR_4 +# define IS31FL3731_I2C_ADDRESS_4 LED_DRIVER_ADDR_4 +#endif #ifdef LED_DRIVER_COUNT # define IS31FL3731_DRIVER_COUNT LED_DRIVER_COUNT #endif -- cgit v1.2.3 From cf7d3435d7e2cfb8927a1c436320f67bc9914eeb Mon Sep 17 00:00:00 2001 From: Ryan Date: Mon, 23 Oct 2023 03:32:27 +1000 Subject: Add `_flush()` functions to LED drivers (#22308) --- drivers/led/issi/is31fl3731-simple.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'drivers/led/issi/is31fl3731-simple.h') diff --git a/drivers/led/issi/is31fl3731-simple.h b/drivers/led/issi/is31fl3731-simple.h index 3233fdc0d7..69d38e74da 100644 --- a/drivers/led/issi/is31fl3731-simple.h +++ b/drivers/led/issi/is31fl3731-simple.h @@ -80,6 +80,8 @@ void is31fl3731_set_led_control_register(uint8_t index, bool value); void is31fl3731_update_pwm_buffers(uint8_t addr, uint8_t index); void is31fl3731_update_led_control_registers(uint8_t addr, uint8_t index); +void is31fl3731_flush(void); + #define C1_1 0x24 #define C1_2 0x25 #define C1_3 0x26 -- cgit v1.2.3 From 17ccf3521bc9623e29f1f6febd167c3886f37408 Mon Sep 17 00:00:00 2001 From: Ryan Date: Mon, 30 Oct 2023 08:39:26 +1000 Subject: Add `_LED_COUNT` defines to LED drivers (#22309) --- drivers/led/issi/is31fl3731-simple.h | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'drivers/led/issi/is31fl3731-simple.h') diff --git a/drivers/led/issi/is31fl3731-simple.h b/drivers/led/issi/is31fl3731-simple.h index 69d38e74da..2ab253717c 100644 --- a/drivers/led/issi/is31fl3731-simple.h +++ b/drivers/led/issi/is31fl3731-simple.h @@ -57,6 +57,10 @@ #define IS31FL3731_I2C_ADDRESS_SDA 0x76 #define IS31FL3731_I2C_ADDRESS_VCC 0x77 +#if defined(LED_MATRIX_IS31FL3731) +# define IS31FL3731_LED_COUNT LED_MATRIX_LED_COUNT +#endif + typedef struct is31fl3731_led_t { uint8_t driver : 2; uint8_t v; -- cgit v1.2.3 From b52aca0af83fade24c56b4bb7369f18183123bd3 Mon Sep 17 00:00:00 2001 From: Ryan Date: Wed, 1 Nov 2023 11:53:45 +1100 Subject: Relocate LED driver init code (#22365) --- drivers/led/issi/is31fl3731-simple.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'drivers/led/issi/is31fl3731-simple.h') diff --git a/drivers/led/issi/is31fl3731-simple.h b/drivers/led/issi/is31fl3731-simple.h index 2ab253717c..32504c1933 100644 --- a/drivers/led/issi/is31fl3731-simple.h +++ b/drivers/led/issi/is31fl3731-simple.h @@ -66,8 +66,9 @@ typedef struct is31fl3731_led_t { uint8_t v; } __attribute__((packed)) is31fl3731_led_t; -extern const is31fl3731_led_t PROGMEM g_is31fl3731_leds[LED_MATRIX_LED_COUNT]; +extern const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT]; +void is31fl3731_init_drivers(void); void is31fl3731_init(uint8_t addr); void is31fl3731_write_register(uint8_t addr, uint8_t reg, uint8_t data); void is31fl3731_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer); -- cgit v1.2.3 From 5d58534a8c1ad3cf17d2b40797de603d6e83de6d Mon Sep 17 00:00:00 2001 From: Ryan Date: Thu, 2 Nov 2023 14:31:09 +1100 Subject: LED drivers: use `PACKED` define from util.h (#22380) --- drivers/led/issi/is31fl3731-simple.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'drivers/led/issi/is31fl3731-simple.h') diff --git a/drivers/led/issi/is31fl3731-simple.h b/drivers/led/issi/is31fl3731-simple.h index 32504c1933..185e80683b 100644 --- a/drivers/led/issi/is31fl3731-simple.h +++ b/drivers/led/issi/is31fl3731-simple.h @@ -21,6 +21,7 @@ #include #include #include "progmem.h" +#include "util.h" // ======== DEPRECATED DEFINES - DO NOT USE ======== #ifdef LED_DRIVER_ADDR_1 @@ -64,7 +65,7 @@ typedef struct is31fl3731_led_t { uint8_t driver : 2; uint8_t v; -} __attribute__((packed)) is31fl3731_led_t; +} PACKED is31fl3731_led_t; extern const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT]; -- cgit v1.2.3 From 84df69572ce47f74213869120211f9db371cd3cf Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Fri, 10 Nov 2023 05:14:22 +0000 Subject: Infer LED DRIVER_COUNT from configured addresses (#22311) --- drivers/led/issi/is31fl3731-simple.h | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) (limited to 'drivers/led/issi/is31fl3731-simple.h') diff --git a/drivers/led/issi/is31fl3731-simple.h b/drivers/led/issi/is31fl3731-simple.h index 185e80683b..32b42feab0 100644 --- a/drivers/led/issi/is31fl3731-simple.h +++ b/drivers/led/issi/is31fl3731-simple.h @@ -36,9 +36,6 @@ #ifdef LED_DRIVER_ADDR_4 # define IS31FL3731_I2C_ADDRESS_4 LED_DRIVER_ADDR_4 #endif -#ifdef LED_DRIVER_COUNT -# define IS31FL3731_DRIVER_COUNT LED_DRIVER_COUNT -#endif #ifdef ISSI_TIMEOUT # define IS31FL3731_I2C_TIMEOUT ISSI_TIMEOUT #endif @@ -62,6 +59,16 @@ # define IS31FL3731_LED_COUNT LED_MATRIX_LED_COUNT #endif +#if defined IS31FL3731_I2C_ADDRESS_4 +# define IS31FL3731_DRIVER_COUNT 4 +#elif defined IS31FL3731_I2C_ADDRESS_3 +# define IS31FL3731_DRIVER_COUNT 3 +#elif defined IS31FL3731_I2C_ADDRESS_2 +# define IS31FL3731_DRIVER_COUNT 2 +#elif defined IS31FL3731_I2C_ADDRESS_1 +# define IS31FL3731_DRIVER_COUNT 1 +#endif + typedef struct is31fl3731_led_t { uint8_t driver : 2; uint8_t v; -- cgit v1.2.3 From dda6e7fb36f20821c60fbd7638c9bd016ef217d6 Mon Sep 17 00:00:00 2001 From: Ryan Date: Tue, 21 Nov 2023 02:48:23 +1100 Subject: LED drivers: register naming cleanups (#22436) --- drivers/led/issi/is31fl3731-simple.h | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'drivers/led/issi/is31fl3731-simple.h') diff --git a/drivers/led/issi/is31fl3731-simple.h b/drivers/led/issi/is31fl3731-simple.h index 32b42feab0..4d173847dd 100644 --- a/drivers/led/issi/is31fl3731-simple.h +++ b/drivers/led/issi/is31fl3731-simple.h @@ -50,6 +50,30 @@ #define g_is31_leds g_is31fl3731_leds // ======== +#define IS31FL3731_REG_COMMAND 0xFD +#define IS31FL3731_COMMAND_FRAME_1 0x00 +#define IS31FL3731_COMMAND_FRAME_2 0x01 +#define IS31FL3731_COMMAND_FRAME_3 0x02 +#define IS31FL3731_COMMAND_FRAME_4 0x03 +#define IS31FL3731_COMMAND_FRAME_5 0x04 +#define IS31FL3731_COMMAND_FRAME_6 0x05 +#define IS31FL3731_COMMAND_FRAME_7 0x06 +#define IS31FL3731_COMMAND_FRAME_8 0x07 +#define IS31FL3731_COMMAND_FUNCTION 0x0B + +#define IS31FL3731_FUNCTION_REG_CONFIG 0x00 +#define IS31FL3731_CONFIG_MODE_PICTURE 0x00 +#define IS31FL3731_CONFIG_MODE_AUTO_PLAY 0x08 +#define IS31FL3731_CONFIG_MODE_AUDIO_PLAY 0x18 + +#define IS31FL3731_FUNCTION_REG_PICTURE_DISPLAY 0x01 +#define IS31FL3731_FUNCTION_REG_AUDIO_SYNC 0x06 +#define IS31FL3731_FUNCTION_REG_SHUTDOWN 0x0A + +// Not defined in the datasheet -- See AN for IC +#define IS31FL3731_FUNCTION_REG_GHOST_IMAGE_PREVENTION 0xC2 +#define IS31FL3731_GHOST_IMAGE_PREVENTION_GEN 0x10 + #define IS31FL3731_I2C_ADDRESS_GND 0x74 #define IS31FL3731_I2C_ADDRESS_SCL 0x75 #define IS31FL3731_I2C_ADDRESS_SDA 0x76 -- cgit v1.2.3