+static const char * const hp_poweron_time_text[] = {
- "0us", "15.3us", "153us", "1.53ms", "15.3ms", "76.2ms",
- "153ms", "304ms", "610ms", "1.22s", "3.04s", "6.1s" };
+static SOC_ENUM_SINGLE_DECL(hp_poweron_time_enum, AIC31XX_HPPOP, 3,
- hp_poweron_time_text);
+static const char * const hp_rampup_step_text[] = {
- "0ms", "0.98ms", "1.95ms", "3.9ms" };
+static SOC_ENUM_SINGLE_DECL(hp_rampup_step_enum, AIC31XX_HPPOP, 1,
- hp_rampup_step_text);
I'm not seeing any integration with DAPM here, I'd expect to see that so we don't cut off the start of audio especially with the longer times available (which I'm frankly not sure are seriously usable).
I believe driver already has that integration, there is aic31xx_dapm_power_event() that is called on DAPM events, and polls state in register bits waiting for operation to complete.
Btw, the default setting for register fields in question is "304ms" / "3.9ms" thus some delay is already there. This patch just makes it explicitly controllable by those who wait it.