@@ -1147,7 +1147,7 @@ static int fsl_sai_probe(struct platform_device *pdev)
1147
1147
1148
1148
/* Select MCLK direction */
1149
1149
if (of_find_property (np , "fsl,sai-mclk-direction-output" , NULL ) &&
1150
- sai -> verid . version >= 0x0301 ) {
1150
+ sai -> soc_data -> max_register >= FSL_SAI_MCTL ) {
1151
1151
regmap_update_bits (sai -> regmap , FSL_SAI_MCTL ,
1152
1152
FSL_SAI_MCTL_MCLK_EN , FSL_SAI_MCTL_MCLK_EN );
1153
1153
}
@@ -1203,6 +1203,7 @@ static const struct fsl_sai_soc_data fsl_sai_vf610_data = {
1203
1203
.reg_offset = 0 ,
1204
1204
.mclk0_is_mclk1 = false,
1205
1205
.flags = 0 ,
1206
+ .max_register = FSL_SAI_RMR ,
1206
1207
};
1207
1208
1208
1209
static const struct fsl_sai_soc_data fsl_sai_imx6sx_data = {
@@ -1213,6 +1214,7 @@ static const struct fsl_sai_soc_data fsl_sai_imx6sx_data = {
1213
1214
.reg_offset = 0 ,
1214
1215
.mclk0_is_mclk1 = true,
1215
1216
.flags = 0 ,
1217
+ .max_register = FSL_SAI_RMR ,
1216
1218
};
1217
1219
1218
1220
static const struct fsl_sai_soc_data fsl_sai_imx7ulp_data = {
@@ -1223,6 +1225,7 @@ static const struct fsl_sai_soc_data fsl_sai_imx7ulp_data = {
1223
1225
.reg_offset = 8 ,
1224
1226
.mclk0_is_mclk1 = false,
1225
1227
.flags = PMQOS_CPU_LATENCY ,
1228
+ .max_register = FSL_SAI_RMR ,
1226
1229
};
1227
1230
1228
1231
static const struct fsl_sai_soc_data fsl_sai_imx8mq_data = {
@@ -1233,6 +1236,7 @@ static const struct fsl_sai_soc_data fsl_sai_imx8mq_data = {
1233
1236
.reg_offset = 8 ,
1234
1237
.mclk0_is_mclk1 = false,
1235
1238
.flags = 0 ,
1239
+ .max_register = FSL_SAI_RMR ,
1236
1240
};
1237
1241
1238
1242
static const struct fsl_sai_soc_data fsl_sai_imx8qm_data = {
@@ -1243,6 +1247,40 @@ static const struct fsl_sai_soc_data fsl_sai_imx8qm_data = {
1243
1247
.reg_offset = 0 ,
1244
1248
.mclk0_is_mclk1 = false,
1245
1249
.flags = 0 ,
1250
+ .max_register = FSL_SAI_RMR ,
1251
+ };
1252
+
1253
+ static const struct fsl_sai_soc_data fsl_sai_imx8mm_data = {
1254
+ .use_imx_pcm = true,
1255
+ .use_edma = false,
1256
+ .fifo_depth = 128 ,
1257
+ .reg_offset = 8 ,
1258
+ .mclk0_is_mclk1 = false,
1259
+ .pins = 8 ,
1260
+ .flags = 0 ,
1261
+ .max_register = FSL_SAI_MCTL ,
1262
+ };
1263
+
1264
+ static const struct fsl_sai_soc_data fsl_sai_imx8mp_data = {
1265
+ .use_imx_pcm = true,
1266
+ .use_edma = false,
1267
+ .fifo_depth = 128 ,
1268
+ .reg_offset = 8 ,
1269
+ .mclk0_is_mclk1 = false,
1270
+ .pins = 8 ,
1271
+ .flags = 0 ,
1272
+ .max_register = FSL_SAI_MDIV ,
1273
+ };
1274
+
1275
+ static const struct fsl_sai_soc_data fsl_sai_imx8ulp_data = {
1276
+ .use_imx_pcm = true,
1277
+ .use_edma = true,
1278
+ .fifo_depth = 16 ,
1279
+ .reg_offset = 8 ,
1280
+ .mclk0_is_mclk1 = false,
1281
+ .pins = 4 ,
1282
+ .flags = PMQOS_CPU_LATENCY ,
1283
+ .max_register = FSL_SAI_RTCAP ,
1246
1284
};
1247
1285
1248
1286
static const struct of_device_id fsl_sai_ids [] = {
@@ -1252,6 +1290,9 @@ static const struct of_device_id fsl_sai_ids[] = {
1252
1290
{ .compatible = "fsl,imx7ulp-sai" , .data = & fsl_sai_imx7ulp_data },
1253
1291
{ .compatible = "fsl,imx8mq-sai" , .data = & fsl_sai_imx8mq_data },
1254
1292
{ .compatible = "fsl,imx8qm-sai" , .data = & fsl_sai_imx8qm_data },
1293
+ { .compatible = "fsl,imx8mm-sai" , .data = & fsl_sai_imx8mm_data },
1294
+ { .compatible = "fsl,imx8mp-sai" , .data = & fsl_sai_imx8mp_data },
1295
+ { .compatible = "fsl,imx8ulp-sai" , .data = & fsl_sai_imx8ulp_data },
1255
1296
{ /* sentinel */ }
1256
1297
};
1257
1298
MODULE_DEVICE_TABLE (of , fsl_sai_ids );
0 commit comments