xref: /openbmc/linux/drivers/clk/meson/axg-audio.h (revision 1cd50181)
11cd50181SJerome Brunet /* SPDX-License-Identifier: (GPL-2.0 OR MIT) */
21cd50181SJerome Brunet /*
31cd50181SJerome Brunet  * Copyright (c) 2018 BayLibre, SAS.
41cd50181SJerome Brunet  * Author: Jerome Brunet <jbrunet@baylibre.com>
51cd50181SJerome Brunet  */
61cd50181SJerome Brunet 
71cd50181SJerome Brunet #ifndef __AXG_AUDIO_CLKC_H
81cd50181SJerome Brunet #define __AXG_AUDIO_CLKC_H
91cd50181SJerome Brunet 
101cd50181SJerome Brunet /*
111cd50181SJerome Brunet  * Audio Clock  register offsets
121cd50181SJerome Brunet  *
131cd50181SJerome Brunet  * Register offsets from the datasheet must be multiplied by 4 before
141cd50181SJerome Brunet  * to get the right offset
151cd50181SJerome Brunet  */
161cd50181SJerome Brunet #define AUDIO_CLK_GATE_EN	0x000
171cd50181SJerome Brunet #define AUDIO_MCLK_A_CTRL	0x004
181cd50181SJerome Brunet #define AUDIO_MCLK_B_CTRL	0x008
191cd50181SJerome Brunet #define AUDIO_MCLK_C_CTRL	0x00C
201cd50181SJerome Brunet #define AUDIO_MCLK_D_CTRL	0x010
211cd50181SJerome Brunet #define AUDIO_MCLK_E_CTRL	0x014
221cd50181SJerome Brunet #define AUDIO_MCLK_F_CTRL	0x018
231cd50181SJerome Brunet #define AUDIO_MST_A_SCLK_CTRL0	0x040
241cd50181SJerome Brunet #define AUDIO_MST_A_SCLK_CTRL1	0x044
251cd50181SJerome Brunet #define AUDIO_MST_B_SCLK_CTRL0	0x048
261cd50181SJerome Brunet #define AUDIO_MST_B_SCLK_CTRL1	0x04C
271cd50181SJerome Brunet #define AUDIO_MST_C_SCLK_CTRL0	0x050
281cd50181SJerome Brunet #define AUDIO_MST_C_SCLK_CTRL1	0x054
291cd50181SJerome Brunet #define AUDIO_MST_D_SCLK_CTRL0	0x058
301cd50181SJerome Brunet #define AUDIO_MST_D_SCLK_CTRL1	0x05C
311cd50181SJerome Brunet #define AUDIO_MST_E_SCLK_CTRL0	0x060
321cd50181SJerome Brunet #define AUDIO_MST_E_SCLK_CTRL1	0x064
331cd50181SJerome Brunet #define AUDIO_MST_F_SCLK_CTRL0	0x068
341cd50181SJerome Brunet #define AUDIO_MST_F_SCLK_CTRL1	0x06C
351cd50181SJerome Brunet #define AUDIO_CLK_TDMIN_A_CTRL	0x080
361cd50181SJerome Brunet #define AUDIO_CLK_TDMIN_B_CTRL	0x084
371cd50181SJerome Brunet #define AUDIO_CLK_TDMIN_C_CTRL	0x088
381cd50181SJerome Brunet #define AUDIO_CLK_TDMIN_LB_CTRL 0x08C
391cd50181SJerome Brunet #define AUDIO_CLK_TDMOUT_A_CTRL 0x090
401cd50181SJerome Brunet #define AUDIO_CLK_TDMOUT_B_CTRL 0x094
411cd50181SJerome Brunet #define AUDIO_CLK_TDMOUT_C_CTRL 0x098
421cd50181SJerome Brunet #define AUDIO_CLK_SPDIFIN_CTRL	0x09C
431cd50181SJerome Brunet #define AUDIO_CLK_SPDIFOUT_CTRL 0x0A0
441cd50181SJerome Brunet #define AUDIO_CLK_RESAMPLE_CTRL 0x0A4
451cd50181SJerome Brunet #define AUDIO_CLK_LOCKER_CTRL	0x0A8
461cd50181SJerome Brunet #define AUDIO_CLK_PDMIN_CTRL0	0x0AC
471cd50181SJerome Brunet #define AUDIO_CLK_PDMIN_CTRL1	0x0B0
481cd50181SJerome Brunet 
491cd50181SJerome Brunet /*
501cd50181SJerome Brunet  * CLKID index values
511cd50181SJerome Brunet  * These indices are entirely contrived and do not map onto the hardware.
521cd50181SJerome Brunet  */
531cd50181SJerome Brunet 
541cd50181SJerome Brunet #define AUD_CLKID_PCLK			0
551cd50181SJerome Brunet #define AUD_CLKID_MST0			1
561cd50181SJerome Brunet #define AUD_CLKID_MST1			2
571cd50181SJerome Brunet #define AUD_CLKID_MST2			3
581cd50181SJerome Brunet #define AUD_CLKID_MST3			4
591cd50181SJerome Brunet #define AUD_CLKID_MST4			5
601cd50181SJerome Brunet #define AUD_CLKID_MST5			6
611cd50181SJerome Brunet #define AUD_CLKID_MST6			7
621cd50181SJerome Brunet #define AUD_CLKID_MST7			8
631cd50181SJerome Brunet #define AUD_CLKID_MST_A_MCLK_SEL	59
641cd50181SJerome Brunet #define AUD_CLKID_MST_B_MCLK_SEL	60
651cd50181SJerome Brunet #define AUD_CLKID_MST_C_MCLK_SEL	61
661cd50181SJerome Brunet #define AUD_CLKID_MST_D_MCLK_SEL	62
671cd50181SJerome Brunet #define AUD_CLKID_MST_E_MCLK_SEL	63
681cd50181SJerome Brunet #define AUD_CLKID_MST_F_MCLK_SEL	64
691cd50181SJerome Brunet #define AUD_CLKID_MST_A_MCLK_DIV	65
701cd50181SJerome Brunet #define AUD_CLKID_MST_B_MCLK_DIV	66
711cd50181SJerome Brunet #define AUD_CLKID_MST_C_MCLK_DIV	67
721cd50181SJerome Brunet #define AUD_CLKID_MST_D_MCLK_DIV	68
731cd50181SJerome Brunet #define AUD_CLKID_MST_E_MCLK_DIV	69
741cd50181SJerome Brunet #define AUD_CLKID_MST_F_MCLK_DIV	70
751cd50181SJerome Brunet #define AUD_CLKID_SPDIFOUT_CLK_SEL	71
761cd50181SJerome Brunet #define AUD_CLKID_SPDIFOUT_CLK_DIV	72
771cd50181SJerome Brunet #define AUD_CLKID_SPDIFIN_CLK_SEL	73
781cd50181SJerome Brunet #define AUD_CLKID_SPDIFIN_CLK_DIV	74
791cd50181SJerome Brunet #define AUD_CLKID_PDM_DCLK_SEL		75
801cd50181SJerome Brunet #define AUD_CLKID_PDM_DCLK_DIV		76
811cd50181SJerome Brunet #define AUD_CLKID_PDM_SYSCLK_SEL	77
821cd50181SJerome Brunet #define AUD_CLKID_PDM_SYSCLK_DIV	78
831cd50181SJerome Brunet #define AUD_CLKID_MST_A_SCLK_PRE_EN	92
841cd50181SJerome Brunet #define AUD_CLKID_MST_B_SCLK_PRE_EN	93
851cd50181SJerome Brunet #define AUD_CLKID_MST_C_SCLK_PRE_EN	94
861cd50181SJerome Brunet #define AUD_CLKID_MST_D_SCLK_PRE_EN	95
871cd50181SJerome Brunet #define AUD_CLKID_MST_E_SCLK_PRE_EN	96
881cd50181SJerome Brunet #define AUD_CLKID_MST_F_SCLK_PRE_EN	97
891cd50181SJerome Brunet #define AUD_CLKID_MST_A_SCLK_DIV	98
901cd50181SJerome Brunet #define AUD_CLKID_MST_B_SCLK_DIV	99
911cd50181SJerome Brunet #define AUD_CLKID_MST_C_SCLK_DIV	100
921cd50181SJerome Brunet #define AUD_CLKID_MST_D_SCLK_DIV	101
931cd50181SJerome Brunet #define AUD_CLKID_MST_E_SCLK_DIV	102
941cd50181SJerome Brunet #define AUD_CLKID_MST_F_SCLK_DIV	103
951cd50181SJerome Brunet #define AUD_CLKID_MST_A_SCLK_POST_EN	104
961cd50181SJerome Brunet #define AUD_CLKID_MST_B_SCLK_POST_EN	105
971cd50181SJerome Brunet #define AUD_CLKID_MST_C_SCLK_POST_EN	106
981cd50181SJerome Brunet #define AUD_CLKID_MST_D_SCLK_POST_EN	107
991cd50181SJerome Brunet #define AUD_CLKID_MST_E_SCLK_POST_EN	108
1001cd50181SJerome Brunet #define AUD_CLKID_MST_F_SCLK_POST_EN	109
1011cd50181SJerome Brunet #define AUD_CLKID_MST_A_LRCLK_DIV	110
1021cd50181SJerome Brunet #define AUD_CLKID_MST_B_LRCLK_DIV	111
1031cd50181SJerome Brunet #define AUD_CLKID_MST_C_LRCLK_DIV	112
1041cd50181SJerome Brunet #define AUD_CLKID_MST_D_LRCLK_DIV	113
1051cd50181SJerome Brunet #define AUD_CLKID_MST_E_LRCLK_DIV	114
1061cd50181SJerome Brunet #define AUD_CLKID_MST_F_LRCLK_DIV	115
1071cd50181SJerome Brunet #define AUD_CLKID_TDMIN_A_SCLK_PRE_EN	137
1081cd50181SJerome Brunet #define AUD_CLKID_TDMIN_B_SCLK_PRE_EN	138
1091cd50181SJerome Brunet #define AUD_CLKID_TDMIN_C_SCLK_PRE_EN	139
1101cd50181SJerome Brunet #define AUD_CLKID_TDMIN_LB_SCLK_PRE_EN	140
1111cd50181SJerome Brunet #define AUD_CLKID_TDMOUT_A_SCLK_PRE_EN	141
1121cd50181SJerome Brunet #define AUD_CLKID_TDMOUT_B_SCLK_PRE_EN	142
1131cd50181SJerome Brunet #define AUD_CLKID_TDMOUT_C_SCLK_PRE_EN	143
1141cd50181SJerome Brunet #define AUD_CLKID_TDMIN_A_SCLK_POST_EN	144
1151cd50181SJerome Brunet #define AUD_CLKID_TDMIN_B_SCLK_POST_EN	145
1161cd50181SJerome Brunet #define AUD_CLKID_TDMIN_C_SCLK_POST_EN	146
1171cd50181SJerome Brunet #define AUD_CLKID_TDMIN_LB_SCLK_POST_EN	147
1181cd50181SJerome Brunet #define AUD_CLKID_TDMOUT_A_SCLK_POST_EN	148
1191cd50181SJerome Brunet #define AUD_CLKID_TDMOUT_B_SCLK_POST_EN	149
1201cd50181SJerome Brunet #define AUD_CLKID_TDMOUT_C_SCLK_POST_EN	150
1211cd50181SJerome Brunet 
1221cd50181SJerome Brunet /* include the CLKIDs which are part of the DT bindings */
1231cd50181SJerome Brunet #include <dt-bindings/clock/axg-audio-clkc.h>
1241cd50181SJerome Brunet 
1251cd50181SJerome Brunet #define NR_CLKS	151
1261cd50181SJerome Brunet 
1271cd50181SJerome Brunet #endif /*__AXG_AUDIO_CLKC_H */
128