gh_i2s.h 32 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746
  1. /*!
  2. *******************************************************************************
  3. **
  4. ** \file gh_i2s.h
  5. **
  6. ** \brief I2S Interface..
  7. **
  8. ** Copyright: 2012 - 2016 (C) GoKe Microelectronics
  9. **
  10. ** \attention THIS SAMPLE CODE IS PROVIDED AS IS. GOKE MICROELECTRONICS
  11. ** ACCEPTS NO RESPONSIBILITY OR LIABILITY FOR ANY ERRORS OR
  12. ** OMMISSIONS.
  13. **
  14. ** \note Do not modify this file as it is generated automatically.
  15. **
  16. ******************************************************************************/
  17. #ifndef _GH_I2S_H
  18. #define _GH_I2S_H
  19. #ifdef __LINUX__
  20. #include "reg4linux.h"
  21. #else
  22. #define FIO_ADDRESS(block,address) (address)
  23. #define FIO_MOFFSET(block,moffset) (moffset)
  24. #endif
  25. #ifndef __LINUX__
  26. #include "gtypes.h" /* global type definitions */
  27. #include "gh_lib_cfg.h" /* configuration */
  28. #endif
  29. #define GH_I2S_ENABLE_DEBUG_PRINT 0
  30. #ifdef __LINUX__
  31. #define GH_I2S_DEBUG_PRINT_FUNCTION printk
  32. #else
  33. #define GH_I2S_DEBUG_PRINT_FUNCTION printf
  34. #endif
  35. #ifndef __LINUX__
  36. #if GH_I2S_ENABLE_DEBUG_PRINT
  37. #include <stdio.h>
  38. #endif
  39. #endif
  40. /*----------------------------------------------------------------------------*/
  41. /* registers */
  42. /*----------------------------------------------------------------------------*/
  43. #define REG_I2S_MODE FIO_ADDRESS(I2S,0x9000A000) /* read/write */
  44. #define REG_I2S_RXCONTR FIO_ADDRESS(I2S,0x9000A004) /* read/write */
  45. #define REG_I2S_TXCONTR FIO_ADDRESS(I2S,0x9000A008) /* read/write */
  46. #define REG_I2S_WLREG FIO_ADDRESS(I2S,0x9000A00C) /* read/write */
  47. #define REG_I2S_WPREG FIO_ADDRESS(I2S,0x9000A010) /* read/write */
  48. #define REG_I2S_SLOTREG FIO_ADDRESS(I2S,0x9000A014) /* read/write */
  49. #define REG_I2S_TXFIFOLTH FIO_ADDRESS(I2S,0x9000A018) /* read/write */
  50. #define REG_I2S_RXFIFOGTH FIO_ADDRESS(I2S,0x9000A01c) /* read/write */
  51. #define REG_I2S_CLOCK FIO_ADDRESS(I2S,0x9000A020) /* read/write */
  52. #define REG_I2S_INITREG FIO_ADDRESS(I2S,0x9000A024) /* read/write */
  53. #define REG_I2S_TXFIFOFLAG FIO_ADDRESS(I2S,0x9000A028) /* read */
  54. #define REG_I2S_TXLEFTDATA FIO_ADDRESS(I2S,0x9000A02c) /* write */
  55. #define REG_I2S_TXRIGHTDATA FIO_ADDRESS(I2S,0x9000A030) /* write */
  56. #define REG_I2S_RXFIFOFLAG FIO_ADDRESS(I2S,0x9000A034) /* read */
  57. #define REG_I2S_RXDATA FIO_ADDRESS(I2S,0x9000A038) /* read */
  58. #define REG_I2S_TXFIFCNTR FIO_ADDRESS(I2S,0x9000A03c) /* read */
  59. #define REG_I2S_RXFIFCNTR FIO_ADDRESS(I2S,0x9000A040) /* read */
  60. #define REG_I2S_TXINITENREG FIO_ADDRESS(I2S,0x9000A044) /* read/write */
  61. #define REG_I2S_RXINITENREG FIO_ADDRESS(I2S,0x9000A048) /* read/write */
  62. #define REG_I2S_RXECHO FIO_ADDRESS(I2S,0x9000A04c) /* read/write */
  63. #define REG_I2S_MULTIPMODE FIO_ADDRESS(I2S,0x9000A050) /* read/write */
  64. #define REG_I2S_SHIFT FIO_ADDRESS(I2S,0x9000A054) /* read/write */
  65. #define REG_I2S_CHANSLECT FIO_ADDRESS(I2S,0x9000A058) /* read/write */
  66. #define REG_I2S_RX_DMA FIO_ADDRESS(I2S,0x9000A080) /* read */
  67. #define REG_I2S_TX_LEFT_DMA FIO_ADDRESS(I2S,0x9000A0C0) /* read */
  68. /*----------------------------------------------------------------------------*/
  69. /* bit group structures */
  70. /*----------------------------------------------------------------------------*/
  71. typedef union { /* I2S_Mode */
  72. U32 all;
  73. struct {
  74. U32 mode : 3;
  75. U32 : 29;
  76. } bitc;
  77. } GH_I2S_MODE_S;
  78. typedef union { /* I2S_RxContr */
  79. U32 all;
  80. struct {
  81. U32 rwi : 1;
  82. U32 rwm : 1;
  83. U32 order : 1;
  84. U32 loopback : 1;
  85. U32 : 28;
  86. } bitc;
  87. } GH_I2S_RXCONTR_S;
  88. typedef union { /* I2S_TxContr */
  89. U32 all;
  90. struct {
  91. U32 momo : 2;
  92. U32 mute : 1;
  93. U32 unison : 1;
  94. U32 twi : 1;
  95. U32 twm : 1;
  96. U32 order : 1;
  97. U32 loopback : 1;
  98. U32 : 24;
  99. } bitc;
  100. } GH_I2S_TXCONTR_S;
  101. typedef union { /* I2S_WlReg */
  102. U32 all;
  103. struct {
  104. U32 wlen : 5;
  105. U32 : 27;
  106. } bitc;
  107. } GH_I2S_WLREG_S;
  108. typedef union { /* I2S_WPREG */
  109. U32 all;
  110. struct {
  111. U32 ignbit : 5;
  112. U32 : 27;
  113. } bitc;
  114. } GH_I2S_WPREG_S;
  115. typedef union { /* I2S_SlotReg */
  116. U32 all;
  117. struct {
  118. U32 slotcont : 5;
  119. U32 : 27;
  120. } bitc;
  121. } GH_I2S_SLOTREG_S;
  122. typedef union { /* I2S_TxFifoLth */
  123. U32 all;
  124. struct {
  125. U32 ft : 7;
  126. U32 : 25;
  127. } bitc;
  128. } GH_I2S_TXFIFOLTH_S;
  129. typedef union { /* I2S_RxFifoGth */
  130. U32 all;
  131. struct {
  132. U32 ft : 7;
  133. U32 : 25;
  134. } bitc;
  135. } GH_I2S_RXFIFOGTH_S;
  136. typedef union { /* I2S_Clock */
  137. U32 all;
  138. struct {
  139. U32 clk_div : 5;
  140. U32 rsp : 1;
  141. U32 tsp : 1;
  142. U32 ss : 1;
  143. U32 soe : 1;
  144. U32 woe : 1;
  145. U32 : 22;
  146. } bitc;
  147. } GH_I2S_CLOCK_S;
  148. typedef union { /* I2S_Initreg */
  149. U32 all;
  150. struct {
  151. U32 frst : 1;
  152. U32 re : 1;
  153. U32 te : 1;
  154. U32 rxfrst : 1;
  155. U32 txfrst : 1;
  156. U32 : 27;
  157. } bitc;
  158. } GH_I2S_INITREG_S;
  159. typedef union { /* I2S_TxFifoFlag */
  160. U32 all;
  161. struct {
  162. U32 fe : 1;
  163. U32 ff : 1;
  164. U32 : 1;
  165. U32 ftv : 1;
  166. U32 ti : 1;
  167. U32 : 27;
  168. } bitc;
  169. } GH_I2S_TXFIFOFLAG_S;
  170. typedef union { /* I2S_TxLeftData */
  171. U32 all;
  172. struct {
  173. U32 data : 32;
  174. } bitc;
  175. } GH_I2S_TXLEFTDATA_S;
  176. typedef union { /* I2S_TxRightData */
  177. U32 all;
  178. struct {
  179. U32 data : 24;
  180. U32 : 8;
  181. } bitc;
  182. } GH_I2S_TXRIGHTDATA_S;
  183. typedef union { /* I2S_RxFifoFlag */
  184. U32 all;
  185. struct {
  186. U32 fe : 1;
  187. U32 ff : 1;
  188. U32 fo : 1;
  189. U32 ftv : 1;
  190. U32 ri : 1;
  191. U32 : 27;
  192. } bitc;
  193. } GH_I2S_RXFIFOFLAG_S;
  194. typedef union { /* I2S_RxData */
  195. U32 all;
  196. struct {
  197. U32 data : 24;
  198. U32 : 8;
  199. } bitc;
  200. } GH_I2S_RXDATA_S;
  201. typedef union { /* I2S_TxFifCntr */
  202. U32 all;
  203. struct {
  204. U32 num : 7;
  205. U32 : 25;
  206. } bitc;
  207. } GH_I2S_TXFIFCNTR_S;
  208. typedef union { /* I2S_Rxfifcntr */
  209. U32 all;
  210. struct {
  211. U32 num : 8;
  212. U32 : 24;
  213. } bitc;
  214. } GH_I2S_RXFIFCNTR_S;
  215. typedef union { /* I2S_TxInitEnReg */
  216. U32 all;
  217. struct {
  218. U32 fe : 1;
  219. U32 ff : 1;
  220. U32 : 1;
  221. U32 ftv : 1;
  222. U32 ti : 1;
  223. U32 : 27;
  224. } bitc;
  225. } GH_I2S_TXINITENREG_S;
  226. typedef union { /* I2S_RxInitEnReg */
  227. U32 all;
  228. struct {
  229. U32 fe : 1;
  230. U32 ff : 1;
  231. U32 fo : 1;
  232. U32 ftv : 1;
  233. U32 ri : 1;
  234. U32 : 27;
  235. } bitc;
  236. } GH_I2S_RXINITENREG_S;
  237. typedef union { /* I2S_RxEcho */
  238. U32 all;
  239. struct {
  240. U32 echo : 1;
  241. U32 : 31;
  242. } bitc;
  243. } GH_I2S_RXECHO_S;
  244. typedef union { /* I2S_MultipMode */
  245. U32 all;
  246. struct {
  247. U32 en : 1;
  248. U32 fdmaen : 1;
  249. U32 rest : 1;
  250. U32 dma : 1;
  251. U32 : 28;
  252. } bitc;
  253. } GH_I2S_MULTIPMODE_S;
  254. typedef union { /* I2S_Shift */
  255. U32 all;
  256. struct {
  257. U32 tx : 1;
  258. U32 rx : 1;
  259. U32 : 30;
  260. } bitc;
  261. } GH_I2S_SHIFT_S;
  262. typedef union { /* I2S_ChanSlect */
  263. U32 all;
  264. struct {
  265. U32 chan : 2;
  266. U32 : 30;
  267. } bitc;
  268. } GH_I2S_CHANSLECT_S;
  269. typedef union { /* I2S_Rx_Dma */
  270. U32 all;
  271. struct {
  272. U32 data : 24;
  273. U32 : 8;
  274. } bitc;
  275. } GH_I2S_RX_DMA_S;
  276. typedef union { /* I2S_Tx_Left_Dma */
  277. U32 all;
  278. struct {
  279. U32 data : 32;
  280. } bitc;
  281. } GH_I2S_TX_LEFT_DMA_S;
  282. /*----------------------------------------------------------------------------*/
  283. /* mirror variables */
  284. /*----------------------------------------------------------------------------*/
  285. extern GH_I2S_TXLEFTDATA_S m_i2s_txleftdata;
  286. extern GH_I2S_TXRIGHTDATA_S m_i2s_txrightdata;
  287. #ifdef __cplusplus
  288. extern "C" {
  289. #endif
  290. /*----------------------------------------------------------------------------*/
  291. /* register I2S_Mode (read/write) */
  292. /*----------------------------------------------------------------------------*/
  293. /*! \brief Writes the register 'I2S_Mode'. */
  294. void GH_I2S_set_Mode(U32 data);
  295. /*! \brief Reads the register 'I2S_Mode'. */
  296. U32 GH_I2S_get_Mode(void);
  297. /*! \brief Writes the bit group 'MODE' of register 'I2S_Mode'. */
  298. void GH_I2S_set_Mode_MODE(U8 data);
  299. /*! \brief Reads the bit group 'MODE' of register 'I2S_Mode'. */
  300. U8 GH_I2S_get_Mode_MODE(void);
  301. /*----------------------------------------------------------------------------*/
  302. /* register I2S_RxContr (read/write) */
  303. /*----------------------------------------------------------------------------*/
  304. /*! \brief Writes the register 'I2S_RxContr'. */
  305. void GH_I2S_set_RxContr(U32 data);
  306. /*! \brief Reads the register 'I2S_RxContr'. */
  307. U32 GH_I2S_get_RxContr(void);
  308. /*! \brief Writes the bit group 'rwi' of register 'I2S_RxContr'. */
  309. void GH_I2S_set_RxContr_rwi(U8 data);
  310. /*! \brief Reads the bit group 'rwi' of register 'I2S_RxContr'. */
  311. U8 GH_I2S_get_RxContr_rwi(void);
  312. /*! \brief Writes the bit group 'rwm' of register 'I2S_RxContr'. */
  313. void GH_I2S_set_RxContr_rwm(U8 data);
  314. /*! \brief Reads the bit group 'rwm' of register 'I2S_RxContr'. */
  315. U8 GH_I2S_get_RxContr_rwm(void);
  316. /*! \brief Writes the bit group 'order' of register 'I2S_RxContr'. */
  317. void GH_I2S_set_RxContr_order(U8 data);
  318. /*! \brief Reads the bit group 'order' of register 'I2S_RxContr'. */
  319. U8 GH_I2S_get_RxContr_order(void);
  320. /*! \brief Writes the bit group 'loopback' of register 'I2S_RxContr'. */
  321. void GH_I2S_set_RxContr_loopback(U8 data);
  322. /*! \brief Reads the bit group 'loopback' of register 'I2S_RxContr'. */
  323. U8 GH_I2S_get_RxContr_loopback(void);
  324. /*----------------------------------------------------------------------------*/
  325. /* register I2S_TxContr (read/write) */
  326. /*----------------------------------------------------------------------------*/
  327. /*! \brief Writes the register 'I2S_TxContr'. */
  328. void GH_I2S_set_TxContr(U32 data);
  329. /*! \brief Reads the register 'I2S_TxContr'. */
  330. U32 GH_I2S_get_TxContr(void);
  331. /*! \brief Writes the bit group 'momo' of register 'I2S_TxContr'. */
  332. void GH_I2S_set_TxContr_momo(U8 data);
  333. /*! \brief Reads the bit group 'momo' of register 'I2S_TxContr'. */
  334. U8 GH_I2S_get_TxContr_momo(void);
  335. /*! \brief Writes the bit group 'mute' of register 'I2S_TxContr'. */
  336. void GH_I2S_set_TxContr_mute(U8 data);
  337. /*! \brief Reads the bit group 'mute' of register 'I2S_TxContr'. */
  338. U8 GH_I2S_get_TxContr_mute(void);
  339. /*! \brief Writes the bit group 'unison' of register 'I2S_TxContr'. */
  340. void GH_I2S_set_TxContr_unison(U8 data);
  341. /*! \brief Reads the bit group 'unison' of register 'I2S_TxContr'. */
  342. U8 GH_I2S_get_TxContr_unison(void);
  343. /*! \brief Writes the bit group 'twi' of register 'I2S_TxContr'. */
  344. void GH_I2S_set_TxContr_twi(U8 data);
  345. /*! \brief Reads the bit group 'twi' of register 'I2S_TxContr'. */
  346. U8 GH_I2S_get_TxContr_twi(void);
  347. /*! \brief Writes the bit group 'twm' of register 'I2S_TxContr'. */
  348. void GH_I2S_set_TxContr_twm(U8 data);
  349. /*! \brief Reads the bit group 'twm' of register 'I2S_TxContr'. */
  350. U8 GH_I2S_get_TxContr_twm(void);
  351. /*! \brief Writes the bit group 'order' of register 'I2S_TxContr'. */
  352. void GH_I2S_set_TxContr_order(U8 data);
  353. /*! \brief Reads the bit group 'order' of register 'I2S_TxContr'. */
  354. U8 GH_I2S_get_TxContr_order(void);
  355. /*! \brief Writes the bit group 'loopback' of register 'I2S_TxContr'. */
  356. void GH_I2S_set_TxContr_loopback(U8 data);
  357. /*! \brief Reads the bit group 'loopback' of register 'I2S_TxContr'. */
  358. U8 GH_I2S_get_TxContr_loopback(void);
  359. /*----------------------------------------------------------------------------*/
  360. /* register I2S_WlReg (read/write) */
  361. /*----------------------------------------------------------------------------*/
  362. /*! \brief Writes the register 'I2S_WlReg'. */
  363. void GH_I2S_set_WlReg(U32 data);
  364. /*! \brief Reads the register 'I2S_WlReg'. */
  365. U32 GH_I2S_get_WlReg(void);
  366. /*! \brief Writes the bit group 'Wlen' of register 'I2S_WlReg'. */
  367. void GH_I2S_set_WlReg_Wlen(U8 data);
  368. /*! \brief Reads the bit group 'Wlen' of register 'I2S_WlReg'. */
  369. U8 GH_I2S_get_WlReg_Wlen(void);
  370. /*----------------------------------------------------------------------------*/
  371. /* register I2S_WPREG (read/write) */
  372. /*----------------------------------------------------------------------------*/
  373. /*! \brief Writes the register 'I2S_WPREG'. */
  374. void GH_I2S_set_WPREG(U32 data);
  375. /*! \brief Reads the register 'I2S_WPREG'. */
  376. U32 GH_I2S_get_WPREG(void);
  377. /*! \brief Writes the bit group 'Ignbit' of register 'I2S_WPREG'. */
  378. void GH_I2S_set_WPREG_Ignbit(U8 data);
  379. /*! \brief Reads the bit group 'Ignbit' of register 'I2S_WPREG'. */
  380. U8 GH_I2S_get_WPREG_Ignbit(void);
  381. /*----------------------------------------------------------------------------*/
  382. /* register I2S_SlotReg (read/write) */
  383. /*----------------------------------------------------------------------------*/
  384. /*! \brief Writes the register 'I2S_SlotReg'. */
  385. void GH_I2S_set_SlotReg(U32 data);
  386. /*! \brief Reads the register 'I2S_SlotReg'. */
  387. U32 GH_I2S_get_SlotReg(void);
  388. /*! \brief Writes the bit group 'slotcont' of register 'I2S_SlotReg'. */
  389. void GH_I2S_set_SlotReg_slotcont(U8 data);
  390. /*! \brief Reads the bit group 'slotcont' of register 'I2S_SlotReg'. */
  391. U8 GH_I2S_get_SlotReg_slotcont(void);
  392. /*----------------------------------------------------------------------------*/
  393. /* register I2S_TxFifoLth (read/write) */
  394. /*----------------------------------------------------------------------------*/
  395. /*! \brief Writes the register 'I2S_TxFifoLth'. */
  396. void GH_I2S_set_TxFifoLth(U32 data);
  397. /*! \brief Reads the register 'I2S_TxFifoLth'. */
  398. U32 GH_I2S_get_TxFifoLth(void);
  399. /*! \brief Writes the bit group 'ft' of register 'I2S_TxFifoLth'. */
  400. void GH_I2S_set_TxFifoLth_ft(U8 data);
  401. /*! \brief Reads the bit group 'ft' of register 'I2S_TxFifoLth'. */
  402. U8 GH_I2S_get_TxFifoLth_ft(void);
  403. /*----------------------------------------------------------------------------*/
  404. /* register I2S_RxFifoGth (read/write) */
  405. /*----------------------------------------------------------------------------*/
  406. /*! \brief Writes the register 'I2S_RxFifoGth'. */
  407. void GH_I2S_set_RxFifoGth(U32 data);
  408. /*! \brief Reads the register 'I2S_RxFifoGth'. */
  409. U32 GH_I2S_get_RxFifoGth(void);
  410. /*! \brief Writes the bit group 'ft' of register 'I2S_RxFifoGth'. */
  411. void GH_I2S_set_RxFifoGth_ft(U8 data);
  412. /*! \brief Reads the bit group 'ft' of register 'I2S_RxFifoGth'. */
  413. U8 GH_I2S_get_RxFifoGth_ft(void);
  414. /*----------------------------------------------------------------------------*/
  415. /* register I2S_Clock (read/write) */
  416. /*----------------------------------------------------------------------------*/
  417. /*! \brief Writes the register 'I2S_Clock'. */
  418. void GH_I2S_set_Clock(U32 data);
  419. /*! \brief Reads the register 'I2S_Clock'. */
  420. U32 GH_I2S_get_Clock(void);
  421. /*! \brief Writes the bit group 'clk_div' of register 'I2S_Clock'. */
  422. void GH_I2S_set_Clock_clk_div(U8 data);
  423. /*! \brief Reads the bit group 'clk_div' of register 'I2S_Clock'. */
  424. U8 GH_I2S_get_Clock_clk_div(void);
  425. /*! \brief Writes the bit group 'rsp' of register 'I2S_Clock'. */
  426. void GH_I2S_set_Clock_rsp(U8 data);
  427. /*! \brief Reads the bit group 'rsp' of register 'I2S_Clock'. */
  428. U8 GH_I2S_get_Clock_rsp(void);
  429. /*! \brief Writes the bit group 'tsp' of register 'I2S_Clock'. */
  430. void GH_I2S_set_Clock_tsp(U8 data);
  431. /*! \brief Reads the bit group 'tsp' of register 'I2S_Clock'. */
  432. U8 GH_I2S_get_Clock_tsp(void);
  433. /*! \brief Writes the bit group 'ss' of register 'I2S_Clock'. */
  434. void GH_I2S_set_Clock_ss(U8 data);
  435. /*! \brief Reads the bit group 'ss' of register 'I2S_Clock'. */
  436. U8 GH_I2S_get_Clock_ss(void);
  437. /*! \brief Writes the bit group 'soe' of register 'I2S_Clock'. */
  438. void GH_I2S_set_Clock_soe(U8 data);
  439. /*! \brief Reads the bit group 'soe' of register 'I2S_Clock'. */
  440. U8 GH_I2S_get_Clock_soe(void);
  441. /*! \brief Writes the bit group 'woe' of register 'I2S_Clock'. */
  442. void GH_I2S_set_Clock_woe(U8 data);
  443. /*! \brief Reads the bit group 'woe' of register 'I2S_Clock'. */
  444. U8 GH_I2S_get_Clock_woe(void);
  445. /*----------------------------------------------------------------------------*/
  446. /* register I2S_Initreg (read/write) */
  447. /*----------------------------------------------------------------------------*/
  448. /*! \brief Writes the register 'I2S_Initreg'. */
  449. void GH_I2S_set_Initreg(U32 data);
  450. /*! \brief Reads the register 'I2S_Initreg'. */
  451. U32 GH_I2S_get_Initreg(void);
  452. /*! \brief Writes the bit group 'frst' of register 'I2S_Initreg'. */
  453. void GH_I2S_set_Initreg_frst(U8 data);
  454. /*! \brief Reads the bit group 'frst' of register 'I2S_Initreg'. */
  455. U8 GH_I2S_get_Initreg_frst(void);
  456. /*! \brief Writes the bit group 're' of register 'I2S_Initreg'. */
  457. void GH_I2S_set_Initreg_re(U8 data);
  458. /*! \brief Reads the bit group 're' of register 'I2S_Initreg'. */
  459. U8 GH_I2S_get_Initreg_re(void);
  460. /*! \brief Writes the bit group 'te' of register 'I2S_Initreg'. */
  461. void GH_I2S_set_Initreg_te(U8 data);
  462. /*! \brief Reads the bit group 'te' of register 'I2S_Initreg'. */
  463. U8 GH_I2S_get_Initreg_te(void);
  464. /*! \brief Writes the bit group 'rxfrst' of register 'I2S_Initreg'. */
  465. void GH_I2S_set_Initreg_rxfrst(U8 data);
  466. /*! \brief Reads the bit group 'rxfrst' of register 'I2S_Initreg'. */
  467. U8 GH_I2S_get_Initreg_rxfrst(void);
  468. /*! \brief Writes the bit group 'txfrst' of register 'I2S_Initreg'. */
  469. void GH_I2S_set_Initreg_txfrst(U8 data);
  470. /*! \brief Reads the bit group 'txfrst' of register 'I2S_Initreg'. */
  471. U8 GH_I2S_get_Initreg_txfrst(void);
  472. /*----------------------------------------------------------------------------*/
  473. /* register I2S_TxFifoFlag (read) */
  474. /*----------------------------------------------------------------------------*/
  475. /*! \brief Reads the register 'I2S_TxFifoFlag'. */
  476. U32 GH_I2S_get_TxFifoFlag(void);
  477. /*! \brief Reads the bit group 'fe' of register 'I2S_TxFifoFlag'. */
  478. U8 GH_I2S_get_TxFifoFlag_fe(void);
  479. /*! \brief Reads the bit group 'ff' of register 'I2S_TxFifoFlag'. */
  480. U8 GH_I2S_get_TxFifoFlag_ff(void);
  481. /*! \brief Reads the bit group 'ftv' of register 'I2S_TxFifoFlag'. */
  482. U8 GH_I2S_get_TxFifoFlag_ftv(void);
  483. /*! \brief Reads the bit group 'ti' of register 'I2S_TxFifoFlag'. */
  484. U8 GH_I2S_get_TxFifoFlag_ti(void);
  485. /*----------------------------------------------------------------------------*/
  486. /* register I2S_TxLeftData (write) */
  487. /*----------------------------------------------------------------------------*/
  488. /*! \brief Writes the register 'I2S_TxLeftData'. */
  489. void GH_I2S_set_TxLeftData(U32 data);
  490. /*! \brief Reads the mirror variable of the register 'I2S_TxLeftData'. */
  491. U32 GH_I2S_getm_TxLeftData(void);
  492. /*! \brief Writes the bit group 'data' of register 'I2S_TxLeftData'. */
  493. void GH_I2S_set_TxLeftData_data(U32 data);
  494. /*! \brief Reads the bit group 'data' from the mirror variable of register 'I2S_TxLeftData'. */
  495. U32 GH_I2S_getm_TxLeftData_data(void);
  496. /*----------------------------------------------------------------------------*/
  497. /* register I2S_TxRightData (write) */
  498. /*----------------------------------------------------------------------------*/
  499. /*! \brief Writes the register 'I2S_TxRightData'. */
  500. void GH_I2S_set_TxRightData(U32 data);
  501. /*! \brief Reads the mirror variable of the register 'I2S_TxRightData'. */
  502. U32 GH_I2S_getm_TxRightData(void);
  503. /*! \brief Writes the bit group 'data' of register 'I2S_TxRightData'. */
  504. void GH_I2S_set_TxRightData_data(U32 data);
  505. /*! \brief Reads the bit group 'data' from the mirror variable of register 'I2S_TxRightData'. */
  506. U32 GH_I2S_getm_TxRightData_data(void);
  507. /*----------------------------------------------------------------------------*/
  508. /* register I2S_RxFifoFlag (read) */
  509. /*----------------------------------------------------------------------------*/
  510. /*! \brief Reads the register 'I2S_RxFifoFlag'. */
  511. U32 GH_I2S_get_RxFifoFlag(void);
  512. /*! \brief Reads the bit group 'fe' of register 'I2S_RxFifoFlag'. */
  513. U8 GH_I2S_get_RxFifoFlag_fe(void);
  514. /*! \brief Reads the bit group 'ff' of register 'I2S_RxFifoFlag'. */
  515. U8 GH_I2S_get_RxFifoFlag_ff(void);
  516. /*! \brief Reads the bit group 'fo' of register 'I2S_RxFifoFlag'. */
  517. U8 GH_I2S_get_RxFifoFlag_fo(void);
  518. /*! \brief Reads the bit group 'ftv' of register 'I2S_RxFifoFlag'. */
  519. U8 GH_I2S_get_RxFifoFlag_ftv(void);
  520. /*! \brief Reads the bit group 'ri' of register 'I2S_RxFifoFlag'. */
  521. U8 GH_I2S_get_RxFifoFlag_ri(void);
  522. /*----------------------------------------------------------------------------*/
  523. /* register I2S_RxData (read) */
  524. /*----------------------------------------------------------------------------*/
  525. /*! \brief Reads the register 'I2S_RxData'. */
  526. U32 GH_I2S_get_RxData(void);
  527. /*! \brief Reads the bit group 'data' of register 'I2S_RxData'. */
  528. U32 GH_I2S_get_RxData_data(void);
  529. /*----------------------------------------------------------------------------*/
  530. /* register I2S_TxFifCntr (read) */
  531. /*----------------------------------------------------------------------------*/
  532. /*! \brief Reads the register 'I2S_TxFifCntr'. */
  533. U32 GH_I2S_get_TxFifCntr(void);
  534. /*! \brief Reads the bit group 'num' of register 'I2S_TxFifCntr'. */
  535. U8 GH_I2S_get_TxFifCntr_num(void);
  536. /*----------------------------------------------------------------------------*/
  537. /* register I2S_Rxfifcntr (read) */
  538. /*----------------------------------------------------------------------------*/
  539. /*! \brief Reads the register 'I2S_Rxfifcntr'. */
  540. U32 GH_I2S_get_Rxfifcntr(void);
  541. /*! \brief Reads the bit group 'num' of register 'I2S_Rxfifcntr'. */
  542. U8 GH_I2S_get_Rxfifcntr_num(void);
  543. /*----------------------------------------------------------------------------*/
  544. /* register I2S_TxInitEnReg (read/write) */
  545. /*----------------------------------------------------------------------------*/
  546. /*! \brief Writes the register 'I2S_TxInitEnReg'. */
  547. void GH_I2S_set_TxInitEnReg(U32 data);
  548. /*! \brief Reads the register 'I2S_TxInitEnReg'. */
  549. U32 GH_I2S_get_TxInitEnReg(void);
  550. /*! \brief Writes the bit group 'fe' of register 'I2S_TxInitEnReg'. */
  551. void GH_I2S_set_TxInitEnReg_fe(U8 data);
  552. /*! \brief Reads the bit group 'fe' of register 'I2S_TxInitEnReg'. */
  553. U8 GH_I2S_get_TxInitEnReg_fe(void);
  554. /*! \brief Writes the bit group 'ff' of register 'I2S_TxInitEnReg'. */
  555. void GH_I2S_set_TxInitEnReg_ff(U8 data);
  556. /*! \brief Reads the bit group 'ff' of register 'I2S_TxInitEnReg'. */
  557. U8 GH_I2S_get_TxInitEnReg_ff(void);
  558. /*! \brief Writes the bit group 'ftv' of register 'I2S_TxInitEnReg'. */
  559. void GH_I2S_set_TxInitEnReg_ftv(U8 data);
  560. /*! \brief Reads the bit group 'ftv' of register 'I2S_TxInitEnReg'. */
  561. U8 GH_I2S_get_TxInitEnReg_ftv(void);
  562. /*! \brief Writes the bit group 'ti' of register 'I2S_TxInitEnReg'. */
  563. void GH_I2S_set_TxInitEnReg_ti(U8 data);
  564. /*! \brief Reads the bit group 'ti' of register 'I2S_TxInitEnReg'. */
  565. U8 GH_I2S_get_TxInitEnReg_ti(void);
  566. /*----------------------------------------------------------------------------*/
  567. /* register I2S_RxInitEnReg (read/write) */
  568. /*----------------------------------------------------------------------------*/
  569. /*! \brief Writes the register 'I2S_RxInitEnReg'. */
  570. void GH_I2S_set_RxInitEnReg(U32 data);
  571. /*! \brief Reads the register 'I2S_RxInitEnReg'. */
  572. U32 GH_I2S_get_RxInitEnReg(void);
  573. /*! \brief Writes the bit group 'fe' of register 'I2S_RxInitEnReg'. */
  574. void GH_I2S_set_RxInitEnReg_fe(U8 data);
  575. /*! \brief Reads the bit group 'fe' of register 'I2S_RxInitEnReg'. */
  576. U8 GH_I2S_get_RxInitEnReg_fe(void);
  577. /*! \brief Writes the bit group 'ff' of register 'I2S_RxInitEnReg'. */
  578. void GH_I2S_set_RxInitEnReg_ff(U8 data);
  579. /*! \brief Reads the bit group 'ff' of register 'I2S_RxInitEnReg'. */
  580. U8 GH_I2S_get_RxInitEnReg_ff(void);
  581. /*! \brief Writes the bit group 'fo' of register 'I2S_RxInitEnReg'. */
  582. void GH_I2S_set_RxInitEnReg_fo(U8 data);
  583. /*! \brief Reads the bit group 'fo' of register 'I2S_RxInitEnReg'. */
  584. U8 GH_I2S_get_RxInitEnReg_fo(void);
  585. /*! \brief Writes the bit group 'ftv' of register 'I2S_RxInitEnReg'. */
  586. void GH_I2S_set_RxInitEnReg_ftv(U8 data);
  587. /*! \brief Reads the bit group 'ftv' of register 'I2S_RxInitEnReg'. */
  588. U8 GH_I2S_get_RxInitEnReg_ftv(void);
  589. /*! \brief Writes the bit group 'ri' of register 'I2S_RxInitEnReg'. */
  590. void GH_I2S_set_RxInitEnReg_ri(U8 data);
  591. /*! \brief Reads the bit group 'ri' of register 'I2S_RxInitEnReg'. */
  592. U8 GH_I2S_get_RxInitEnReg_ri(void);
  593. /*----------------------------------------------------------------------------*/
  594. /* register I2S_RxEcho (read/write) */
  595. /*----------------------------------------------------------------------------*/
  596. /*! \brief Writes the register 'I2S_RxEcho'. */
  597. void GH_I2S_set_RxEcho(U32 data);
  598. /*! \brief Reads the register 'I2S_RxEcho'. */
  599. U32 GH_I2S_get_RxEcho(void);
  600. /*! \brief Writes the bit group 'echo' of register 'I2S_RxEcho'. */
  601. void GH_I2S_set_RxEcho_echo(U8 data);
  602. /*! \brief Reads the bit group 'echo' of register 'I2S_RxEcho'. */
  603. U8 GH_I2S_get_RxEcho_echo(void);
  604. /*----------------------------------------------------------------------------*/
  605. /* register I2S_MultipMode (read/write) */
  606. /*----------------------------------------------------------------------------*/
  607. /*! \brief Writes the register 'I2S_MultipMode'. */
  608. void GH_I2S_set_MultipMode(U32 data);
  609. /*! \brief Reads the register 'I2S_MultipMode'. */
  610. U32 GH_I2S_get_MultipMode(void);
  611. /*! \brief Writes the bit group 'en' of register 'I2S_MultipMode'. */
  612. void GH_I2S_set_MultipMode_en(U8 data);
  613. /*! \brief Reads the bit group 'en' of register 'I2S_MultipMode'. */
  614. U8 GH_I2S_get_MultipMode_en(void);
  615. /*! \brief Writes the bit group 'fdmaen' of register 'I2S_MultipMode'. */
  616. void GH_I2S_set_MultipMode_fdmaen(U8 data);
  617. /*! \brief Reads the bit group 'fdmaen' of register 'I2S_MultipMode'. */
  618. U8 GH_I2S_get_MultipMode_fdmaen(void);
  619. /*! \brief Writes the bit group 'rest' of register 'I2S_MultipMode'. */
  620. void GH_I2S_set_MultipMode_rest(U8 data);
  621. /*! \brief Reads the bit group 'rest' of register 'I2S_MultipMode'. */
  622. U8 GH_I2S_get_MultipMode_rest(void);
  623. /*! \brief Writes the bit group 'dma' of register 'I2S_MultipMode'. */
  624. void GH_I2S_set_MultipMode_dma(U8 data);
  625. /*! \brief Reads the bit group 'dma' of register 'I2S_MultipMode'. */
  626. U8 GH_I2S_get_MultipMode_dma(void);
  627. /*----------------------------------------------------------------------------*/
  628. /* register I2S_Shift (read/write) */
  629. /*----------------------------------------------------------------------------*/
  630. /*! \brief Writes the register 'I2S_Shift'. */
  631. void GH_I2S_set_Shift(U32 data);
  632. /*! \brief Reads the register 'I2S_Shift'. */
  633. U32 GH_I2S_get_Shift(void);
  634. /*! \brief Writes the bit group 'tx' of register 'I2S_Shift'. */
  635. void GH_I2S_set_Shift_tx(U8 data);
  636. /*! \brief Reads the bit group 'tx' of register 'I2S_Shift'. */
  637. U8 GH_I2S_get_Shift_tx(void);
  638. /*! \brief Writes the bit group 'rx' of register 'I2S_Shift'. */
  639. void GH_I2S_set_Shift_rx(U8 data);
  640. /*! \brief Reads the bit group 'rx' of register 'I2S_Shift'. */
  641. U8 GH_I2S_get_Shift_rx(void);
  642. /*----------------------------------------------------------------------------*/
  643. /* register I2S_ChanSlect (read/write) */
  644. /*----------------------------------------------------------------------------*/
  645. /*! \brief Writes the register 'I2S_ChanSlect'. */
  646. void GH_I2S_set_ChanSlect(U32 data);
  647. /*! \brief Reads the register 'I2S_ChanSlect'. */
  648. U32 GH_I2S_get_ChanSlect(void);
  649. /*! \brief Writes the bit group 'chan' of register 'I2S_ChanSlect'. */
  650. void GH_I2S_set_ChanSlect_chan(U8 data);
  651. /*! \brief Reads the bit group 'chan' of register 'I2S_ChanSlect'. */
  652. U8 GH_I2S_get_ChanSlect_chan(void);
  653. /*----------------------------------------------------------------------------*/
  654. /* register I2S_Rx_Dma (read) */
  655. /*----------------------------------------------------------------------------*/
  656. /*! \brief Reads the register 'I2S_Rx_Dma'. */
  657. U32 GH_I2S_get_Rx_Dma(void);
  658. /*! \brief Reads the bit group 'data' of register 'I2S_Rx_Dma'. */
  659. U32 GH_I2S_get_Rx_Dma_data(void);
  660. /*----------------------------------------------------------------------------*/
  661. /* register I2S_Tx_Left_Dma (read) */
  662. /*----------------------------------------------------------------------------*/
  663. /*! \brief Reads the register 'I2S_Tx_Left_Dma'. */
  664. U32 GH_I2S_get_Tx_Left_Dma(void);
  665. /*! \brief Reads the bit group 'data' of register 'I2S_Tx_Left_Dma'. */
  666. U32 GH_I2S_get_Tx_Left_Dma_data(void);
  667. /*----------------------------------------------------------------------------*/
  668. /* init function */
  669. /*----------------------------------------------------------------------------*/
  670. /*! \brief Initialises the registers and mirror variables. */
  671. void GH_I2S_init(void);
  672. #ifdef SRC_INLINE
  673. #define SRC_INC 1
  674. #include "gh_i2s.c"
  675. #undef SRC_INC
  676. #endif
  677. #ifdef __cplusplus
  678. }
  679. #endif
  680. #endif /* _GH_I2S_H */
  681. /*----------------------------------------------------------------------------*/
  682. /* end of file */
  683. /*----------------------------------------------------------------------------*/