| /* |
| * Copyright (c) 2022 IoT.bzh |
| * |
| * SPDX-License-Identifier: Apache-2.0 |
| */ |
| |
| #ifndef ZEPHYR_DRIVERS_RENESAS_RENESAS_CPG_MSSR_H_ |
| #define ZEPHYR_DRIVERS_RENESAS_RENESAS_CPG_MSSR_H_ |
| |
| #ifdef CONFIG_SOC_SERIES_RCAR_GEN3 |
| /* Software Reset Clearing Register offsets */ |
| #define SRSTCLR(i) (0x940 + (i) * 4) |
| |
| /* CPG write protect offset */ |
| #define CPGWPR 0x900 |
| |
| /* Realtime Module Stop Control Register offsets */ |
| static const uint16_t mstpcr[] = { |
| 0x110, 0x114, 0x118, 0x11c, |
| 0x120, 0x124, 0x128, 0x12c, |
| 0x980, 0x984, 0x988, 0x98c, |
| }; |
| |
| /* Software Reset Register offsets */ |
| static const uint16_t srcr[] = { |
| 0x0A0, 0x0A8, 0x0B0, 0x0B8, |
| 0x0BC, 0x0C4, 0x1C8, 0x1CC, |
| 0x920, 0x924, 0x928, 0x92C, |
| }; |
| |
| /* CAN-FD Clock Frequency Control Register */ |
| #define CANFDCKCR 0x244 |
| |
| /* Clock stop bit */ |
| #define CANFDCKCR_CKSTP BIT(8) |
| |
| /* CANFD Clock */ |
| #define CANFDCKCR_PARENT_CLK_RATE 800000000 |
| #define CANFDCKCR_DIVIDER_MASK 0x1FF |
| |
| /* Peripherals Clocks */ |
| #define S3D4_CLK_RATE 66600000 /* SCIF */ |
| #define S0D12_CLK_RATE 66600000 /* PWM */ |
| #endif /* CONFIG_SOC_SERIES_RCAR_GEN3 */ |
| |
| void rcar_cpg_write(uint32_t base_address, uint32_t reg, uint32_t val); |
| |
| int rcar_cpg_mstp_clock_endisable(uint32_t base_address, uint32_t module, bool enable); |
| |
| #endif /* ZEPHYR_DRIVERS_RENESAS_RENESAS_CPG_MSSR_H_ */ |