1 // SPDX-License-Identifier: GPL-2.0 2 /* 3 * Copyright (C) 2026 Renesas Electronics Corp. 4 * Copyright (C) 2026 Ideas on Board Oy 5 * Copyright (C) 2026 Ragnatech AB 6 */ 7 8 #include "rppx1.h" 9 #include "rpp_module.h" 10 11 int rpp_module_probe(struct rpp_module *mod, struct rppx1 *rpp, 12 const struct rpp_module_ops *ops, u32 base) 13 { 14 mod->rpp = rpp; 15 mod->base = base; 16 mod->ops = ops; 17 18 if (ops->probe) 19 return ops->probe(mod); 20 21 return 0; 22 } 23 24 void rpp_module_write(struct rpp_module *mod, u32 offset, u32 value) 25 { 26 rppx1_write(mod->rpp, mod->base + offset, value); 27 } 28 29 u32 rpp_module_read(struct rpp_module *mod, u32 offset) 30 { 31 return rppx1_read(mod->rpp, mod->base + offset); 32 } 33 34 void rpp_module_clrset(struct rpp_module *mod, u32 offset, u32 mask, u32 value) 35 { 36 u32 reg = rpp_module_read(mod, offset) & ~mask; 37 38 rpp_module_write(mod, offset, reg | value); 39 } 40