10a7ce71fSopenharmony_ciroot {
20a7ce71fSopenharmony_ci    platform {
30a7ce71fSopenharmony_ci        template dai_controller {
40a7ce71fSopenharmony_ci            match_attr = "";
50a7ce71fSopenharmony_ci            serviceName = "";
60a7ce71fSopenharmony_ci        }
70a7ce71fSopenharmony_ci        controller_0x120c1020 :: dai_controller {
80a7ce71fSopenharmony_ci            match_attr = "hdf_dai_driver";
90a7ce71fSopenharmony_ci            serviceName = "dai_service";
100a7ce71fSopenharmony_ci
110a7ce71fSopenharmony_ci            idInfo {
120a7ce71fSopenharmony_ci                    chipName = "hi3516";
130a7ce71fSopenharmony_ci                    chipIdRegister = 0x113b0000;
140a7ce71fSopenharmony_ci                    chipIdSize = 0x10000;
150a7ce71fSopenharmony_ci                }
160a7ce71fSopenharmony_ci
170a7ce71fSopenharmony_ci            regConfig {
180a7ce71fSopenharmony_ci
190a7ce71fSopenharmony_ci                 /*  reg: register address
200a7ce71fSopenharmony_ci                     rreg: register address
210a7ce71fSopenharmony_ci                     shift: shift bits
220a7ce71fSopenharmony_ci                     rshift: rshift bits
230a7ce71fSopenharmony_ci                     min: min value
240a7ce71fSopenharmony_ci                     max: max value
250a7ce71fSopenharmony_ci                     mask: mask of value
260a7ce71fSopenharmony_ci                     invert: enum InvertVal 0-uninvert 1-invert
270a7ce71fSopenharmony_ci                     value: value
280a7ce71fSopenharmony_ci
290a7ce71fSopenharmony_ci                     reg, rreg, shift, value, min, max, mask, invert value
300a7ce71fSopenharmony_ci                 */
310a7ce71fSopenharmony_ci                 ctrlParamsSeqConfig = [
320a7ce71fSopenharmony_ci                     0x48,    0x48,    0,     0,     0x0,    0x2,    0x3,    0,    0,    // accessory enable
330a7ce71fSopenharmony_ci                     0x48,    0x48,    0,     0,     0x0,    0x2,    0x3,    0,    0    // codec enable
340a7ce71fSopenharmony_ci                 ];
350a7ce71fSopenharmony_ci
360a7ce71fSopenharmony_ci                 controlsConfig = [
370a7ce71fSopenharmony_ci                     /*
380a7ce71fSopenharmony_ci                         "External Codec Enable",
390a7ce71fSopenharmony_ci                         "Internally Codec Enable",
400a7ce71fSopenharmony_ci                     */
410a7ce71fSopenharmony_ci                     /*array index, iface, enable*/
420a7ce71fSopenharmony_ci                     6,  4,  0,
430a7ce71fSopenharmony_ci                     7,  4,  0
440a7ce71fSopenharmony_ci                 ];
450a7ce71fSopenharmony_ci
460a7ce71fSopenharmony_ci                 daiStartupSeqConfig = [
470a7ce71fSopenharmony_ci                     0x0100,    0x0100,     0,    0,    0,    0xFFFFFFFF,   0xFFFFFFFF,    0,   0x152ef0,      // AIP_I2S_REG_CFG0
480a7ce71fSopenharmony_ci                     0x0104,    0x0104,     0,    0,    0,    0xFFFFFFFF,   0xFFFFFFFF,    0,   0x0000c115,    // AIP_I2S_REG_CFG1
490a7ce71fSopenharmony_ci                     0x0140,    0x0140,     0,    0,    0,    0xFFFFFFFF,   0xFFFFFFFF,    0,   0x152ef0,      // AOP_I2S_REG_CFG0
500a7ce71fSopenharmony_ci                     0x0144,    0x0144,     0,    0,    0,    0xFFFFFFFF,   0xFFFFFFFF,    0,   0x0000c115,    // AOP_I2S_REG_CFG1
510a7ce71fSopenharmony_ci                 ];
520a7ce71fSopenharmony_ci
530a7ce71fSopenharmony_ci                 daiParamsSeqConfig = [
540a7ce71fSopenharmony_ci                     0x0140,    0x0140,    0,    0,    0x0,    0x7FFFFFF,   0x7FFFFFF,    0,    0x0,    // ao i2s_frequency
550a7ce71fSopenharmony_ci                     0x0144,    0x0144,    0,    0,    0x0,    0x7F,        0x7F,         0,    0x0,    // ao i2s_frequency
560a7ce71fSopenharmony_ci                     0x2000,    0x2000,    2,    2,    0x0,    0x2,         0x3,          0,    0x0,    // ao i2s_format
570a7ce71fSopenharmony_ci                     0x2000,    0x2000,    4,    4,    0x0,    0x1,         0x3,          0,    0x0,     // ao i2s_channel
580a7ce71fSopenharmony_ci                     0x0100,    0x0100,    0,    0,    0x0,    0x7FFFFFF,   0x7FFFFFF,    0,    0x0,    // ai i2s_frequency
590a7ce71fSopenharmony_ci                     0x0104,    0x0104,    0,    0,    0x0,    0x7F,        0x7F,         0,    0x0,    // ai i2s_frequency
600a7ce71fSopenharmony_ci                     0x1000,    0x1000,    2,    2,    0x0,    0x2,         0x3,          0,    0x0,    // ai i2s_format
610a7ce71fSopenharmony_ci                     0x1000,    0x1000,    4,    4,    0x0,    0x1,         0x3,          0,    0x0,     // ai i2s_channel
620a7ce71fSopenharmony_ci                 ];
630a7ce71fSopenharmony_ci
640a7ce71fSopenharmony_ci              }
650a7ce71fSopenharmony_ci        }
660a7ce71fSopenharmony_ci    }
670a7ce71fSopenharmony_ci}
68