mirror of
				https://github.com/mfulz/qmk_firmware.git
				synced 2025-10-30 21:02:32 +01:00 
			
		
		
		
	Add and use PWM frequency defines for ISSI LED drivers (#22009)
This commit is contained in:
		
							parent
							
								
									f9ed1e3ebc
								
							
						
					
					
						commit
						76daf29ef0
					
				| @ -60,7 +60,7 @@ | |||||||
| #endif | #endif | ||||||
| 
 | 
 | ||||||
| #ifndef IS31FL3733_PWM_FREQUENCY | #ifndef IS31FL3733_PWM_FREQUENCY | ||||||
| #    define IS31FL3733_PWM_FREQUENCY 0b000 // PFS - IS31FL3733B only
 | #    define IS31FL3733_PWM_FREQUENCY IS31FL3733_PWM_FREQUENCY_8K4_HZ // PFS - IS31FL3733B only
 | ||||||
| #endif | #endif | ||||||
| 
 | 
 | ||||||
| #ifndef IS31FL3733_SWPULLUP | #ifndef IS31FL3733_SWPULLUP | ||||||
|  | |||||||
| @ -87,6 +87,12 @@ void is31fl3733_update_led_control_registers(uint8_t addr, uint8_t index); | |||||||
| #define IS31FL3733_PUR_16KR 0x06 // 16k Ohm resistor on all the time
 | #define IS31FL3733_PUR_16KR 0x06 // 16k Ohm resistor on all the time
 | ||||||
| #define IS31FL3733_PUR_32KR 0x07 // 32k Ohm resistor in t_NOL
 | #define IS31FL3733_PUR_32KR 0x07 // 32k Ohm resistor in t_NOL
 | ||||||
| 
 | 
 | ||||||
|  | #define IS31FL3733_PWM_FREQUENCY_8K4_HZ 0b000 | ||||||
|  | #define IS31FL3733_PWM_FREQUENCY_4K2_HZ 0b001 | ||||||
|  | #define IS31FL3733_PWM_FREQUENCY_26K7_HZ 0b010 | ||||||
|  | #define IS31FL3733_PWM_FREQUENCY_2K1_HZ 0b011 | ||||||
|  | #define IS31FL3733_PWM_FREQUENCY_1K05_HZ 0b100 | ||||||
|  | 
 | ||||||
| #define A_1 0x00 | #define A_1 0x00 | ||||||
| #define A_2 0x01 | #define A_2 0x01 | ||||||
| #define A_3 0x02 | #define A_3 0x02 | ||||||
|  | |||||||
| @ -59,7 +59,7 @@ | |||||||
| #endif | #endif | ||||||
| 
 | 
 | ||||||
| #ifndef IS31FL3733_PWM_FREQUENCY | #ifndef IS31FL3733_PWM_FREQUENCY | ||||||
| #    define IS31FL3733_PWM_FREQUENCY 0b000 // PFS - IS31FL3733B only
 | #    define IS31FL3733_PWM_FREQUENCY IS31FL3733_PWM_FREQUENCY_8K4_HZ // PFS - IS31FL3733B only
 | ||||||
| #endif | #endif | ||||||
| 
 | 
 | ||||||
| #ifndef IS31FL3733_SWPULLUP | #ifndef IS31FL3733_SWPULLUP | ||||||
|  | |||||||
| @ -88,6 +88,12 @@ void is31fl3733_update_led_control_registers(uint8_t addr, uint8_t index); | |||||||
| #define IS31FL3733_PUR_16KR 0x06 // 16k Ohm resistor on all the time
 | #define IS31FL3733_PUR_16KR 0x06 // 16k Ohm resistor on all the time
 | ||||||
| #define IS31FL3733_PUR_32KR 0x07 // 32k Ohm resistor in t_NOL
 | #define IS31FL3733_PUR_32KR 0x07 // 32k Ohm resistor in t_NOL
 | ||||||
| 
 | 
 | ||||||
|  | #define IS31FL3733_PWM_FREQUENCY_8K4_HZ 0b000 | ||||||
|  | #define IS31FL3733_PWM_FREQUENCY_4K2_HZ 0b001 | ||||||
|  | #define IS31FL3733_PWM_FREQUENCY_26K7_HZ 0b010 | ||||||
|  | #define IS31FL3733_PWM_FREQUENCY_2K1_HZ 0b011 | ||||||
|  | #define IS31FL3733_PWM_FREQUENCY_1K05_HZ 0b100 | ||||||
|  | 
 | ||||||
| #define A_1 0x00 | #define A_1 0x00 | ||||||
| #define A_2 0x01 | #define A_2 0x01 | ||||||
| #define A_3 0x02 | #define A_3 0x02 | ||||||
|  | |||||||
| @ -48,7 +48,7 @@ | |||||||
| #define IS31FL3736_REG_SWPULLUP 0x0F      // PG3
 | #define IS31FL3736_REG_SWPULLUP 0x0F      // PG3
 | ||||||
| #define IS31FL3736_REG_CSPULLUP 0x10      // PG3
 | #define IS31FL3736_REG_CSPULLUP 0x10      // PG3
 | ||||||
| 
 | 
 | ||||||
| #ifndef IS31FL3736_TIMEOUT | #ifndef IS31FL3736_I2C_TIMEOUT | ||||||
| #    define IS31FL3736_I2C_TIMEOUT 100 | #    define IS31FL3736_I2C_TIMEOUT 100 | ||||||
| #endif | #endif | ||||||
| 
 | 
 | ||||||
| @ -56,6 +56,10 @@ | |||||||
| #    define IS31FL3736_I2C_PERSISTENCE 0 | #    define IS31FL3736_I2C_PERSISTENCE 0 | ||||||
| #endif | #endif | ||||||
| 
 | 
 | ||||||
|  | #ifndef IS31FL3736_PWM_FREQUENCY | ||||||
|  | #    define IS31FL3736_PWM_FREQUENCY IS31FL3736_PWM_FREQUENCY_8K4_HZ // PFS - IS31FL3736B only
 | ||||||
|  | #endif | ||||||
|  | 
 | ||||||
| #ifndef IS31FL3736_SWPULLUP | #ifndef IS31FL3736_SWPULLUP | ||||||
| #    define IS31FL3736_SWPULLUP IS31FL3736_PUR_0R | #    define IS31FL3736_SWPULLUP IS31FL3736_PUR_0R | ||||||
| #endif | #endif | ||||||
| @ -159,7 +163,7 @@ void is31fl3736_init(uint8_t addr) { | |||||||
|     // Set global current to maximum.
 |     // Set global current to maximum.
 | ||||||
|     is31fl3736_write_register(addr, IS31FL3736_REG_GLOBALCURRENT, IS31FL3736_GLOBALCURRENT); |     is31fl3736_write_register(addr, IS31FL3736_REG_GLOBALCURRENT, IS31FL3736_GLOBALCURRENT); | ||||||
|     // Disable software shutdown.
 |     // Disable software shutdown.
 | ||||||
|     is31fl3736_write_register(addr, IS31FL3736_REG_CONFIGURATION, 0x01); |     is31fl3736_write_register(addr, IS31FL3736_REG_CONFIGURATION, ((IS31FL3736_PWM_FREQUENCY & 0b111) << 3) | 0x01); | ||||||
| 
 | 
 | ||||||
|     // Wait 10ms to ensure the device has woken up.
 |     // Wait 10ms to ensure the device has woken up.
 | ||||||
|     wait_ms(10); |     wait_ms(10); | ||||||
|  | |||||||
| @ -89,6 +89,12 @@ void is31fl3736_update_led_control_registers(uint8_t addr, uint8_t index); | |||||||
| #define IS31FL3736_PUR_16KR 0x06 // 16k Ohm resistor
 | #define IS31FL3736_PUR_16KR 0x06 // 16k Ohm resistor
 | ||||||
| #define IS31FL3736_PUR_32KR 0x07 // 32k Ohm resistor
 | #define IS31FL3736_PUR_32KR 0x07 // 32k Ohm resistor
 | ||||||
| 
 | 
 | ||||||
|  | #define IS31FL3736_PWM_FREQUENCY_8K4_HZ 0b000 | ||||||
|  | #define IS31FL3736_PWM_FREQUENCY_4K2_HZ 0b001 | ||||||
|  | #define IS31FL3736_PWM_FREQUENCY_26K7_HZ 0b010 | ||||||
|  | #define IS31FL3736_PWM_FREQUENCY_2K1_HZ 0b011 | ||||||
|  | #define IS31FL3736_PWM_FREQUENCY_1K05_HZ 0b100 | ||||||
|  | 
 | ||||||
| #define A_1 0x00 | #define A_1 0x00 | ||||||
| #define A_2 0x02 | #define A_2 0x02 | ||||||
| #define A_3 0x04 | #define A_3 0x04 | ||||||
|  | |||||||
| @ -59,7 +59,7 @@ | |||||||
| #endif | #endif | ||||||
| 
 | 
 | ||||||
| #ifndef IS31FL3737_PWM_FREQUENCY | #ifndef IS31FL3737_PWM_FREQUENCY | ||||||
| #    define IS31FL3737_PWM_FREQUENCY 0b000 // PFS - IS31FL3737B only
 | #    define IS31FL3737_PWM_FREQUENCY IS31FL3737_PWM_FREQUENCY_8K4_HZ // PFS - IS31FL3737B only
 | ||||||
| #endif | #endif | ||||||
| 
 | 
 | ||||||
| #ifndef IS31FL3737_SWPULLUP | #ifndef IS31FL3737_SWPULLUP | ||||||
|  | |||||||
| @ -90,6 +90,12 @@ void is31fl3737_update_led_control_registers(uint8_t addr, uint8_t index); | |||||||
| #define IS31FL3737_PUR_16KR 0x06 // 16k Ohm resistor in t_NOL
 | #define IS31FL3737_PUR_16KR 0x06 // 16k Ohm resistor in t_NOL
 | ||||||
| #define IS31FL3737_PUR_32KR 0x07 // 32k Ohm resistor in t_NOL
 | #define IS31FL3737_PUR_32KR 0x07 // 32k Ohm resistor in t_NOL
 | ||||||
| 
 | 
 | ||||||
|  | #define IS31FL3737_PWM_FREQUENCY_8K4_HZ 0b000 | ||||||
|  | #define IS31FL3737_PWM_FREQUENCY_4K2_HZ 0b001 | ||||||
|  | #define IS31FL3737_PWM_FREQUENCY_26K7_HZ 0b010 | ||||||
|  | #define IS31FL3737_PWM_FREQUENCY_2K1_HZ 0b011 | ||||||
|  | #define IS31FL3737_PWM_FREQUENCY_1K05_HZ 0b100 | ||||||
|  | 
 | ||||||
| #define A_1 0x00 | #define A_1 0x00 | ||||||
| #define A_2 0x01 | #define A_2 0x01 | ||||||
| #define A_3 0x02 | #define A_3 0x02 | ||||||
|  | |||||||
| @ -49,6 +49,7 @@ | |||||||
| #define IS31FL3741_REG_CONFIGURATION 0x00 // PG4
 | #define IS31FL3741_REG_CONFIGURATION 0x00 // PG4
 | ||||||
| #define IS31FL3741_REG_GLOBALCURRENT 0x01 // PG4
 | #define IS31FL3741_REG_GLOBALCURRENT 0x01 // PG4
 | ||||||
| #define IS31FL3741_REG_PULLDOWNUP 0x02    // PG4
 | #define IS31FL3741_REG_PULLDOWNUP 0x02    // PG4
 | ||||||
|  | #define IS31FL3741_REG_PWM_FREQUENCY 0x36 // PG4
 | ||||||
| #define IS31FL3741_REG_RESET 0x3F         // PG4
 | #define IS31FL3741_REG_RESET 0x3F         // PG4
 | ||||||
| 
 | 
 | ||||||
| #ifndef IS31FL3741_I2C_TIMEOUT | #ifndef IS31FL3741_I2C_TIMEOUT | ||||||
| @ -63,6 +64,10 @@ | |||||||
| #    define IS31FL3741_CONFIGURATION 0x01 | #    define IS31FL3741_CONFIGURATION 0x01 | ||||||
| #endif | #endif | ||||||
| 
 | 
 | ||||||
|  | #ifndef IS31FL3741_PWM_FREQUENCY | ||||||
|  | #    define IS31FL3741_PWM_FREQUENCY IS31FL3741_PWM_FREQUENCY_29K_HZ | ||||||
|  | #endif | ||||||
|  | 
 | ||||||
| #ifndef IS31FL3741_SWPULLUP | #ifndef IS31FL3741_SWPULLUP | ||||||
| #    define IS31FL3741_SWPULLUP IS31FL3741_PUR_32KR | #    define IS31FL3741_SWPULLUP IS31FL3741_PUR_32KR | ||||||
| #endif | #endif | ||||||
| @ -170,6 +175,8 @@ void is31fl3741_init(uint8_t addr) { | |||||||
|     is31fl3741_write_register(addr, IS31FL3741_REG_GLOBALCURRENT, IS31FL3741_GLOBALCURRENT); |     is31fl3741_write_register(addr, IS31FL3741_REG_GLOBALCURRENT, IS31FL3741_GLOBALCURRENT); | ||||||
|     // Set Pull up & Down for SWx CSy
 |     // Set Pull up & Down for SWx CSy
 | ||||||
|     is31fl3741_write_register(addr, IS31FL3741_REG_PULLDOWNUP, ((IS31FL3741_CSPULLUP << 4) | IS31FL3741_SWPULLUP)); |     is31fl3741_write_register(addr, IS31FL3741_REG_PULLDOWNUP, ((IS31FL3741_CSPULLUP << 4) | IS31FL3741_SWPULLUP)); | ||||||
|  |     // Set PWM frequency
 | ||||||
|  |     is31fl3741_write_register(addr, IS31FL3741_REG_PWM_FREQUENCY, (IS31FL3741_PWM_FREQUENCY & 0b1111)); | ||||||
| 
 | 
 | ||||||
|     // is31fl3741_update_led_scaling_registers(addr, 0xFF, 0xFF, 0xFF);
 |     // is31fl3741_update_led_scaling_registers(addr, 0xFF, 0xFF, 0xFF);
 | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -93,6 +93,11 @@ void is31fl3741_set_pwm_buffer(const is31_led *pled, uint8_t red, uint8_t green, | |||||||
| #define IS31FL3741_PUR_16KR 0x06 // 16k Ohm resistor
 | #define IS31FL3741_PUR_16KR 0x06 // 16k Ohm resistor
 | ||||||
| #define IS31FL3741_PUR_32KR 0x07 // 32k Ohm resistor
 | #define IS31FL3741_PUR_32KR 0x07 // 32k Ohm resistor
 | ||||||
| 
 | 
 | ||||||
|  | #define IS31FL3741_PWM_FREQUENCY_29K_HZ 0b0000 | ||||||
|  | #define IS31FL3741_PWM_FREQUENCY_3K6_HZ 0b0011 | ||||||
|  | #define IS31FL3741_PWM_FREQUENCY_1K8_HZ 0b0111 | ||||||
|  | #define IS31FL3741_PWM_FREQUENCY_900_HZ 0b1011 | ||||||
|  | 
 | ||||||
| #define CS1_SW1 0x00 | #define CS1_SW1 0x00 | ||||||
| #define CS2_SW1 0x01 | #define CS2_SW1 0x01 | ||||||
| #define CS3_SW1 0x02 | #define CS3_SW1 0x02 | ||||||
|  | |||||||
| @ -24,7 +24,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>. | |||||||
| #define DRIVER_ADDR_1 0b1010000 | #define DRIVER_ADDR_1 0b1010000 | ||||||
| #define IS31FL3733_DRIVER_COUNT 1 | #define IS31FL3733_DRIVER_COUNT 1 | ||||||
| #define RGB_MATRIX_LED_COUNT 62 | #define RGB_MATRIX_LED_COUNT 62 | ||||||
| #define IS31FL3733_PWM_FREQUENCY 0b010 | #define IS31FL3733_PWM_FREQUENCY IS31FL3733_PWM_FREQUENCY_26K7_HZ | ||||||
| 
 | 
 | ||||||
| #define RGB_MATRIX_DEFAULT_VAL 80 | #define RGB_MATRIX_DEFAULT_VAL 80 | ||||||
| #define RGB_MATRIX_KEYPRESSES | #define RGB_MATRIX_KEYPRESSES | ||||||
|  | |||||||
| @ -18,7 +18,7 @@ | |||||||
| #define DRIVER_ADDR_2 0b1011111 | #define DRIVER_ADDR_2 0b1011111 | ||||||
| #define IS31FL3733_DRIVER_COUNT 2 | #define IS31FL3733_DRIVER_COUNT 2 | ||||||
| #define RGB_MATRIX_LED_COUNT 111 | #define RGB_MATRIX_LED_COUNT 111 | ||||||
| #define IS31FL3733_PWM_FREQUENCY 0b010 // 26k
 | #define IS31FL3733_PWM_FREQUENCY IS31FL3733_PWM_FREQUENCY_26K7_HZ | ||||||
| 
 | 
 | ||||||
| #define RGB_DISABLE_WHEN_USB_SUSPENDED | #define RGB_DISABLE_WHEN_USB_SUSPENDED | ||||||
| #define RGB_MATRIX_DEFAULT_VAL 100 | #define RGB_MATRIX_DEFAULT_VAL 100 | ||||||
|  | |||||||
| @ -18,7 +18,7 @@ | |||||||
| #define DRIVER_ADDR_2 0b1011111 | #define DRIVER_ADDR_2 0b1011111 | ||||||
| #define IS31FL3733_DRIVER_COUNT 2 | #define IS31FL3733_DRIVER_COUNT 2 | ||||||
| #define RGB_MATRIX_LED_COUNT 119 | #define RGB_MATRIX_LED_COUNT 119 | ||||||
| #define IS31FL3733_PWM_FREQUENCY 0b010 // 26k
 | #define IS31FL3733_PWM_FREQUENCY IS31FL3733_PWM_FREQUENCY_26K7_HZ | ||||||
| 
 | 
 | ||||||
| #define RGB_DISABLE_WHEN_USB_SUSPENDED | #define RGB_DISABLE_WHEN_USB_SUSPENDED | ||||||
| #define RGB_MATRIX_DEFAULT_VAL 100 | #define RGB_MATRIX_DEFAULT_VAL 100 | ||||||
|  | |||||||
| @ -13,7 +13,7 @@ | |||||||
| #define DRIVER_ADDR_2 0b1011111 | #define DRIVER_ADDR_2 0b1011111 | ||||||
| #define IS31FL3733_DRIVER_COUNT 2 | #define IS31FL3733_DRIVER_COUNT 2 | ||||||
| #define RGB_MATRIX_LED_COUNT 111 | #define RGB_MATRIX_LED_COUNT 111 | ||||||
| #define IS31FL3733_PWM_FREQUENCY 0b010 // 26k
 | #define IS31FL3733_PWM_FREQUENCY IS31FL3733_PWM_FREQUENCY_26K7_HZ | ||||||
| 
 | 
 | ||||||
| #define RGB_DISABLE_WHEN_USB_SUSPENDED | #define RGB_DISABLE_WHEN_USB_SUSPENDED | ||||||
| #define RGB_MATRIX_KEYPRESSES | #define RGB_MATRIX_KEYPRESSES | ||||||
|  | |||||||
| @ -19,7 +19,7 @@ | |||||||
| #define DRIVER_ADDR_3 0b1010000 | #define DRIVER_ADDR_3 0b1010000 | ||||||
| #define IS31FL3733_DRIVER_COUNT 3 | #define IS31FL3733_DRIVER_COUNT 3 | ||||||
| #define RGB_MATRIX_LED_COUNT 166 | #define RGB_MATRIX_LED_COUNT 166 | ||||||
| #define IS31FL3733_PWM_FREQUENCY 0b010 // 26k
 | #define IS31FL3733_PWM_FREQUENCY IS31FL3733_PWM_FREQUENCY_26K7_HZ | ||||||
| 
 | 
 | ||||||
| #define RGB_DISABLE_WHEN_USB_SUSPENDED | #define RGB_DISABLE_WHEN_USB_SUSPENDED | ||||||
| #define RGB_MATRIX_DEFAULT_VAL 100 | #define RGB_MATRIX_DEFAULT_VAL 100 | ||||||
|  | |||||||
| @ -3,7 +3,7 @@ | |||||||
| 
 | 
 | ||||||
| #pragma once | #pragma once | ||||||
| 
 | 
 | ||||||
| #define IS31FL3737_PWM_FREQUENCY 0b010 | #define IS31FL3737_PWM_FREQUENCY IS31FL3737_PWM_FREQUENCY_26K7_HZ | ||||||
| #define IS31FL3737_DRIVER_COUNT 1 | #define IS31FL3737_DRIVER_COUNT 1 | ||||||
| #define RGB_MATRIX_LED_COUNT 48 | #define RGB_MATRIX_LED_COUNT 48 | ||||||
| #define DRIVER_ADDR_1 0b1010000 | #define DRIVER_ADDR_1 0b1010000 | ||||||
|  | |||||||
| @ -57,7 +57,7 @@ | |||||||
| #endif | #endif | ||||||
| 
 | 
 | ||||||
| #ifndef IS31FL3733_PWM_FREQUENCY | #ifndef IS31FL3733_PWM_FREQUENCY | ||||||
| #    define IS31FL3733_PWM_FREQUENCY 0b000 // PFS - IS31FL3733B only
 | #    define IS31FL3733_PWM_FREQUENCY IS31FL3733_PWM_FREQUENCY_8K4_HZ // PFS - IS31FL3733B only
 | ||||||
| #endif | #endif | ||||||
| 
 | 
 | ||||||
| #ifndef IS31FL3733_SWPULLUP | #ifndef IS31FL3733_SWPULLUP | ||||||
|  | |||||||
| @ -55,6 +55,12 @@ void is31fl3733_update_led_control_registers(uint8_t addr, uint8_t index); | |||||||
| #define IS31FL3733_PUR_16KR 0x06 // 16k Ohm resistor on all the time
 | #define IS31FL3733_PUR_16KR 0x06 // 16k Ohm resistor on all the time
 | ||||||
| #define IS31FL3733_PUR_32KR 0x07 // 32k Ohm resistor in t_NOL
 | #define IS31FL3733_PUR_32KR 0x07 // 32k Ohm resistor in t_NOL
 | ||||||
| 
 | 
 | ||||||
|  | #define IS31FL3733_PWM_FREQUENCY_8K4_HZ 0x00 | ||||||
|  | #define IS31FL3733_PWM_FREQUENCY_4K2_HZ 0x01 | ||||||
|  | #define IS31FL3733_PWM_FREQUENCY_26K7_HZ 0x02 | ||||||
|  | #define IS31FL3733_PWM_FREQUENCY_2K1_HZ 0x03 | ||||||
|  | #define IS31FL3733_PWM_FREQUENCY_1K05_HZ 0x04 | ||||||
|  | 
 | ||||||
| #define A_1 0x00 | #define A_1 0x00 | ||||||
| #define A_2 0x01 | #define A_2 0x01 | ||||||
| #define A_3 0x02 | #define A_3 0x02 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Ryan
						Ryan