forked from ~ljy/RK356X_SDK_RELEASE

hc
2024-05-10 cde9070d9970eef1f7ec2360586c802a16230ad8
kernel/drivers/clk/renesas/rcar-gen3-cpg.h
....@@ -1,11 +1,10 @@
1
+/* SPDX-License-Identifier: GPL-2.0 */
12 /*
23 * R-Car Gen3 Clock Pulse Generator
34 *
4
- * Copyright (C) 2015-2016 Glider bvba
5
+ * Copyright (C) 2015-2018 Glider bvba
6
+ * Copyright (C) 2018 Renesas Electronics Corp.
57 *
6
- * This program is free software; you can redistribute it and/or modify
7
- * it under the terms of the GNU General Public License as published by
8
- * the Free Software Foundation; version 2 of the License.
98 */
109
1110 #ifndef __CLK_RENESAS_RCAR_GEN3_CPG_H__
....@@ -20,19 +19,40 @@
2019 CLK_TYPE_GEN3_PLL4,
2120 CLK_TYPE_GEN3_SD,
2221 CLK_TYPE_GEN3_R,
23
- CLK_TYPE_GEN3_PE,
22
+ CLK_TYPE_GEN3_MDSEL, /* Select parent/divider using mode pin */
2423 CLK_TYPE_GEN3_Z,
25
- CLK_TYPE_GEN3_Z2,
24
+ CLK_TYPE_GEN3_OSC, /* OSC EXTAL predivider and fixed divider */
25
+ CLK_TYPE_GEN3_RCKSEL, /* Select parent/divider using RCKCR.CKSEL */
26
+ CLK_TYPE_GEN3_RPCSRC,
27
+ CLK_TYPE_GEN3_RPC,
28
+ CLK_TYPE_GEN3_RPCD2,
29
+
30
+ /* SoC specific definitions start here */
31
+ CLK_TYPE_GEN3_SOC_BASE,
2632 };
2733
2834 #define DEF_GEN3_SD(_name, _id, _parent, _offset) \
2935 DEF_BASE(_name, _id, CLK_TYPE_GEN3_SD, _parent, .offset = _offset)
3036
37
+#define DEF_GEN3_MDSEL(_name, _id, _md, _parent0, _div0, _parent1, _div1) \
38
+ DEF_BASE(_name, _id, CLK_TYPE_GEN3_MDSEL, \
39
+ (_parent0) << 16 | (_parent1), \
40
+ .div = (_div0) << 16 | (_div1), .offset = _md)
41
+
3142 #define DEF_GEN3_PE(_name, _id, _parent_sscg, _div_sscg, _parent_clean, \
3243 _div_clean) \
33
- DEF_BASE(_name, _id, CLK_TYPE_GEN3_PE, \
34
- (_parent_sscg) << 16 | (_parent_clean), \
35
- .div = (_div_sscg) << 16 | (_div_clean))
44
+ DEF_GEN3_MDSEL(_name, _id, 12, _parent_sscg, _div_sscg, \
45
+ _parent_clean, _div_clean)
46
+
47
+#define DEF_GEN3_OSC(_name, _id, _parent, _div) \
48
+ DEF_BASE(_name, _id, CLK_TYPE_GEN3_OSC, _parent, .div = _div)
49
+
50
+#define DEF_GEN3_RCKSEL(_name, _id, _parent0, _div0, _parent1, _div1) \
51
+ DEF_BASE(_name, _id, CLK_TYPE_GEN3_RCKSEL, \
52
+ (_parent0) << 16 | (_parent1), .div = (_div0) << 16 | (_div1))
53
+
54
+#define DEF_GEN3_Z(_name, _id, _type, _parent, _div, _offset) \
55
+ DEF_BASE(_name, _id, _type, _parent, .div = _div, .offset = _offset)
3656
3757 struct rcar_gen3_cpg_pll_config {
3858 u8 extal_div;
....@@ -40,8 +60,10 @@
4060 u8 pll1_div;
4161 u8 pll3_mult;
4262 u8 pll3_div;
63
+ u8 osc_prediv;
4364 };
4465
66
+#define CPG_RPCCKCR 0x238
4567 #define CPG_RCKCR 0x240
4668
4769 struct clk *rcar_gen3_cpg_clk_register(struct device *dev,