mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-12-04 10:30:32 +00:00
1b4ca865b2
R-Car V3U has a CPG different enough to not be a generic Gen3 CPG but similar enough to reuse code. Introduce a new CPG library, factor out the SD clock and RPC clock handling and hook them to the generic Gen3 CPG driver so we have an equal state. Based on Linux commit [1] and [2] by Wolfram Sang [1] 8bb67d87346a ("clk: renesas: rcar-gen3: Factor out CPG library") [2] 6f21d145b90f ("clk: renesas: cpg-lib: Move RPC clock registration to the library") Signed-off-by: Hai Pham <hai.pham.ud@renesas.com> Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org> Marek: - Add rcar_clk_* prefix to all functions - Rebase on changes to clk: renesas: Introduce and use rcar_clk_get_rate64_div_table function - Use u32_encode_bits/GENMASK bitfield ops
33 lines
1.2 KiB
C
33 lines
1.2 KiB
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
/*
|
|
* R-Car Gen3 Clock Pulse Generator Library
|
|
*
|
|
* Copyright (C) 2015-2018 Glider bvba
|
|
* Copyright (C) 2019 Renesas Electronics Corp.
|
|
*
|
|
* Based on clk-rcar-gen3.c
|
|
*
|
|
* Copyright (C) 2015 Renesas Electronics Corp.
|
|
*/
|
|
|
|
#ifndef __CLK_RENESAS_RCAR_CPG_LIB_H__
|
|
#define __CLK_RENESAS_RCAR_CPG_LIB_H__
|
|
|
|
s64 rcar_clk_get_rate64_div_table(unsigned int parent, u64 parent_rate,
|
|
void __iomem *reg, const u32 mask,
|
|
const struct clk_div_table *table, char *name);
|
|
|
|
int rcar_clk_set_rate64_div_table(unsigned int parent, u64 parent_rate, ulong rate,
|
|
void __iomem *reg, const u32 mask,
|
|
const struct clk_div_table *table, char *name);
|
|
|
|
s64 rcar_clk_get_rate64_sdh(unsigned int parent, u64 parent_rate, void __iomem *reg);
|
|
s64 rcar_clk_get_rate64_sd(unsigned int parent, u64 parent_rate, void __iomem *reg);
|
|
s64 rcar_clk_get_rate64_rpc(unsigned int parent, u64 parent_rate, void __iomem *reg);
|
|
u64 rcar_clk_get_rate64_rpcd2(unsigned int parent, u64 parent_rate);
|
|
int rcar_clk_set_rate64_sdh(unsigned int parent, u64 parent_rate, ulong rate,
|
|
void __iomem *reg);
|
|
int rcar_clk_set_rate64_sd(unsigned int parent, u64 parent_rate, ulong rate,
|
|
void __iomem *reg);
|
|
|
|
#endif
|