diff options
author | Moise Gergaud <moise.gergaud@st.com> | 2016-04-07 05:25:30 -0400 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2016-04-11 21:58:59 -0400 |
commit | 38535e8e6962405b7d8a365f2f367f62bca98565 (patch) | |
tree | 81708498f10af91fd2df2b596264f0c337243d61 /sound | |
parent | 5ba10dd4a1727714faaac9a48f6aa69d8ee33248 (diff) |
ASoC: sti: macro for uniperif tdm regs access
Signed-off-by: Moise Gergaud <moise.gergaud@st.com>
Acked-by: Arnaud Pouliquen <arnaud.pouliquen@st.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound')
-rw-r--r-- | sound/soc/sti/uniperif.h | 112 |
1 files changed, 112 insertions, 0 deletions
diff --git a/sound/soc/sti/uniperif.h b/sound/soc/sti/uniperif.h index 1f82faafb869..400788bc9190 100644 --- a/sound/soc/sti/uniperif.h +++ b/sound/soc/sti/uniperif.h | |||
@@ -1101,6 +1101,118 @@ | |||
1101 | UNIPERIF_DBG_STANDBY_LEFT_SP_MASK(ip), value) | 1101 | UNIPERIF_DBG_STANDBY_LEFT_SP_MASK(ip), value) |
1102 | 1102 | ||
1103 | /* | 1103 | /* |
1104 | * UNIPERIF_TDM_ENABLE | ||
1105 | */ | ||
1106 | #define UNIPERIF_TDM_ENABLE_OFFSET(ip) 0x0118 | ||
1107 | #define GET_UNIPERIF_TDM_ENABLE(ip) \ | ||
1108 | readl_relaxed(ip->base + UNIPERIF_TDM_ENABLE_OFFSET(ip)) | ||
1109 | #define SET_UNIPERIF_TDM_ENABLE(ip, value) \ | ||
1110 | writel_relaxed(value, ip->base + UNIPERIF_TDM_ENABLE_OFFSET(ip)) | ||
1111 | |||
1112 | /* TDM_ENABLE */ | ||
1113 | #define UNIPERIF_TDM_ENABLE_EN_TDM_SHIFT(ip) 0x0 | ||
1114 | #define UNIPERIF_TDM_ENABLE_EN_TDM_MASK(ip) 0x1 | ||
1115 | #define GET_UNIPERIF_TDM_ENABLE_EN_TDM(ip) \ | ||
1116 | GET_UNIPERIF_REG(ip, \ | ||
1117 | UNIPERIF_TDM_ENABLE_OFFSET(ip), \ | ||
1118 | UNIPERIF_TDM_ENABLE_EN_TDM_SHIFT(ip), \ | ||
1119 | UNIPERIF_TDM_ENABLE_EN_TDM_MASK(ip)) | ||
1120 | #define SET_UNIPERIF_TDM_ENABLE_TDM_ENABLE(ip) \ | ||
1121 | SET_UNIPERIF_REG(ip, \ | ||
1122 | UNIPERIF_TDM_ENABLE_OFFSET(ip), \ | ||
1123 | UNIPERIF_TDM_ENABLE_EN_TDM_SHIFT(ip), \ | ||
1124 | UNIPERIF_TDM_ENABLE_EN_TDM_MASK(ip), 1) | ||
1125 | #define SET_UNIPERIF_TDM_ENABLE_TDM_DISABLE(ip) \ | ||
1126 | SET_UNIPERIF_REG(ip, \ | ||
1127 | UNIPERIF_TDM_ENABLE_OFFSET(ip), \ | ||
1128 | UNIPERIF_TDM_ENABLE_EN_TDM_SHIFT(ip), \ | ||
1129 | UNIPERIF_TDM_ENABLE_EN_TDM_MASK(ip), 0) | ||
1130 | |||
1131 | /* | ||
1132 | * UNIPERIF_TDM_FS_REF_FREQ | ||
1133 | */ | ||
1134 | #define UNIPERIF_TDM_FS_REF_FREQ_OFFSET(ip) 0x011c | ||
1135 | #define GET_UNIPERIF_TDM_FS_REF_FREQ(ip) \ | ||
1136 | readl_relaxed(ip->base + UNIPERIF_TDM_FS_REF_FREQ_OFFSET(ip)) | ||
1137 | #define SET_UNIPERIF_TDM_FS_REF_FREQ(ip, value) \ | ||
1138 | writel_relaxed(value, ip->base + \ | ||
1139 | UNIPERIF_TDM_FS_REF_FREQ_OFFSET(ip)) | ||
1140 | |||
1141 | /* REF_FREQ */ | ||
1142 | #define UNIPERIF_TDM_FS_REF_FREQ_REF_FREQ_SHIFT(ip) 0x0 | ||
1143 | #define VALUE_UNIPERIF_TDM_FS_REF_FREQ_8KHZ(ip) 0 | ||
1144 | #define VALUE_UNIPERIF_TDM_FS_REF_FREQ_16KHZ(ip) 1 | ||
1145 | #define VALUE_UNIPERIF_TDM_FS_REF_FREQ_32KHZ(ip) 2 | ||
1146 | #define VALUE_UNIPERIF_TDM_FS_REF_FREQ_48KHZ(ip) 3 | ||
1147 | #define UNIPERIF_TDM_FS_REF_FREQ_REF_FREQ_MASK(ip) 0x3 | ||
1148 | #define GET_UNIPERIF_TDM_FS_REF_FREQ_REF_FREQ(ip) \ | ||
1149 | GET_UNIPERIF_REG(ip, \ | ||
1150 | UNIPERIF_TDM_FS_REF_FREQ_OFFSET(ip), \ | ||
1151 | UNIPERIF_TDM_FS_REF_FREQ_REF_FREQ_SHIFT(ip), \ | ||
1152 | UNIPERIF_TDM_FS_REF_FREQ_REF_FREQ_MASK(ip)) | ||
1153 | #define SET_UNIPERIF_TDM_FS_REF_FREQ_8KHZ(ip) \ | ||
1154 | SET_UNIPERIF_REG(ip, \ | ||
1155 | UNIPERIF_TDM_FS_REF_FREQ_OFFSET(ip), \ | ||
1156 | UNIPERIF_TDM_FS_REF_FREQ_REF_FREQ_SHIFT(ip), \ | ||
1157 | UNIPERIF_TDM_FS_REF_FREQ_REF_FREQ_MASK(ip), \ | ||
1158 | VALUE_UNIPERIF_TDM_FS_REF_FREQ_8KHZ(ip)) | ||
1159 | #define SET_UNIPERIF_TDM_FS_REF_FREQ_16KHZ(ip) \ | ||
1160 | SET_UNIPERIF_REG(ip, \ | ||
1161 | UNIPERIF_TDM_FS_REF_FREQ_OFFSET(ip), \ | ||
1162 | UNIPERIF_TDM_FS_REF_FREQ_REF_FREQ_SHIFT(ip), \ | ||
1163 | UNIPERIF_TDM_FS_REF_FREQ_REF_FREQ_MASK(ip), \ | ||
1164 | VALUE_UNIPERIF_TDM_FS_REF_FREQ_16KHZ(ip)) | ||
1165 | #define SET_UNIPERIF_TDM_FS_REF_FREQ_32KHZ(ip) \ | ||
1166 | SET_UNIPERIF_REG(ip, \ | ||
1167 | UNIPERIF_TDM_FS_REF_FREQ_OFFSET(ip), \ | ||
1168 | UNIPERIF_TDM_FS_REF_FREQ_REF_FREQ_SHIFT(ip), \ | ||
1169 | UNIPERIF_TDM_FS_REF_FREQ_REF_FREQ_MASK(ip), \ | ||
1170 | VALUE_UNIPERIF_TDM_FS_REF_FREQ_32KHZ(ip)) | ||
1171 | #define SET_UNIPERIF_TDM_FS_REF_FREQ_48KHZ(ip) \ | ||
1172 | SET_UNIPERIF_REG(ip, \ | ||
1173 | UNIPERIF_TDM_FS_REF_FREQ_OFFSET(ip), \ | ||
1174 | UNIPERIF_TDM_FS_REF_FREQ_REF_FREQ_SHIFT(ip), \ | ||
1175 | UNIPERIF_TDM_FS_REF_FREQ_REF_FREQ_MASK(ip), \ | ||
1176 | VALUE_UNIPERIF_TDM_FS_REF_FREQ_48KHZ(ip)) | ||
1177 | |||
1178 | /* | ||
1179 | * UNIPERIF_TDM_FS_REF_DIV | ||
1180 | */ | ||
1181 | #define UNIPERIF_TDM_FS_REF_DIV_OFFSET(ip) 0x0120 | ||
1182 | #define GET_UNIPERIF_TDM_FS_REF_DIV(ip) \ | ||
1183 | readl_relaxed(ip->base + UNIPERIF_TDM_FS_REF_DIV_OFFSET(ip)) | ||
1184 | #define SET_UNIPERIF_TDM_FS_REF_DIV(ip, value) \ | ||
1185 | writel_relaxed(value, ip->base + \ | ||
1186 | UNIPERIF_TDM_FS_REF_DIV_OFFSET(ip)) | ||
1187 | |||
1188 | /* NUM_TIMESLOT */ | ||
1189 | #define UNIPERIF_TDM_FS_REF_DIV_NUM_TIMESLOT_SHIFT(ip) 0x0 | ||
1190 | #define UNIPERIF_TDM_FS_REF_DIV_NUM_TIMESLOT_MASK(ip) 0xff | ||
1191 | #define GET_UNIPERIF_TDM_FS_REF_DIV_NUM_TIMESLOT(ip) \ | ||
1192 | GET_UNIPERIF_REG(ip, \ | ||
1193 | UNIPERIF_TDM_FS_REF_DIV_OFFSET(ip), \ | ||
1194 | UNIPERIF_TDM_FS_REF_DIV_NUM_TIMESLOT_SHIFT(ip), \ | ||
1195 | UNIPERIF_TDM_FS_REF_DIV_NUM_TIMESLOT_MASK(ip)) | ||
1196 | #define SET_UNIPERIF_TDM_FS_REF_DIV_NUM_TIMESLOT(ip, value) \ | ||
1197 | SET_UNIPERIF_REG(ip, \ | ||
1198 | UNIPERIF_TDM_FS_REF_DIV_OFFSET(ip), \ | ||
1199 | UNIPERIF_TDM_FS_REF_DIV_NUM_TIMESLOT_SHIFT(ip), \ | ||
1200 | UNIPERIF_TDM_FS_REF_DIV_NUM_TIMESLOT_MASK(ip), value) | ||
1201 | |||
1202 | /* | ||
1203 | * UNIPERIF_TDM_WORD_POS_X_Y | ||
1204 | * 32 bits of UNIPERIF_TDM_WORD_POS_X_Y register shall be set in 1 shot | ||
1205 | */ | ||
1206 | #define UNIPERIF_TDM_WORD_POS_1_2_OFFSET(ip) 0x013c | ||
1207 | #define UNIPERIF_TDM_WORD_POS_3_4_OFFSET(ip) 0x0140 | ||
1208 | #define UNIPERIF_TDM_WORD_POS_5_6_OFFSET(ip) 0x0144 | ||
1209 | #define UNIPERIF_TDM_WORD_POS_7_8_OFFSET(ip) 0x0148 | ||
1210 | #define GET_UNIPERIF_TDM_WORD_POS(ip, words) \ | ||
1211 | readl_relaxed(ip->base + UNIPERIF_TDM_WORD_POS_##words##_OFFSET(ip)) | ||
1212 | #define SET_UNIPERIF_TDM_WORD_POS(ip, words, value) \ | ||
1213 | writel_relaxed(value, ip->base + \ | ||
1214 | UNIPERIF_TDM_WORD_POS_##words##_OFFSET(ip)) | ||
1215 | /* | ||
1104 | * uniperipheral IP capabilities | 1216 | * uniperipheral IP capabilities |
1105 | */ | 1217 | */ |
1106 | 1218 | ||