Jerome Brunet | 1cd5018 | 2018-05-22 18:34:57 +0200 | [diff] [blame] | 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 |
Maxime Jourdan | 0750013 | 2019-03-29 17:06:49 +0100 | [diff] [blame] | 23 | #define AUDIO_MST_PAD_CTRL0 0x01c |
| 24 | #define AUDIO_MST_PAD_CTRL1 0x020 |
Jerome Brunet | 7cfefab | 2019-08-12 14:32:53 +0200 | [diff] [blame] | 25 | #define AUDIO_SW_RESET 0x024 |
Jerome Brunet | 1cd5018 | 2018-05-22 18:34:57 +0200 | [diff] [blame] | 26 | #define AUDIO_MST_A_SCLK_CTRL0 0x040 |
| 27 | #define AUDIO_MST_A_SCLK_CTRL1 0x044 |
| 28 | #define AUDIO_MST_B_SCLK_CTRL0 0x048 |
| 29 | #define AUDIO_MST_B_SCLK_CTRL1 0x04C |
| 30 | #define AUDIO_MST_C_SCLK_CTRL0 0x050 |
| 31 | #define AUDIO_MST_C_SCLK_CTRL1 0x054 |
| 32 | #define AUDIO_MST_D_SCLK_CTRL0 0x058 |
| 33 | #define AUDIO_MST_D_SCLK_CTRL1 0x05C |
| 34 | #define AUDIO_MST_E_SCLK_CTRL0 0x060 |
| 35 | #define AUDIO_MST_E_SCLK_CTRL1 0x064 |
| 36 | #define AUDIO_MST_F_SCLK_CTRL0 0x068 |
| 37 | #define AUDIO_MST_F_SCLK_CTRL1 0x06C |
| 38 | #define AUDIO_CLK_TDMIN_A_CTRL 0x080 |
| 39 | #define AUDIO_CLK_TDMIN_B_CTRL 0x084 |
| 40 | #define AUDIO_CLK_TDMIN_C_CTRL 0x088 |
| 41 | #define AUDIO_CLK_TDMIN_LB_CTRL 0x08C |
| 42 | #define AUDIO_CLK_TDMOUT_A_CTRL 0x090 |
| 43 | #define AUDIO_CLK_TDMOUT_B_CTRL 0x094 |
| 44 | #define AUDIO_CLK_TDMOUT_C_CTRL 0x098 |
| 45 | #define AUDIO_CLK_SPDIFIN_CTRL 0x09C |
| 46 | #define AUDIO_CLK_SPDIFOUT_CTRL 0x0A0 |
| 47 | #define AUDIO_CLK_RESAMPLE_CTRL 0x0A4 |
| 48 | #define AUDIO_CLK_LOCKER_CTRL 0x0A8 |
| 49 | #define AUDIO_CLK_PDMIN_CTRL0 0x0AC |
| 50 | #define AUDIO_CLK_PDMIN_CTRL1 0x0B0 |
Maxime Jourdan | 0750013 | 2019-03-29 17:06:49 +0100 | [diff] [blame] | 51 | #define AUDIO_CLK_SPDIFOUT_B_CTRL 0x0B4 |
Jerome Brunet | 1cd5018 | 2018-05-22 18:34:57 +0200 | [diff] [blame] | 52 | |
Jerome Brunet | be4fe44 | 2019-10-02 11:15:29 +0200 | [diff] [blame] | 53 | /* SM1 introduce new register and some shifts :( */ |
| 54 | #define AUDIO_CLK_GATE_EN1 0x004 |
| 55 | #define AUDIO_SM1_MCLK_A_CTRL 0x008 |
| 56 | #define AUDIO_SM1_MCLK_B_CTRL 0x00C |
| 57 | #define AUDIO_SM1_MCLK_C_CTRL 0x010 |
| 58 | #define AUDIO_SM1_MCLK_D_CTRL 0x014 |
| 59 | #define AUDIO_SM1_MCLK_E_CTRL 0x018 |
| 60 | #define AUDIO_SM1_MCLK_F_CTRL 0x01C |
| 61 | #define AUDIO_SM1_MST_PAD_CTRL0 0x020 |
| 62 | #define AUDIO_SM1_MST_PAD_CTRL1 0x024 |
| 63 | #define AUDIO_SM1_SW_RESET0 0x028 |
| 64 | #define AUDIO_SM1_SW_RESET1 0x02C |
| 65 | #define AUDIO_CLK81_CTRL 0x030 |
| 66 | #define AUDIO_CLK81_EN 0x034 |
Jerome Brunet | 1cd5018 | 2018-05-22 18:34:57 +0200 | [diff] [blame] | 67 | /* |
| 68 | * CLKID index values |
| 69 | * These indices are entirely contrived and do not map onto the hardware. |
| 70 | */ |
| 71 | |
Jerome Brunet | 1cd5018 | 2018-05-22 18:34:57 +0200 | [diff] [blame] | 72 | #define AUD_CLKID_MST_A_MCLK_SEL 59 |
| 73 | #define AUD_CLKID_MST_B_MCLK_SEL 60 |
| 74 | #define AUD_CLKID_MST_C_MCLK_SEL 61 |
| 75 | #define AUD_CLKID_MST_D_MCLK_SEL 62 |
| 76 | #define AUD_CLKID_MST_E_MCLK_SEL 63 |
| 77 | #define AUD_CLKID_MST_F_MCLK_SEL 64 |
| 78 | #define AUD_CLKID_MST_A_MCLK_DIV 65 |
| 79 | #define AUD_CLKID_MST_B_MCLK_DIV 66 |
| 80 | #define AUD_CLKID_MST_C_MCLK_DIV 67 |
| 81 | #define AUD_CLKID_MST_D_MCLK_DIV 68 |
| 82 | #define AUD_CLKID_MST_E_MCLK_DIV 69 |
| 83 | #define AUD_CLKID_MST_F_MCLK_DIV 70 |
| 84 | #define AUD_CLKID_SPDIFOUT_CLK_SEL 71 |
| 85 | #define AUD_CLKID_SPDIFOUT_CLK_DIV 72 |
| 86 | #define AUD_CLKID_SPDIFIN_CLK_SEL 73 |
| 87 | #define AUD_CLKID_SPDIFIN_CLK_DIV 74 |
| 88 | #define AUD_CLKID_PDM_DCLK_SEL 75 |
| 89 | #define AUD_CLKID_PDM_DCLK_DIV 76 |
| 90 | #define AUD_CLKID_PDM_SYSCLK_SEL 77 |
| 91 | #define AUD_CLKID_PDM_SYSCLK_DIV 78 |
| 92 | #define AUD_CLKID_MST_A_SCLK_PRE_EN 92 |
| 93 | #define AUD_CLKID_MST_B_SCLK_PRE_EN 93 |
| 94 | #define AUD_CLKID_MST_C_SCLK_PRE_EN 94 |
| 95 | #define AUD_CLKID_MST_D_SCLK_PRE_EN 95 |
| 96 | #define AUD_CLKID_MST_E_SCLK_PRE_EN 96 |
| 97 | #define AUD_CLKID_MST_F_SCLK_PRE_EN 97 |
| 98 | #define AUD_CLKID_MST_A_SCLK_DIV 98 |
| 99 | #define AUD_CLKID_MST_B_SCLK_DIV 99 |
| 100 | #define AUD_CLKID_MST_C_SCLK_DIV 100 |
| 101 | #define AUD_CLKID_MST_D_SCLK_DIV 101 |
| 102 | #define AUD_CLKID_MST_E_SCLK_DIV 102 |
| 103 | #define AUD_CLKID_MST_F_SCLK_DIV 103 |
| 104 | #define AUD_CLKID_MST_A_SCLK_POST_EN 104 |
| 105 | #define AUD_CLKID_MST_B_SCLK_POST_EN 105 |
| 106 | #define AUD_CLKID_MST_C_SCLK_POST_EN 106 |
| 107 | #define AUD_CLKID_MST_D_SCLK_POST_EN 107 |
| 108 | #define AUD_CLKID_MST_E_SCLK_POST_EN 108 |
| 109 | #define AUD_CLKID_MST_F_SCLK_POST_EN 109 |
| 110 | #define AUD_CLKID_MST_A_LRCLK_DIV 110 |
| 111 | #define AUD_CLKID_MST_B_LRCLK_DIV 111 |
| 112 | #define AUD_CLKID_MST_C_LRCLK_DIV 112 |
| 113 | #define AUD_CLKID_MST_D_LRCLK_DIV 113 |
| 114 | #define AUD_CLKID_MST_E_LRCLK_DIV 114 |
| 115 | #define AUD_CLKID_MST_F_LRCLK_DIV 115 |
| 116 | #define AUD_CLKID_TDMIN_A_SCLK_PRE_EN 137 |
| 117 | #define AUD_CLKID_TDMIN_B_SCLK_PRE_EN 138 |
| 118 | #define AUD_CLKID_TDMIN_C_SCLK_PRE_EN 139 |
| 119 | #define AUD_CLKID_TDMIN_LB_SCLK_PRE_EN 140 |
| 120 | #define AUD_CLKID_TDMOUT_A_SCLK_PRE_EN 141 |
| 121 | #define AUD_CLKID_TDMOUT_B_SCLK_PRE_EN 142 |
| 122 | #define AUD_CLKID_TDMOUT_C_SCLK_PRE_EN 143 |
| 123 | #define AUD_CLKID_TDMIN_A_SCLK_POST_EN 144 |
| 124 | #define AUD_CLKID_TDMIN_B_SCLK_POST_EN 145 |
| 125 | #define AUD_CLKID_TDMIN_C_SCLK_POST_EN 146 |
| 126 | #define AUD_CLKID_TDMIN_LB_SCLK_POST_EN 147 |
| 127 | #define AUD_CLKID_TDMOUT_A_SCLK_POST_EN 148 |
| 128 | #define AUD_CLKID_TDMOUT_B_SCLK_POST_EN 149 |
| 129 | #define AUD_CLKID_TDMOUT_C_SCLK_POST_EN 150 |
Maxime Jourdan | 0750013 | 2019-03-29 17:06:49 +0100 | [diff] [blame] | 130 | #define AUD_CLKID_SPDIFOUT_B_CLK_SEL 153 |
| 131 | #define AUD_CLKID_SPDIFOUT_B_CLK_DIV 154 |
Jerome Brunet | be4fe44 | 2019-10-02 11:15:29 +0200 | [diff] [blame] | 132 | #define AUD_CLKID_CLK81_EN 173 |
| 133 | #define AUD_CLKID_SYSCLK_A_DIV 174 |
| 134 | #define AUD_CLKID_SYSCLK_B_DIV 175 |
| 135 | #define AUD_CLKID_SYSCLK_A_EN 176 |
| 136 | #define AUD_CLKID_SYSCLK_B_EN 177 |
Jerome Brunet | cf52db4 | 2019-10-02 11:15:28 +0200 | [diff] [blame] | 137 | |
Jerome Brunet | 1cd5018 | 2018-05-22 18:34:57 +0200 | [diff] [blame] | 138 | /* include the CLKIDs which are part of the DT bindings */ |
| 139 | #include <dt-bindings/clock/axg-audio-clkc.h> |
| 140 | |
Jerome Brunet | be4fe44 | 2019-10-02 11:15:29 +0200 | [diff] [blame] | 141 | #define NR_CLKS 178 |
Jerome Brunet | 1cd5018 | 2018-05-22 18:34:57 +0200 | [diff] [blame] | 142 | |
| 143 | #endif /*__AXG_AUDIO_CLKC_H */ |