123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143 |
- /* SPDX-License-Identifier: (GPL-2.0 OR MIT) */
- /*
- * Copyright (c) 2018 BayLibre, SAS.
- * Author: Jerome Brunet <[email protected]>
- */
- #ifndef __AXG_AUDIO_CLKC_H
- #define __AXG_AUDIO_CLKC_H
- /*
- * Audio Clock register offsets
- *
- * Register offsets from the datasheet must be multiplied by 4 before
- * to get the right offset
- */
- #define AUDIO_CLK_GATE_EN 0x000
- #define AUDIO_MCLK_A_CTRL 0x004
- #define AUDIO_MCLK_B_CTRL 0x008
- #define AUDIO_MCLK_C_CTRL 0x00C
- #define AUDIO_MCLK_D_CTRL 0x010
- #define AUDIO_MCLK_E_CTRL 0x014
- #define AUDIO_MCLK_F_CTRL 0x018
- #define AUDIO_MST_PAD_CTRL0 0x01c
- #define AUDIO_MST_PAD_CTRL1 0x020
- #define AUDIO_SW_RESET 0x024
- #define AUDIO_MST_A_SCLK_CTRL0 0x040
- #define AUDIO_MST_A_SCLK_CTRL1 0x044
- #define AUDIO_MST_B_SCLK_CTRL0 0x048
- #define AUDIO_MST_B_SCLK_CTRL1 0x04C
- #define AUDIO_MST_C_SCLK_CTRL0 0x050
- #define AUDIO_MST_C_SCLK_CTRL1 0x054
- #define AUDIO_MST_D_SCLK_CTRL0 0x058
- #define AUDIO_MST_D_SCLK_CTRL1 0x05C
- #define AUDIO_MST_E_SCLK_CTRL0 0x060
- #define AUDIO_MST_E_SCLK_CTRL1 0x064
- #define AUDIO_MST_F_SCLK_CTRL0 0x068
- #define AUDIO_MST_F_SCLK_CTRL1 0x06C
- #define AUDIO_CLK_TDMIN_A_CTRL 0x080
- #define AUDIO_CLK_TDMIN_B_CTRL 0x084
- #define AUDIO_CLK_TDMIN_C_CTRL 0x088
- #define AUDIO_CLK_TDMIN_LB_CTRL 0x08C
- #define AUDIO_CLK_TDMOUT_A_CTRL 0x090
- #define AUDIO_CLK_TDMOUT_B_CTRL 0x094
- #define AUDIO_CLK_TDMOUT_C_CTRL 0x098
- #define AUDIO_CLK_SPDIFIN_CTRL 0x09C
- #define AUDIO_CLK_SPDIFOUT_CTRL 0x0A0
- #define AUDIO_CLK_RESAMPLE_CTRL 0x0A4
- #define AUDIO_CLK_LOCKER_CTRL 0x0A8
- #define AUDIO_CLK_PDMIN_CTRL0 0x0AC
- #define AUDIO_CLK_PDMIN_CTRL1 0x0B0
- #define AUDIO_CLK_SPDIFOUT_B_CTRL 0x0B4
- /* SM1 introduce new register and some shifts :( */
- #define AUDIO_CLK_GATE_EN1 0x004
- #define AUDIO_SM1_MCLK_A_CTRL 0x008
- #define AUDIO_SM1_MCLK_B_CTRL 0x00C
- #define AUDIO_SM1_MCLK_C_CTRL 0x010
- #define AUDIO_SM1_MCLK_D_CTRL 0x014
- #define AUDIO_SM1_MCLK_E_CTRL 0x018
- #define AUDIO_SM1_MCLK_F_CTRL 0x01C
- #define AUDIO_SM1_MST_PAD_CTRL0 0x020
- #define AUDIO_SM1_MST_PAD_CTRL1 0x024
- #define AUDIO_SM1_SW_RESET0 0x028
- #define AUDIO_SM1_SW_RESET1 0x02C
- #define AUDIO_CLK81_CTRL 0x030
- #define AUDIO_CLK81_EN 0x034
- /*
- * CLKID index values
- * These indices are entirely contrived and do not map onto the hardware.
- */
- #define AUD_CLKID_MST_A_MCLK_SEL 59
- #define AUD_CLKID_MST_B_MCLK_SEL 60
- #define AUD_CLKID_MST_C_MCLK_SEL 61
- #define AUD_CLKID_MST_D_MCLK_SEL 62
- #define AUD_CLKID_MST_E_MCLK_SEL 63
- #define AUD_CLKID_MST_F_MCLK_SEL 64
- #define AUD_CLKID_MST_A_MCLK_DIV 65
- #define AUD_CLKID_MST_B_MCLK_DIV 66
- #define AUD_CLKID_MST_C_MCLK_DIV 67
- #define AUD_CLKID_MST_D_MCLK_DIV 68
- #define AUD_CLKID_MST_E_MCLK_DIV 69
- #define AUD_CLKID_MST_F_MCLK_DIV 70
- #define AUD_CLKID_SPDIFOUT_CLK_SEL 71
- #define AUD_CLKID_SPDIFOUT_CLK_DIV 72
- #define AUD_CLKID_SPDIFIN_CLK_SEL 73
- #define AUD_CLKID_SPDIFIN_CLK_DIV 74
- #define AUD_CLKID_PDM_DCLK_SEL 75
- #define AUD_CLKID_PDM_DCLK_DIV 76
- #define AUD_CLKID_PDM_SYSCLK_SEL 77
- #define AUD_CLKID_PDM_SYSCLK_DIV 78
- #define AUD_CLKID_MST_A_SCLK_PRE_EN 92
- #define AUD_CLKID_MST_B_SCLK_PRE_EN 93
- #define AUD_CLKID_MST_C_SCLK_PRE_EN 94
- #define AUD_CLKID_MST_D_SCLK_PRE_EN 95
- #define AUD_CLKID_MST_E_SCLK_PRE_EN 96
- #define AUD_CLKID_MST_F_SCLK_PRE_EN 97
- #define AUD_CLKID_MST_A_SCLK_DIV 98
- #define AUD_CLKID_MST_B_SCLK_DIV 99
- #define AUD_CLKID_MST_C_SCLK_DIV 100
- #define AUD_CLKID_MST_D_SCLK_DIV 101
- #define AUD_CLKID_MST_E_SCLK_DIV 102
- #define AUD_CLKID_MST_F_SCLK_DIV 103
- #define AUD_CLKID_MST_A_SCLK_POST_EN 104
- #define AUD_CLKID_MST_B_SCLK_POST_EN 105
- #define AUD_CLKID_MST_C_SCLK_POST_EN 106
- #define AUD_CLKID_MST_D_SCLK_POST_EN 107
- #define AUD_CLKID_MST_E_SCLK_POST_EN 108
- #define AUD_CLKID_MST_F_SCLK_POST_EN 109
- #define AUD_CLKID_MST_A_LRCLK_DIV 110
- #define AUD_CLKID_MST_B_LRCLK_DIV 111
- #define AUD_CLKID_MST_C_LRCLK_DIV 112
- #define AUD_CLKID_MST_D_LRCLK_DIV 113
- #define AUD_CLKID_MST_E_LRCLK_DIV 114
- #define AUD_CLKID_MST_F_LRCLK_DIV 115
- #define AUD_CLKID_TDMIN_A_SCLK_PRE_EN 137
- #define AUD_CLKID_TDMIN_B_SCLK_PRE_EN 138
- #define AUD_CLKID_TDMIN_C_SCLK_PRE_EN 139
- #define AUD_CLKID_TDMIN_LB_SCLK_PRE_EN 140
- #define AUD_CLKID_TDMOUT_A_SCLK_PRE_EN 141
- #define AUD_CLKID_TDMOUT_B_SCLK_PRE_EN 142
- #define AUD_CLKID_TDMOUT_C_SCLK_PRE_EN 143
- #define AUD_CLKID_TDMIN_A_SCLK_POST_EN 144
- #define AUD_CLKID_TDMIN_B_SCLK_POST_EN 145
- #define AUD_CLKID_TDMIN_C_SCLK_POST_EN 146
- #define AUD_CLKID_TDMIN_LB_SCLK_POST_EN 147
- #define AUD_CLKID_TDMOUT_A_SCLK_POST_EN 148
- #define AUD_CLKID_TDMOUT_B_SCLK_POST_EN 149
- #define AUD_CLKID_TDMOUT_C_SCLK_POST_EN 150
- #define AUD_CLKID_SPDIFOUT_B_CLK_SEL 153
- #define AUD_CLKID_SPDIFOUT_B_CLK_DIV 154
- #define AUD_CLKID_CLK81_EN 173
- #define AUD_CLKID_SYSCLK_A_DIV 174
- #define AUD_CLKID_SYSCLK_B_DIV 175
- #define AUD_CLKID_SYSCLK_A_EN 176
- #define AUD_CLKID_SYSCLK_B_EN 177
- /* include the CLKIDs which are part of the DT bindings */
- #include <dt-bindings/clock/axg-audio-clkc.h>
- #define NR_CLKS 178
- #endif /*__AXG_AUDIO_CLKC_H */
|