18bb67d87SWolfram Sang /* SPDX-License-Identifier: GPL-2.0 */ 28bb67d87SWolfram Sang /* 38bb67d87SWolfram Sang * R-Car Gen3 Clock Pulse Generator Library 48bb67d87SWolfram Sang * 58bb67d87SWolfram Sang * Copyright (C) 2015-2018 Glider bvba 68bb67d87SWolfram Sang * Copyright (C) 2019 Renesas Electronics Corp. 78bb67d87SWolfram Sang * 88bb67d87SWolfram Sang * Based on clk-rcar-gen3.c 98bb67d87SWolfram Sang * 108bb67d87SWolfram Sang * Copyright (C) 2015 Renesas Electronics Corp. 118bb67d87SWolfram Sang */ 128bb67d87SWolfram Sang 138bb67d87SWolfram Sang #ifndef __CLK_RENESAS_RCAR_CPG_LIB_H__ 148bb67d87SWolfram Sang #define __CLK_RENESAS_RCAR_CPG_LIB_H__ 158bb67d87SWolfram Sang 168bb67d87SWolfram Sang extern spinlock_t cpg_lock; 178bb67d87SWolfram Sang 188bb67d87SWolfram Sang struct cpg_simple_notifier { 198bb67d87SWolfram Sang struct notifier_block nb; 208bb67d87SWolfram Sang void __iomem *reg; 218bb67d87SWolfram Sang u32 saved; 228bb67d87SWolfram Sang }; 238bb67d87SWolfram Sang 248bb67d87SWolfram Sang void cpg_simple_notifier_register(struct raw_notifier_head *notifiers, 258bb67d87SWolfram Sang struct cpg_simple_notifier *csn); 268bb67d87SWolfram Sang 278bb67d87SWolfram Sang void cpg_reg_modify(void __iomem *reg, u32 clear, u32 set); 288bb67d87SWolfram Sang 29a31cf51bSWolfram Sang struct clk * __init cpg_sdh_clk_register(const char *name, 30a31cf51bSWolfram Sang void __iomem *sdnckcr, const char *parent_name, 31a31cf51bSWolfram Sang struct raw_notifier_head *notifiers); 32a31cf51bSWolfram Sang 338bb67d87SWolfram Sang struct clk * __init cpg_sd_clk_register(const char *name, 34*bb6d3fa9SWolfram Sang void __iomem *sdnckcr, const char *parent_name); 358bb67d87SWolfram Sang 366f21d145SWolfram Sang struct clk * __init cpg_rpc_clk_register(const char *name, 376f21d145SWolfram Sang void __iomem *rpcckcr, const char *parent_name, 386f21d145SWolfram Sang struct raw_notifier_head *notifiers); 396f21d145SWolfram Sang 406f21d145SWolfram Sang struct clk * __init cpg_rpcd2_clk_register(const char *name, 416f21d145SWolfram Sang void __iomem *rpcckcr, 426f21d145SWolfram Sang const char *parent_name); 438bb67d87SWolfram Sang #endif 44