1root { 2 platform { 3 template dai_controller { 4 match_attr = ""; 5 serviceName = ""; 6 } 7 controller_0x120c1020 :: dai_controller { 8 match_attr = "hdf_dai_driver"; 9 serviceName = "dai_service"; 10 11 idInfo { 12 chipName = "/i2s@fe410000"; 13 chipIdRegister = 0xfe410000; 14 chipIdSize = 0x1000; 15 } 16 17 regConfig { 18 19 /* reg: register address 20 rreg: register address 21 shift: shift bits 22 rshift: rshift bits 23 min: min value 24 max: max value 25 mask: mask of value 26 invert: enum InvertVal 0-uninvert 1-invert 27 value: value 28 29 reg, rreg, shift, rshift, min, max, mask, invert value 30 */ 31 daiStartupSeqConfig = [ 32 0x00, 0x00, 0, 0, 0, 0xFFFFFFFF, 0xFFFFFFFF, 0, 0x7200000f, //Transmit Operation Init 33 0x04, 0x04, 0, 0, 0, 0xFFFFFFFF, 0xFFFFFFFF, 0, 0x01c8000f, //Receive Operation Init 34 0x08, 0x08, 0, 0, 0, 0xFFFFFFFF, 0xFFFFFFFF, 0, 0x00001f1f, //Clock Generation Init 35 0x10, 0x10, 0, 0, 0, 0xFFFFFFFF, 0xFFFFFFFF, 0, 0x001f0000, //DMA Control Init 36 0x14, 0x14, 0, 0, 0, 0xFFFFFFFF, 0xFFFFFFFF, 0, 0x01f00000, //Interrupt Control Init 37 0x1C, 0x1C, 0, 0, 0, 0x3, 0x3, 0, 0, //XFER Init 38 0x30, 0x30, 0, 0, 0, 0xFFFFFFFF, 0xFFFFFFFF, 0, 0x00003eff, //TDM Transmit Init 39 0x34, 0x34, 0, 0, 0, 0xFFFFFFFF, 0xFFFFFFFF, 0, 0x00003eff, //TDM Receive Init 40 0x38, 0x38, 0, 0, 0, 0xFFFFFFFF, 0xFFFFFFFF, 0, 0x00000707 //Clock Divider Init 41 ]; 42 43 daiParamsSeqConfig = [ 44 0x08, 0x08, 8, 8, 0x1F, 0xFF, 0xFF, 0, 0x0, // I2S_CKR_RSD 45 0x08, 0x08, 0, 0, 0x1F, 0xFF, 0xFF, 0, 0x0, // I2S_CKR_TSD 46 0x38, 0x38, 8, 8, 0x00, 0xFF, 0xFF, 0, 0x0, // I2S_CLKDIV_RX_MDIV 47 0x38, 0x38, 0, 0, 0x00, 0xFF, 0xFF, 0, 0x0, // I2S_CLKDIV_TX_MDIV 48 0x08, 0x08, 27, 27, 0x0, 0x1, 0x1, 0, 0x0, // I2S_CKR_MSS 49 0x08, 0x08, 26, 26, 0x0, 0x1, 0x1, 0, 0x0, // I2S_CKR_CKP 50 0x08, 0x08, 25, 25, 0x0, 0x1, 0x1, 0, 0x0, // I2S_CKR_RLP 51 0x08, 0x08, 24, 24, 0x0, 0x1, 0x1, 0, 0x0, // I2S_CKR_TLP 52 ]; 53 54 daiTriggerSeqConfig = [ 55 0x10, 0x10, 24, 24, 0x0, 0x1, 0x1, 0, 0x1, // I2S_DMACR_RDE 56 0x10, 0x10, 8, 8, 0x0, 0x1, 0x1, 0, 0x1, // I2S_DMACR_TDE 57 0x14, 0x14, 17, 17, 0x0, 0x1, 0x1, 0, 0x0, // I2S_INTCR_RXOIE 58 0x14, 0x14, 16, 16, 0x0, 0x1, 0x1, 0, 0x0, // I2S_INTCR_RXFIE 59 0x14, 0x14, 1, 1, 0x0, 0x1, 0x1, 0, 0x0, // I2S_INTCR_TXUIE 60 0x14, 0x14, 0, 0, 0x0, 0x1, 0x1, 0, 0x0 // I2S_INTCR_TXEIE 61 ]; 62 } 63 } 64 controller_0x120c1021 :: dai_controller { 65 match_attr = "hdf_hdmi_dai_driver"; 66 serviceName = "hdmi_dai_service"; 67 68 idInfo { 69 chipName = "/i2s@fe400000"; 70 chipIdRegister = 0xfe400000; 71 chipIdSize = 0x1000; 72 } 73 regConfig { 74 75 /* reg: register address 76 rreg: register address 77 shift: shift bits 78 rshift: rshift bits 79 min: min value 80 max: max value 81 mask: mask of value 82 invert: enum InvertVal 0-uninvert 1-invert 83 value: value 84 85 reg, rreg, shift, rshift, min, max, mask, invert value 86 */ 87 daiStartupSeqConfig = [ 88 0x00, 0x00, 0, 0, 0, 0xFFFFFFFF, 0xFFFFFFFF, 0, 0x0, //Transmit Operation Init 89 ]; 90 } 91 } 92 } 93} 94