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