pwm: Reload counters when they reach 0

Add IT5570E register that controls when the down counters are updated.
Set them to update when they reach 0, instead of immediately when DCRi
is written.

Fixes keyboard color changing when changing brightness levels if not
using 0xFF for an RGB value.

Signed-off-by: Tim Crawford <tcrawford@system76.com>
This commit is contained in:
Tim Crawford
2022-10-11 13:18:14 -06:00
committed by Tim Crawford
parent 76019bdb61
commit f8d1123934
2 changed files with 10 additions and 0 deletions

View File

@ -26,6 +26,11 @@ void pwm_init(void) {
// Turn off CPU fan (temperature control in peci_get_fan_duty)
DCR2 = 0;
#ifdef it5570e
// Reload counters when they reach 0 instead of immediately
PWMLCCR = 0xFF;
#endif
// Enable PWM
ZTIER = BIT(1);
}

View File

@ -62,4 +62,9 @@ volatile uint8_t __xdata __at(0x1823) ZTIER;
// Tachometer switch control register
volatile uint8_t __xdata __at(0x1848) TSWCTLR;
#ifdef it5570e
// PWM Load Counter Control Register
volatile uint8_t __xdata __at(0x185A) PWMLCCR;
#endif
#endif // _EC_PWM_H