// SPDX-License-Identifier: GPL-2.0+ /* * TI clock utilities * * Copyright (C) 2020 Dario Binacchi */ #include #include #include "clk.h" static void clk_ti_rmw(u32 val, u32 mask, fdt_addr_t reg) { u32 v; v = readl(reg); v &= ~mask; v |= val; writel(v, reg); } void clk_ti_latch(fdt_addr_t reg, s8 shift) { u32 latch; if (shift < 0) return; latch = 1 << shift; clk_ti_rmw(latch, latch, reg); clk_ti_rmw(0, latch, reg); readl(reg); /* OCP barrier */ }