On 14/01/2025 22:57, Ivaylo Ivanov wrote: > On 1/14/25 20:03, Krzysztof Kozlowski wrote: >> On 09/01/2025 10:03, Ivaylo Ivanov wrote: >>> +static void exynos_usi_unconfigure(void *data) >>> +{ >>> + struct exynos_usi *usi = data; >>> + u32 val; >>> + >>> + /* Make sure that we've stopped providing the clock to USI IP */ >>> + val = readl(usi->regs + USI_OPTION); >>> + val &= ~USI_OPTION_CLKREQ_ON; >>> + val |= ~USI_OPTION_CLKSTOP_ON; >>> + writel(val, usi->regs + USI_OPTION); >>> + >>> + /* Set USI block state to reset */ >>> + val = readl(usi->regs + USI_CON); >>> + val |= USI_CON_RESET; >>> + writel(val, usi->regs + USI_CON); >> Also shouldn't you enable clocks for accessing these? They are being >> disabled at the end of exynos_usi_enable(). > > Hm, perhaps. But I find that weird, since I haven't seen it in the downstream > driver implementation. So the downstream enables clocks when configured usi, but never when unconfiguring? I could believe that no one cared about remove/error paths, thus never tested. Best regards, Krzysztof