Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: (GPL-2.0 OR MIT) */
0002 /*
0003  * Copyright (c) 2018 BayLibre, SAS.
0004  * Author: Jerome Brunet <jbrunet@baylibre.com>
0005  */
0006 
0007 #ifndef __AXG_AUDIO_CLKC_H
0008 #define __AXG_AUDIO_CLKC_H
0009 
0010 /*
0011  * Audio Clock  register offsets
0012  *
0013  * Register offsets from the datasheet must be multiplied by 4 before
0014  * to get the right offset
0015  */
0016 #define AUDIO_CLK_GATE_EN   0x000
0017 #define AUDIO_MCLK_A_CTRL   0x004
0018 #define AUDIO_MCLK_B_CTRL   0x008
0019 #define AUDIO_MCLK_C_CTRL   0x00C
0020 #define AUDIO_MCLK_D_CTRL   0x010
0021 #define AUDIO_MCLK_E_CTRL   0x014
0022 #define AUDIO_MCLK_F_CTRL   0x018
0023 #define AUDIO_MST_PAD_CTRL0 0x01c
0024 #define AUDIO_MST_PAD_CTRL1 0x020
0025 #define AUDIO_SW_RESET      0x024
0026 #define AUDIO_MST_A_SCLK_CTRL0  0x040
0027 #define AUDIO_MST_A_SCLK_CTRL1  0x044
0028 #define AUDIO_MST_B_SCLK_CTRL0  0x048
0029 #define AUDIO_MST_B_SCLK_CTRL1  0x04C
0030 #define AUDIO_MST_C_SCLK_CTRL0  0x050
0031 #define AUDIO_MST_C_SCLK_CTRL1  0x054
0032 #define AUDIO_MST_D_SCLK_CTRL0  0x058
0033 #define AUDIO_MST_D_SCLK_CTRL1  0x05C
0034 #define AUDIO_MST_E_SCLK_CTRL0  0x060
0035 #define AUDIO_MST_E_SCLK_CTRL1  0x064
0036 #define AUDIO_MST_F_SCLK_CTRL0  0x068
0037 #define AUDIO_MST_F_SCLK_CTRL1  0x06C
0038 #define AUDIO_CLK_TDMIN_A_CTRL  0x080
0039 #define AUDIO_CLK_TDMIN_B_CTRL  0x084
0040 #define AUDIO_CLK_TDMIN_C_CTRL  0x088
0041 #define AUDIO_CLK_TDMIN_LB_CTRL 0x08C
0042 #define AUDIO_CLK_TDMOUT_A_CTRL 0x090
0043 #define AUDIO_CLK_TDMOUT_B_CTRL 0x094
0044 #define AUDIO_CLK_TDMOUT_C_CTRL 0x098
0045 #define AUDIO_CLK_SPDIFIN_CTRL  0x09C
0046 #define AUDIO_CLK_SPDIFOUT_CTRL 0x0A0
0047 #define AUDIO_CLK_RESAMPLE_CTRL 0x0A4
0048 #define AUDIO_CLK_LOCKER_CTRL   0x0A8
0049 #define AUDIO_CLK_PDMIN_CTRL0   0x0AC
0050 #define AUDIO_CLK_PDMIN_CTRL1   0x0B0
0051 #define AUDIO_CLK_SPDIFOUT_B_CTRL 0x0B4
0052 
0053 /* SM1 introduce new register and some shifts :( */
0054 #define AUDIO_CLK_GATE_EN1  0x004
0055 #define AUDIO_SM1_MCLK_A_CTRL   0x008
0056 #define AUDIO_SM1_MCLK_B_CTRL   0x00C
0057 #define AUDIO_SM1_MCLK_C_CTRL   0x010
0058 #define AUDIO_SM1_MCLK_D_CTRL   0x014
0059 #define AUDIO_SM1_MCLK_E_CTRL   0x018
0060 #define AUDIO_SM1_MCLK_F_CTRL   0x01C
0061 #define AUDIO_SM1_MST_PAD_CTRL0 0x020
0062 #define AUDIO_SM1_MST_PAD_CTRL1 0x024
0063 #define AUDIO_SM1_SW_RESET0 0x028
0064 #define AUDIO_SM1_SW_RESET1 0x02C
0065 #define AUDIO_CLK81_CTRL    0x030
0066 #define AUDIO_CLK81_EN      0x034
0067 /*
0068  * CLKID index values
0069  * These indices are entirely contrived and do not map onto the hardware.
0070  */
0071 
0072 #define AUD_CLKID_MST_A_MCLK_SEL    59
0073 #define AUD_CLKID_MST_B_MCLK_SEL    60
0074 #define AUD_CLKID_MST_C_MCLK_SEL    61
0075 #define AUD_CLKID_MST_D_MCLK_SEL    62
0076 #define AUD_CLKID_MST_E_MCLK_SEL    63
0077 #define AUD_CLKID_MST_F_MCLK_SEL    64
0078 #define AUD_CLKID_MST_A_MCLK_DIV    65
0079 #define AUD_CLKID_MST_B_MCLK_DIV    66
0080 #define AUD_CLKID_MST_C_MCLK_DIV    67
0081 #define AUD_CLKID_MST_D_MCLK_DIV    68
0082 #define AUD_CLKID_MST_E_MCLK_DIV    69
0083 #define AUD_CLKID_MST_F_MCLK_DIV    70
0084 #define AUD_CLKID_SPDIFOUT_CLK_SEL  71
0085 #define AUD_CLKID_SPDIFOUT_CLK_DIV  72
0086 #define AUD_CLKID_SPDIFIN_CLK_SEL   73
0087 #define AUD_CLKID_SPDIFIN_CLK_DIV   74
0088 #define AUD_CLKID_PDM_DCLK_SEL      75
0089 #define AUD_CLKID_PDM_DCLK_DIV      76
0090 #define AUD_CLKID_PDM_SYSCLK_SEL    77
0091 #define AUD_CLKID_PDM_SYSCLK_DIV    78
0092 #define AUD_CLKID_MST_A_SCLK_PRE_EN 92
0093 #define AUD_CLKID_MST_B_SCLK_PRE_EN 93
0094 #define AUD_CLKID_MST_C_SCLK_PRE_EN 94
0095 #define AUD_CLKID_MST_D_SCLK_PRE_EN 95
0096 #define AUD_CLKID_MST_E_SCLK_PRE_EN 96
0097 #define AUD_CLKID_MST_F_SCLK_PRE_EN 97
0098 #define AUD_CLKID_MST_A_SCLK_DIV    98
0099 #define AUD_CLKID_MST_B_SCLK_DIV    99
0100 #define AUD_CLKID_MST_C_SCLK_DIV    100
0101 #define AUD_CLKID_MST_D_SCLK_DIV    101
0102 #define AUD_CLKID_MST_E_SCLK_DIV    102
0103 #define AUD_CLKID_MST_F_SCLK_DIV    103
0104 #define AUD_CLKID_MST_A_SCLK_POST_EN    104
0105 #define AUD_CLKID_MST_B_SCLK_POST_EN    105
0106 #define AUD_CLKID_MST_C_SCLK_POST_EN    106
0107 #define AUD_CLKID_MST_D_SCLK_POST_EN    107
0108 #define AUD_CLKID_MST_E_SCLK_POST_EN    108
0109 #define AUD_CLKID_MST_F_SCLK_POST_EN    109
0110 #define AUD_CLKID_MST_A_LRCLK_DIV   110
0111 #define AUD_CLKID_MST_B_LRCLK_DIV   111
0112 #define AUD_CLKID_MST_C_LRCLK_DIV   112
0113 #define AUD_CLKID_MST_D_LRCLK_DIV   113
0114 #define AUD_CLKID_MST_E_LRCLK_DIV   114
0115 #define AUD_CLKID_MST_F_LRCLK_DIV   115
0116 #define AUD_CLKID_TDMIN_A_SCLK_PRE_EN   137
0117 #define AUD_CLKID_TDMIN_B_SCLK_PRE_EN   138
0118 #define AUD_CLKID_TDMIN_C_SCLK_PRE_EN   139
0119 #define AUD_CLKID_TDMIN_LB_SCLK_PRE_EN  140
0120 #define AUD_CLKID_TDMOUT_A_SCLK_PRE_EN  141
0121 #define AUD_CLKID_TDMOUT_B_SCLK_PRE_EN  142
0122 #define AUD_CLKID_TDMOUT_C_SCLK_PRE_EN  143
0123 #define AUD_CLKID_TDMIN_A_SCLK_POST_EN  144
0124 #define AUD_CLKID_TDMIN_B_SCLK_POST_EN  145
0125 #define AUD_CLKID_TDMIN_C_SCLK_POST_EN  146
0126 #define AUD_CLKID_TDMIN_LB_SCLK_POST_EN 147
0127 #define AUD_CLKID_TDMOUT_A_SCLK_POST_EN 148
0128 #define AUD_CLKID_TDMOUT_B_SCLK_POST_EN 149
0129 #define AUD_CLKID_TDMOUT_C_SCLK_POST_EN 150
0130 #define AUD_CLKID_SPDIFOUT_B_CLK_SEL    153
0131 #define AUD_CLKID_SPDIFOUT_B_CLK_DIV    154
0132 #define AUD_CLKID_CLK81_EN      173
0133 #define AUD_CLKID_SYSCLK_A_DIV      174
0134 #define AUD_CLKID_SYSCLK_B_DIV      175
0135 #define AUD_CLKID_SYSCLK_A_EN       176
0136 #define AUD_CLKID_SYSCLK_B_EN       177
0137 
0138 /* include the CLKIDs which are part of the DT bindings */
0139 #include <dt-bindings/clock/axg-audio-clkc.h>
0140 
0141 #define NR_CLKS 178
0142 
0143 #endif /*__AXG_AUDIO_CLKC_H */