644f0b0fddf258d20e8d40141514117bfc65ead4
[platform/kernel/linux-starfive.git] / drivers / clk / meson / axg-audio.h
1 /* SPDX-License-Identifier: (GPL-2.0 OR MIT) */
2 /*
3  * Copyright (c) 2018 BayLibre, SAS.
4  * Author: Jerome Brunet <jbrunet@baylibre.com>
5  */
6
7 #ifndef __AXG_AUDIO_CLKC_H
8 #define __AXG_AUDIO_CLKC_H
9
10 /*
11  * Audio Clock  register offsets
12  *
13  * Register offsets from the datasheet must be multiplied by 4 before
14  * to get the right offset
15  */
16 #define AUDIO_CLK_GATE_EN       0x000
17 #define AUDIO_MCLK_A_CTRL       0x004
18 #define AUDIO_MCLK_B_CTRL       0x008
19 #define AUDIO_MCLK_C_CTRL       0x00C
20 #define AUDIO_MCLK_D_CTRL       0x010
21 #define AUDIO_MCLK_E_CTRL       0x014
22 #define AUDIO_MCLK_F_CTRL       0x018
23 #define AUDIO_MST_A_SCLK_CTRL0  0x040
24 #define AUDIO_MST_A_SCLK_CTRL1  0x044
25 #define AUDIO_MST_B_SCLK_CTRL0  0x048
26 #define AUDIO_MST_B_SCLK_CTRL1  0x04C
27 #define AUDIO_MST_C_SCLK_CTRL0  0x050
28 #define AUDIO_MST_C_SCLK_CTRL1  0x054
29 #define AUDIO_MST_D_SCLK_CTRL0  0x058
30 #define AUDIO_MST_D_SCLK_CTRL1  0x05C
31 #define AUDIO_MST_E_SCLK_CTRL0  0x060
32 #define AUDIO_MST_E_SCLK_CTRL1  0x064
33 #define AUDIO_MST_F_SCLK_CTRL0  0x068
34 #define AUDIO_MST_F_SCLK_CTRL1  0x06C
35 #define AUDIO_CLK_TDMIN_A_CTRL  0x080
36 #define AUDIO_CLK_TDMIN_B_CTRL  0x084
37 #define AUDIO_CLK_TDMIN_C_CTRL  0x088
38 #define AUDIO_CLK_TDMIN_LB_CTRL 0x08C
39 #define AUDIO_CLK_TDMOUT_A_CTRL 0x090
40 #define AUDIO_CLK_TDMOUT_B_CTRL 0x094
41 #define AUDIO_CLK_TDMOUT_C_CTRL 0x098
42 #define AUDIO_CLK_SPDIFIN_CTRL  0x09C
43 #define AUDIO_CLK_SPDIFOUT_CTRL 0x0A0
44 #define AUDIO_CLK_RESAMPLE_CTRL 0x0A4
45 #define AUDIO_CLK_LOCKER_CTRL   0x0A8
46 #define AUDIO_CLK_PDMIN_CTRL0   0x0AC
47 #define AUDIO_CLK_PDMIN_CTRL1   0x0B0
48
49 /*
50  * CLKID index values
51  * These indices are entirely contrived and do not map onto the hardware.
52  */
53
54 #define AUD_CLKID_PCLK                  0
55 #define AUD_CLKID_MST0                  1
56 #define AUD_CLKID_MST1                  2
57 #define AUD_CLKID_MST2                  3
58 #define AUD_CLKID_MST3                  4
59 #define AUD_CLKID_MST4                  5
60 #define AUD_CLKID_MST5                  6
61 #define AUD_CLKID_MST6                  7
62 #define AUD_CLKID_MST7                  8
63 #define AUD_CLKID_SLV_SCLK0             9
64 #define AUD_CLKID_SLV_SCLK1             10
65 #define AUD_CLKID_SLV_SCLK2             11
66 #define AUD_CLKID_SLV_SCLK3             12
67 #define AUD_CLKID_SLV_SCLK4             13
68 #define AUD_CLKID_SLV_SCLK5             14
69 #define AUD_CLKID_SLV_SCLK6             15
70 #define AUD_CLKID_SLV_SCLK7             16
71 #define AUD_CLKID_SLV_SCLK8             17
72 #define AUD_CLKID_SLV_SCLK9             18
73 #define AUD_CLKID_SLV_LRCLK0            19
74 #define AUD_CLKID_SLV_LRCLK1            20
75 #define AUD_CLKID_SLV_LRCLK2            21
76 #define AUD_CLKID_SLV_LRCLK3            22
77 #define AUD_CLKID_SLV_LRCLK4            23
78 #define AUD_CLKID_SLV_LRCLK5            24
79 #define AUD_CLKID_SLV_LRCLK6            25
80 #define AUD_CLKID_SLV_LRCLK7            26
81 #define AUD_CLKID_SLV_LRCLK8            27
82 #define AUD_CLKID_SLV_LRCLK9            28
83 #define AUD_CLKID_MST_A_MCLK_SEL        59
84 #define AUD_CLKID_MST_B_MCLK_SEL        60
85 #define AUD_CLKID_MST_C_MCLK_SEL        61
86 #define AUD_CLKID_MST_D_MCLK_SEL        62
87 #define AUD_CLKID_MST_E_MCLK_SEL        63
88 #define AUD_CLKID_MST_F_MCLK_SEL        64
89 #define AUD_CLKID_MST_A_MCLK_DIV        65
90 #define AUD_CLKID_MST_B_MCLK_DIV        66
91 #define AUD_CLKID_MST_C_MCLK_DIV        67
92 #define AUD_CLKID_MST_D_MCLK_DIV        68
93 #define AUD_CLKID_MST_E_MCLK_DIV        69
94 #define AUD_CLKID_MST_F_MCLK_DIV        70
95 #define AUD_CLKID_SPDIFOUT_CLK_SEL      71
96 #define AUD_CLKID_SPDIFOUT_CLK_DIV      72
97 #define AUD_CLKID_SPDIFIN_CLK_SEL       73
98 #define AUD_CLKID_SPDIFIN_CLK_DIV       74
99 #define AUD_CLKID_PDM_DCLK_SEL          75
100 #define AUD_CLKID_PDM_DCLK_DIV          76
101 #define AUD_CLKID_PDM_SYSCLK_SEL        77
102 #define AUD_CLKID_PDM_SYSCLK_DIV        78
103 #define AUD_CLKID_MST_A_SCLK_PRE_EN     92
104 #define AUD_CLKID_MST_B_SCLK_PRE_EN     93
105 #define AUD_CLKID_MST_C_SCLK_PRE_EN     94
106 #define AUD_CLKID_MST_D_SCLK_PRE_EN     95
107 #define AUD_CLKID_MST_E_SCLK_PRE_EN     96
108 #define AUD_CLKID_MST_F_SCLK_PRE_EN     97
109 #define AUD_CLKID_MST_A_SCLK_DIV        98
110 #define AUD_CLKID_MST_B_SCLK_DIV        99
111 #define AUD_CLKID_MST_C_SCLK_DIV        100
112 #define AUD_CLKID_MST_D_SCLK_DIV        101
113 #define AUD_CLKID_MST_E_SCLK_DIV        102
114 #define AUD_CLKID_MST_F_SCLK_DIV        103
115 #define AUD_CLKID_MST_A_SCLK_POST_EN    104
116 #define AUD_CLKID_MST_B_SCLK_POST_EN    105
117 #define AUD_CLKID_MST_C_SCLK_POST_EN    106
118 #define AUD_CLKID_MST_D_SCLK_POST_EN    107
119 #define AUD_CLKID_MST_E_SCLK_POST_EN    108
120 #define AUD_CLKID_MST_F_SCLK_POST_EN    109
121 #define AUD_CLKID_MST_A_LRCLK_DIV       110
122 #define AUD_CLKID_MST_B_LRCLK_DIV       111
123 #define AUD_CLKID_MST_C_LRCLK_DIV       112
124 #define AUD_CLKID_MST_D_LRCLK_DIV       113
125 #define AUD_CLKID_MST_E_LRCLK_DIV       114
126 #define AUD_CLKID_MST_F_LRCLK_DIV       115
127 #define AUD_CLKID_TDMIN_A_SCLK_PRE_EN   137
128 #define AUD_CLKID_TDMIN_B_SCLK_PRE_EN   138
129 #define AUD_CLKID_TDMIN_C_SCLK_PRE_EN   139
130 #define AUD_CLKID_TDMIN_LB_SCLK_PRE_EN  140
131 #define AUD_CLKID_TDMOUT_A_SCLK_PRE_EN  141
132 #define AUD_CLKID_TDMOUT_B_SCLK_PRE_EN  142
133 #define AUD_CLKID_TDMOUT_C_SCLK_PRE_EN  143
134 #define AUD_CLKID_TDMIN_A_SCLK_POST_EN  144
135 #define AUD_CLKID_TDMIN_B_SCLK_POST_EN  145
136 #define AUD_CLKID_TDMIN_C_SCLK_POST_EN  146
137 #define AUD_CLKID_TDMIN_LB_SCLK_POST_EN 147
138 #define AUD_CLKID_TDMOUT_A_SCLK_POST_EN 148
139 #define AUD_CLKID_TDMOUT_B_SCLK_POST_EN 149
140 #define AUD_CLKID_TDMOUT_C_SCLK_POST_EN 150
141
142 /* include the CLKIDs which are part of the DT bindings */
143 #include <dt-bindings/clock/axg-audio-clkc.h>
144
145 #define NR_CLKS 151
146
147 #endif /*__AXG_AUDIO_CLKC_H */