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,    // tfa9879 codec enable
330a7ce71fSopenharmony_ci                     0x48,    0x48,    0,     0,     0x0,    0x2,    0x3,    0,    0    // hi3516 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, mixer/mux, enable */
420a7ce71fSopenharmony_ci                     6,  2,  0,  1,
430a7ce71fSopenharmony_ci                     7,  2,  0,  1
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                     0x1000,    0x1000,     16,   16,   0x0,  0x7,          0x7,           0,   0x01,          // RX IF ATTRI
520a7ce71fSopenharmony_ci                 ];
530a7ce71fSopenharmony_ci
540a7ce71fSopenharmony_ci                 daiParamsSeqConfig = [
550a7ce71fSopenharmony_ci                     0x0140,    0x0140,    0,    0,    0x0,    0x7FFFFFF,   0x7FFFFFF,    0,    0x0,    // ao i2s_frequency
560a7ce71fSopenharmony_ci                     0x0144,    0x0144,    0,    0,    0x0,    0x7F,        0x7F,         0,    0x0,    // ao i2s_frequency
570a7ce71fSopenharmony_ci                     0x2000,    0x2000,    2,    2,    0x0,    0x2,         0x3,          0,    0x0,    // ao i2s_format
580a7ce71fSopenharmony_ci                     0x2000,    0x2000,    4,    4,    0x0,    0x1,         0x3,          0,    0x0,     // ao i2s_channel
590a7ce71fSopenharmony_ci                     0x0100,    0x0100,    0,    0,    0x0,    0x7FFFFFF,   0x7FFFFFF,    0,    0x0,    // ai i2s_frequency
600a7ce71fSopenharmony_ci                     0x0104,    0x0104,    0,    0,    0x0,    0x7F,        0x7F,         0,    0x0,    // ai i2s_frequency
610a7ce71fSopenharmony_ci                     0x1000,    0x1000,    2,    2,    0x0,    0x2,         0x3,          0,    0x0,    // ai i2s_format
620a7ce71fSopenharmony_ci                     0x1000,    0x1000,    4,    4,    0x0,    0x1,         0x3,          0,    0x0,     // ai i2s_channel
630a7ce71fSopenharmony_ci                 ];
640a7ce71fSopenharmony_ci
650a7ce71fSopenharmony_ci              }
660a7ce71fSopenharmony_ci        }
670a7ce71fSopenharmony_ci    }
680a7ce71fSopenharmony_ci}
69