ark1668_i2s_sddac_regs.h 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. /*
  2. * ark_i2s_sddac_regs.h
  3. *
  4. */
  5. #define ARK_SYS_PAD_CTRL06 0x1d8
  6. #define ARK_SYS_I2S_DATA_DIR_OUT (1 << 31)
  7. #define ARK_SYS_I2S_BCLK_MASK (0xf << 20)
  8. #define ARK_SYS_I2S_MCLK_MASK (0xf << 16)
  9. #define ARK_SYS_I2S_SADATA_MASK (0xf << 12)
  10. #define ARK_SYS_I2S_SYNC_MASK (0xf << 8)
  11. #define ARK_SYS_I2S_BCLK (0x4 << 20)
  12. #define ARK_SYS_I2S_MCLK (0x4 << 16)
  13. #define ARK_SYS_I2S_SADATA (0x4 << 12)
  14. #define ARK_SYS_I2S_SYNC (0x4 << 8)
  15. #define ARK_SYS_PAD_CTRL09 0x1e4
  16. #define ARK_SYS_I2S2_BCLK (3 << 28)
  17. #define ARK_SYS_I2S2_SADATA (3 << 26)
  18. #define ARK_SYS_I2S2_SYNC (3 << 24)
  19. #define ARK_SYS_PAD_CTRL0A 0x1e8
  20. #define ARK_SYS_PAD_CTRL0C 0x1f0
  21. #define ARK_SYS_I2S_MCLK_AUX (1 << 10)
  22. /* Register definition */
  23. #define ARK_I2SSDDAC_SACR0 0x00
  24. #define ARK_I2SSDDAC_SACR0_I2SEN (1 << 0)
  25. #define ARK_I2SSDDAC_SACR0_SYNCD (1 << 1)
  26. #define ARK_I2SSDDAC_SACR0_BCKD (1 << 2)
  27. #define ARK_I2SSDDAC_SACR0_TDMAENA (1 << 3)
  28. #define ARK_I2SSDDAC_SACR0_RESET (1 << 4)
  29. #define ARK_I2SSDDAC_SACR0_LOOPBACK (1 << 5)
  30. #define ARK_I2SSDDAC_SACR0_RDMAENA (1 << 6)
  31. #define ARK_I2SSDDAC_SACR0_DACCLK_EDGE (1 << 7)
  32. #define ARK_I2SSDDAC_SACR0_TFTH (0xF << 8)
  33. #define ARK_I2SSDDAC_SACR0_RFTH (0x10 << 16)
  34. #define ARK_I2SSDDAC_SACR0_VREF_PD (1 << 21)
  35. #define ARK_I2SSDDAC_SACR0_DAC_PD (1 << 22)
  36. #define ARK_I2SSDDAC_SACR0_SARADC_EN (1 << 23)
  37. #define ARK_I2SSDDAC_SACR0_SARADC_DATA (1 << 24)
  38. #define ARK_I2SSDDAC_SACR0_SARADC_POW_EN (1 << 25)
  39. #define ARK_I2SSDDAC_SACR0_MIC_LINE_SEL (1 << 26)
  40. #define ARK_I2SSDDAC_SACR0_ADC_PGA_OP (1 << 27)
  41. #define ARK_I2SSDDAC_SACR0_SARADC_VREF (1 << 28)
  42. #define ARK_I2SSDDAC_SACR1 0x04
  43. #define ARK_I2SSDDAC_SACR1_DIS_REC (1 << 0)
  44. #define ARK_I2SSDDAC_SACR1_DIS_PLAY (1 << 1)
  45. #define ARK_I2SSDDAC_DACR0 0x08
  46. #define ARK_I2SSDDAC_DACR0_LVOL (0x7f << 0)
  47. #define ARK_I2SSDDAC_DACR0_RVOL (0x7f << 8)
  48. #define ARK_I2SSDDAC_SASR0 0x0C
  49. #define ARK_I2SSDDAC_SASR0_TNF (1 << 0)
  50. #define ARK_I2SSDDAC_SASR0_RNE (1 << 1)
  51. #define ARK_I2SSDDAC_SASR0_BSY (1 << 2)
  52. #define ARK_I2SSDDAC_SASR0_TFS (1 << 3)
  53. #define ARK_I2SSDDAC_SASR0_RFS (1 << 4)
  54. #define ARK_I2SSDDAC_SASR0_TUR (1 << 5)
  55. #define ARK_I2SSDDAC_SASR0_ROR (1 << 6)
  56. #define ARK_I2SSDDAC_SASR0_TFL (0x3F << 8)
  57. #define ARK_I2SSDDAC_SASR0_RFL (0x3F << 16)
  58. #define ARK_I2SSDDAC_DACR1 0x10
  59. #define ARK_I2SSDDAC_DACR1_VOL_TH (0x1F << 0)
  60. #define ARK_I2SSDDAC_DACR1_LRSW (1 << 5)
  61. /* Interrupt Mask */
  62. #define ARK_I2SSDDAC_SAIMR 0x14
  63. #define ARK_I2SSDDAC_SAIMR_TFS (1 << 3)
  64. #define ARK_I2SSDDAC_SAIMR_RFS (1 << 4)
  65. #define ARK_I2SSDDAC_SAIMR_TUR (1 << 5)
  66. #define ARK_I2SSDDAC_SAIMR_ROR (1 << 6)
  67. /* Interrupt Clear */
  68. #define ARK_I2SSDDAC_SAICR 0x18
  69. #define ARK_I2SSDDAC_SAICR_TXCR (1 << 3)
  70. #define ARK_I2SSDDAC_SAICR_RXCR (1 << 4)
  71. #define ARK_I2SSDDAC_SAICR_TUR (1 << 5)
  72. #define ARK_I2SSDDAC_SAICR_ROR (1 << 6)
  73. /* SARADC Control Register */
  74. #define ARK_I2SSDDAC_ADCR0 0x1C
  75. #define ARK_I2SSDDAC_ADCR0_LCH_VOL (0xF << 0)
  76. #define ARK_I2SSDDAC_ADCR0_RCH_VOL (0xF << 4)
  77. #define ARK_I2SSDDAC_ADCR0_MIC_ENH (1 << 8)
  78. #define ARK_I2SSDDAC_ADCR0_LCH_FILTER (0x3 << 9)
  79. #define ARK_I2SSDDAC_ADCR0_RCH_FILTER (0x3 << 11)
  80. /* Serial Audio Data Register (TX and RX FIFO Access) */
  81. #define ARK_I2SSDDAC_SADR 0x80
  82. /* FIFO Size */
  83. #define ARK_I2S_TXFIFO_SIZE 32
  84. #define ARK_I2S_RXFIFO_SIZE 32
  85. /* DMA Port Number */
  86. #define ARK_I2S_DMA_TX 1 /* TODO: refer to Arkmicro DMA */
  87. #define ARK_I2S_DMA_RX 2 /* TODO: refer to Arkmicro DMA */
  88. /* TX and RX thershold */
  89. #define ARK_I2S_TX_TH 15
  90. #define ARK_I2S_RX_TH 16