u-boot/drivers/clk/ti/clk.c
Simon Glass 401d1c4f5d common: Drop asm/global_data.h from common header
Move this out of the common header and include it only where needed.  In
a number of cases this requires adding "struct udevice;" to avoid adding
another large header or in other cases replacing / adding missing header
files that had been pulled in, very indirectly.   Finally, we have a few
cases where we did not need to include <asm/global_data.h> at all, so
remove that include.

Signed-off-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Tom Rini <trini@konsulko.com>
2021-02-02 15:33:42 -05:00

35 lines
538 B
C

// SPDX-License-Identifier: GPL-2.0+
/*
* TI clock utilities
*
* Copyright (C) 2020 Dario Binacchi <dariobin@libero.it>
*/
#include <common.h>
#include <fdtdec.h>
#include <asm/io.h>
#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 */
}