| /******************************************************************************** |
| * Marvell GPL License Option |
| * |
| * If you received this File from Marvell, you may opt to use, redistribute and/or |
| * modify this File in accordance with the terms and conditions of the General |
| * Public License Version 2, June 1991 (the "GPL License"), a copy of which is |
| * available along with the File in the license.txt file or by writing to the Free |
| * Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 or |
| * on the worldwide web at http://www.gnu.org/licenses/gpl.txt. |
| * |
| * THE FILE IS DISTRIBUTED AS-IS, WITHOUT WARRANTY OF ANY KIND, AND THE IMPLIED |
| * WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE ARE EXPRESSLY |
| * DISCLAIMED. The GPL License provides additional details about this warranty |
| * disclaimer. |
| ******************************************************************************/ |
| |
| ////// |
| /// don't edit! auto-generated by docc: aio.h |
| //////////////////////////////////////////////////////////// |
| #ifndef aio_h |
| #define aio_h (){} |
| |
| |
| #include "ctypes.h" |
| |
| #pragma pack(1) |
| #ifdef __cplusplus |
| extern "C" { |
| #endif |
| |
| #ifndef _DOCC_H_BITOPS_ |
| #define _DOCC_H_BITOPS_ (){} |
| |
| #define _bSETMASK_(b) ((b)<32 ? (1<<((b)&31)) : 0) |
| #define _NSETMASK_(msb,lsb) (_bSETMASK_((msb)+1)-_bSETMASK_(lsb)) |
| #define _bCLRMASK_(b) (~_bSETMASK_(b)) |
| #define _NCLRMASK_(msb,lsb) (~_NSETMASK_(msb,lsb)) |
| #define _BFGET_(r,msb,lsb) (_NSETMASK_((msb)-(lsb),0)&((r)>>(lsb))) |
| #define _BFSET_(r,msb,lsb,v) do{ (r)&=_NCLRMASK_(msb,lsb); (r)|=_NSETMASK_(msb,lsb)&((v)<<(lsb)); }while(0) |
| |
| #endif |
| |
| |
| |
| ////// |
| /// |
| /// $INTERFACE PRIAUD biu (4,4) |
| /// ### |
| /// * Audio Port configuration registers |
| /// ### |
| /// # # ---------------------------------------------------------- |
| /// @ 0x00000 CLKDIV (RW) |
| /// ### |
| /// * Audio Master Clock (MCLK) Divider register decides the ratio between MCLK and Audio Bit Clock (BCLK). |
| /// ### |
| /// %unsigned 3 SETTING 0x2 |
| /// ### |
| /// * MCLK Divider setting: |
| /// * 0 : Divide by 1 |
| /// * 1: Divide by 2 (default) |
| /// * 2: Divide by 4 |
| /// * 3 : Divide by 8 |
| /// * 4: Divide by 16 |
| /// * 5: Divide by 32 |
| /// * 6: Divide by 64 |
| /// * 7: Divide by 128 |
| /// ### |
| /// : DIV1 0x0 |
| /// : DIV2 0x1 |
| /// : DIV4 0x2 |
| /// : DIV8 0x3 |
| /// : DIV16 0x4 |
| /// : DIV32 0x5 |
| /// : DIV64 0x6 |
| /// : DIV128 0x7 |
| /// %% 29 # Stuffing bits... |
| /// @ 0x00004 CTRL (RW) |
| /// ### |
| /// * Register to Control the Output data format for a audio Port |
| /// ### |
| /// %unsigned 1 LEFTJFY 0x0 |
| /// ### |
| /// * Decides the Audio Justify mode: |
| /// * 0 : Left Justify (default). |
| /// * 1 : Right Justify. |
| /// ### |
| /// : LEFT 0x0 |
| /// : RIGHT 0x1 |
| /// %unsigned 1 INVCLK 0x0 |
| /// ### |
| /// * Invert Bit clock (BCLK): |
| /// * 0 - Normal, data is send/received with Rising edge of bit-Clock (default). |
| /// * Note: For TX: Use this setting if DAC is sampling data at negative edge of bit clock. |
| /// * Note: For RX: Use this setting if ADC is sending data at negative edge of bit clock. |
| /// * 1 - Inverted, data is send/received with Falling edge of bit-Clock. |
| /// * Note: For TX: Use this setting if DAC is sampling data at positive edge of bit clock. |
| /// * Note: For RX: Use this setting if ADC is sending data at positive edge of bit clock. |
| /// ### |
| /// : NORMAL 0x0 |
| /// : INVERTED 0x1 |
| /// %unsigned 1 INVFS 0x1 |
| /// ### |
| /// * Invert Frame Sync (LR Clock): |
| /// * 0: Normal, FSYNC is Low during reset and goes High when first channel (Left) data is transmitted and keeps toggling after that. |
| /// * 1: Inverted, FSYNC is High during reset and goes Low when first channel (Left) data is transmitted and keeps toggling after that. (default) |
| /// * Note: Not used for RX port (MIC). |
| /// ### |
| /// : NORMAL 0x0 |
| /// : INVERTED 0x1 |
| /// %unsigned 1 TLSB 0x0 |
| /// ### |
| /// * Decides which bit is transmitted/received first(left): |
| /// * 0: MSB first |
| /// * 1: LSB first |
| /// ### |
| /// : MSB_FIRST 0x0 |
| /// : LSB_FIRST 0x1 |
| /// %unsigned 3 TDM 0x0 |
| /// ### |
| /// * Decides the channel resolution (number of valid bits in a half period of FSYNC): |
| /// * 0: 16-bits per channel |
| /// * 1: 18-bits per channel |
| /// * 2: 20-bits per channel |
| /// * 3: 24-bits per channel |
| /// * 4: 32-bits per channel |
| /// * 5-7: Reserved |
| /// * Note: HD port only support 16-bits per channel |
| /// ### |
| /// : 16DFM 0x0 |
| /// : 18DFM 0x1 |
| /// : 20DFM 0x2 |
| /// : 24DFM 0x3 |
| /// : 32DFM 0x4 |
| /// %unsigned 2 TCF 0x2 |
| /// ### |
| /// * Decides the half period of FSYNC (sampling rate) in terms of number of bit-clocks: |
| /// * 0: FSYNC half period equals to 16 bit-clocks |
| /// * 1: FSYNC half period equals to 24 bit-clocks |
| /// * 2: FSYNC half period equals to 32 bit-clocks |
| /// * 3: Reserved |
| /// ### |
| /// : 16CFM 0x0 |
| /// : 24CFM 0x1 |
| /// : 32CFM 0x2 |
| /// %unsigned 2 TFM 0x2 |
| /// ### |
| /// * Decides the TX/RX data format: |
| /// * 1: Justified |
| /// * 2: I2S (default) |
| /// * 0 and 3: Reserved |
| /// ### |
| /// : JUSTIFIED 0x1 |
| /// : I2S 0x2 |
| /// %% 21 # Stuffing bits... |
| /// # # ---------------------------------------------------------- |
| /// $ENDOFINTERFACE # size: 8B, bits: 14b, padding: 0B |
| //////////////////////////////////////////////////////////// |
| #ifndef h_PRIAUD |
| #define h_PRIAUD (){} |
| |
| #define RA_PRIAUD_CLKDIV 0x0000 |
| |
| #define BA_PRIAUD_CLKDIV_SETTING 0x0000 |
| #define B16PRIAUD_CLKDIV_SETTING 0x0000 |
| #define LSb32PRIAUD_CLKDIV_SETTING 0 |
| #define LSb16PRIAUD_CLKDIV_SETTING 0 |
| #define bPRIAUD_CLKDIV_SETTING 3 |
| #define MSK32PRIAUD_CLKDIV_SETTING 0x00000007 |
| #define PRIAUD_CLKDIV_SETTING_DIV1 0x0 |
| #define PRIAUD_CLKDIV_SETTING_DIV2 0x1 |
| #define PRIAUD_CLKDIV_SETTING_DIV4 0x2 |
| #define PRIAUD_CLKDIV_SETTING_DIV8 0x3 |
| #define PRIAUD_CLKDIV_SETTING_DIV16 0x4 |
| #define PRIAUD_CLKDIV_SETTING_DIV32 0x5 |
| #define PRIAUD_CLKDIV_SETTING_DIV64 0x6 |
| #define PRIAUD_CLKDIV_SETTING_DIV128 0x7 |
| /////////////////////////////////////////////////////////// |
| #define RA_PRIAUD_CTRL 0x0004 |
| |
| #define BA_PRIAUD_CTRL_LEFTJFY 0x0004 |
| #define B16PRIAUD_CTRL_LEFTJFY 0x0004 |
| #define LSb32PRIAUD_CTRL_LEFTJFY 0 |
| #define LSb16PRIAUD_CTRL_LEFTJFY 0 |
| #define bPRIAUD_CTRL_LEFTJFY 1 |
| #define MSK32PRIAUD_CTRL_LEFTJFY 0x00000001 |
| #define PRIAUD_CTRL_LEFTJFY_LEFT 0x0 |
| #define PRIAUD_CTRL_LEFTJFY_RIGHT 0x1 |
| |
| #define BA_PRIAUD_CTRL_INVCLK 0x0004 |
| #define B16PRIAUD_CTRL_INVCLK 0x0004 |
| #define LSb32PRIAUD_CTRL_INVCLK 1 |
| #define LSb16PRIAUD_CTRL_INVCLK 1 |
| #define bPRIAUD_CTRL_INVCLK 1 |
| #define MSK32PRIAUD_CTRL_INVCLK 0x00000002 |
| #define PRIAUD_CTRL_INVCLK_NORMAL 0x0 |
| #define PRIAUD_CTRL_INVCLK_INVERTED 0x1 |
| |
| #define BA_PRIAUD_CTRL_INVFS 0x0004 |
| #define B16PRIAUD_CTRL_INVFS 0x0004 |
| #define LSb32PRIAUD_CTRL_INVFS 2 |
| #define LSb16PRIAUD_CTRL_INVFS 2 |
| #define bPRIAUD_CTRL_INVFS 1 |
| #define MSK32PRIAUD_CTRL_INVFS 0x00000004 |
| #define PRIAUD_CTRL_INVFS_NORMAL 0x0 |
| #define PRIAUD_CTRL_INVFS_INVERTED 0x1 |
| |
| #define BA_PRIAUD_CTRL_TLSB 0x0004 |
| #define B16PRIAUD_CTRL_TLSB 0x0004 |
| #define LSb32PRIAUD_CTRL_TLSB 3 |
| #define LSb16PRIAUD_CTRL_TLSB 3 |
| #define bPRIAUD_CTRL_TLSB 1 |
| #define MSK32PRIAUD_CTRL_TLSB 0x00000008 |
| #define PRIAUD_CTRL_TLSB_MSB_FIRST 0x0 |
| #define PRIAUD_CTRL_TLSB_LSB_FIRST 0x1 |
| |
| #define BA_PRIAUD_CTRL_TDM 0x0004 |
| #define B16PRIAUD_CTRL_TDM 0x0004 |
| #define LSb32PRIAUD_CTRL_TDM 4 |
| #define LSb16PRIAUD_CTRL_TDM 4 |
| #define bPRIAUD_CTRL_TDM 3 |
| #define MSK32PRIAUD_CTRL_TDM 0x00000070 |
| #define PRIAUD_CTRL_TDM_16DFM 0x0 |
| #define PRIAUD_CTRL_TDM_18DFM 0x1 |
| #define PRIAUD_CTRL_TDM_20DFM 0x2 |
| #define PRIAUD_CTRL_TDM_24DFM 0x3 |
| #define PRIAUD_CTRL_TDM_32DFM 0x4 |
| |
| #define BA_PRIAUD_CTRL_TCF 0x0004 |
| #define B16PRIAUD_CTRL_TCF 0x0004 |
| #define LSb32PRIAUD_CTRL_TCF 7 |
| #define LSb16PRIAUD_CTRL_TCF 7 |
| #define bPRIAUD_CTRL_TCF 2 |
| #define MSK32PRIAUD_CTRL_TCF 0x00000180 |
| #define PRIAUD_CTRL_TCF_16CFM 0x0 |
| #define PRIAUD_CTRL_TCF_24CFM 0x1 |
| #define PRIAUD_CTRL_TCF_32CFM 0x2 |
| |
| #define BA_PRIAUD_CTRL_TFM 0x0005 |
| #define B16PRIAUD_CTRL_TFM 0x0004 |
| #define LSb32PRIAUD_CTRL_TFM 9 |
| #define LSb16PRIAUD_CTRL_TFM 9 |
| #define bPRIAUD_CTRL_TFM 2 |
| #define MSK32PRIAUD_CTRL_TFM 0x00000600 |
| #define PRIAUD_CTRL_TFM_JUSTIFIED 0x1 |
| #define PRIAUD_CTRL_TFM_I2S 0x2 |
| /////////////////////////////////////////////////////////// |
| |
| typedef struct SIE_PRIAUD { |
| /////////////////////////////////////////////////////////// |
| #define GET32PRIAUD_CLKDIV_SETTING(r32) _BFGET_(r32, 2, 0) |
| #define SET32PRIAUD_CLKDIV_SETTING(r32,v) _BFSET_(r32, 2, 0,v) |
| #define GET16PRIAUD_CLKDIV_SETTING(r16) _BFGET_(r16, 2, 0) |
| #define SET16PRIAUD_CLKDIV_SETTING(r16,v) _BFSET_(r16, 2, 0,v) |
| |
| #define w32PRIAUD_CLKDIV {\ |
| UNSG32 uCLKDIV_SETTING : 3;\ |
| UNSG32 RSVDx0_b3 : 29;\ |
| } |
| union { UNSG32 u32PRIAUD_CLKDIV; |
| struct w32PRIAUD_CLKDIV; |
| }; |
| /////////////////////////////////////////////////////////// |
| #define GET32PRIAUD_CTRL_LEFTJFY(r32) _BFGET_(r32, 0, 0) |
| #define SET32PRIAUD_CTRL_LEFTJFY(r32,v) _BFSET_(r32, 0, 0,v) |
| #define GET16PRIAUD_CTRL_LEFTJFY(r16) _BFGET_(r16, 0, 0) |
| #define SET16PRIAUD_CTRL_LEFTJFY(r16,v) _BFSET_(r16, 0, 0,v) |
| |
| #define GET32PRIAUD_CTRL_INVCLK(r32) _BFGET_(r32, 1, 1) |
| #define SET32PRIAUD_CTRL_INVCLK(r32,v) _BFSET_(r32, 1, 1,v) |
| #define GET16PRIAUD_CTRL_INVCLK(r16) _BFGET_(r16, 1, 1) |
| #define SET16PRIAUD_CTRL_INVCLK(r16,v) _BFSET_(r16, 1, 1,v) |
| |
| #define GET32PRIAUD_CTRL_INVFS(r32) _BFGET_(r32, 2, 2) |
| #define SET32PRIAUD_CTRL_INVFS(r32,v) _BFSET_(r32, 2, 2,v) |
| #define GET16PRIAUD_CTRL_INVFS(r16) _BFGET_(r16, 2, 2) |
| #define SET16PRIAUD_CTRL_INVFS(r16,v) _BFSET_(r16, 2, 2,v) |
| |
| #define GET32PRIAUD_CTRL_TLSB(r32) _BFGET_(r32, 3, 3) |
| #define SET32PRIAUD_CTRL_TLSB(r32,v) _BFSET_(r32, 3, 3,v) |
| #define GET16PRIAUD_CTRL_TLSB(r16) _BFGET_(r16, 3, 3) |
| #define SET16PRIAUD_CTRL_TLSB(r16,v) _BFSET_(r16, 3, 3,v) |
| |
| #define GET32PRIAUD_CTRL_TDM(r32) _BFGET_(r32, 6, 4) |
| #define SET32PRIAUD_CTRL_TDM(r32,v) _BFSET_(r32, 6, 4,v) |
| #define GET16PRIAUD_CTRL_TDM(r16) _BFGET_(r16, 6, 4) |
| #define SET16PRIAUD_CTRL_TDM(r16,v) _BFSET_(r16, 6, 4,v) |
| |
| #define GET32PRIAUD_CTRL_TCF(r32) _BFGET_(r32, 8, 7) |
| #define SET32PRIAUD_CTRL_TCF(r32,v) _BFSET_(r32, 8, 7,v) |
| #define GET16PRIAUD_CTRL_TCF(r16) _BFGET_(r16, 8, 7) |
| #define SET16PRIAUD_CTRL_TCF(r16,v) _BFSET_(r16, 8, 7,v) |
| |
| #define GET32PRIAUD_CTRL_TFM(r32) _BFGET_(r32,10, 9) |
| #define SET32PRIAUD_CTRL_TFM(r32,v) _BFSET_(r32,10, 9,v) |
| #define GET16PRIAUD_CTRL_TFM(r16) _BFGET_(r16,10, 9) |
| #define SET16PRIAUD_CTRL_TFM(r16,v) _BFSET_(r16,10, 9,v) |
| |
| #define w32PRIAUD_CTRL {\ |
| UNSG32 uCTRL_LEFTJFY : 1;\ |
| UNSG32 uCTRL_INVCLK : 1;\ |
| UNSG32 uCTRL_INVFS : 1;\ |
| UNSG32 uCTRL_TLSB : 1;\ |
| UNSG32 uCTRL_TDM : 3;\ |
| UNSG32 uCTRL_TCF : 2;\ |
| UNSG32 uCTRL_TFM : 2;\ |
| UNSG32 RSVDx4_b11 : 21;\ |
| } |
| union { UNSG32 u32PRIAUD_CTRL; |
| struct w32PRIAUD_CTRL; |
| }; |
| /////////////////////////////////////////////////////////// |
| } SIE_PRIAUD; |
| |
| typedef union T32PRIAUD_CLKDIV |
| { UNSG32 u32; |
| struct w32PRIAUD_CLKDIV; |
| } T32PRIAUD_CLKDIV; |
| typedef union T32PRIAUD_CTRL |
| { UNSG32 u32; |
| struct w32PRIAUD_CTRL; |
| } T32PRIAUD_CTRL; |
| /////////////////////////////////////////////////////////// |
| |
| typedef union TPRIAUD_CLKDIV |
| { UNSG32 u32[1]; |
| struct { |
| struct w32PRIAUD_CLKDIV; |
| }; |
| } TPRIAUD_CLKDIV; |
| typedef union TPRIAUD_CTRL |
| { UNSG32 u32[1]; |
| struct { |
| struct w32PRIAUD_CTRL; |
| }; |
| } TPRIAUD_CTRL; |
| |
| /////////////////////////////////////////////////////////// |
| SIGN32 PRIAUD_drvrd(SIE_PRIAUD *p, UNSG32 base, SIGN32 mem, SIGN32 tst); |
| SIGN32 PRIAUD_drvwr(SIE_PRIAUD *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd); |
| void PRIAUD_reset(SIE_PRIAUD *p); |
| SIGN32 PRIAUD_cmp (SIE_PRIAUD *p, SIE_PRIAUD *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst); |
| #define PRIAUD_check(p,pie,pfx,hLOG) PRIAUD_cmp(p,pie,pfx,(void*)(hLOG),0,0) |
| #define PRIAUD_print(p, pfx,hLOG) PRIAUD_cmp(p,0, pfx,(void*)(hLOG),0,0) |
| |
| #endif |
| ////// |
| /// ENDOFINTERFACE: PRIAUD |
| //////////////////////////////////////////////////////////// |
| |
| ////// |
| /// |
| /// $INTERFACE AUDCH biu (4,4) |
| /// ### |
| /// * Audio Port Control registers |
| /// ### |
| /// # # ---------------------------------------------------------- |
| /// @ 0x00000 CTRL (RW) |
| /// ### |
| /// * Audio Port Control register |
| /// ### |
| /// %unsigned 1 ENABLE 0x0 |
| /// ### |
| /// * Control bit to enable/disable an audio channel: |
| /// * 0: Disable a audio Channel (default) |
| /// * 1: Enable a audio Channel |
| /// * Note: Bit-clock (BCLK) is not controlled using this bit. For switching off the Bit Clock the output enable register should be used(IOSEL). |
| /// ### |
| /// : DISABLE 0x0 |
| /// : ENABLE 0x1 |
| /// %unsigned 1 MUTE 0x0 |
| /// ### |
| /// * Control bit to turn mute function ON or OFF |
| /// * 0: Mute turned OFF (default) |
| /// * 1: Mute turned ON |
| /// ### |
| /// : MUTE_OFF 0x0 |
| /// : MUTE_ON 0x1 |
| /// %unsigned 1 LRSWITCH 0x0 |
| /// ### |
| /// * Control bit for switching the left channel data with right channel data: |
| /// * 0: Do not switch data (default) |
| /// * 1: Switch Data |
| /// * Note: Not supported for S/PDIF. |
| /// ### |
| /// : SWITCH_OFF 0x0 |
| /// : SWITCH_ON 0x1 |
| /// %unsigned 1 DEBUGEN 0x0 |
| /// ### |
| /// * Control bit to enable/disable Debug mode: |
| /// * 0: Disable (default) |
| /// * 1: Enable |
| /// * Note: In debug mode transmit data is from debug registers. |
| /// * *INTERNAL_ONLY** |
| /// ### |
| /// : DISABLE 0x0 |
| /// : ENABLE 0x1 |
| /// %unsigned 1 FLUSH 0x0 |
| /// ### |
| /// * Control bit to clear the Data FIFO pointers related to a port: |
| /// * 0: Do not flush (default) |
| /// * 1: Flush |
| /// ### |
| /// : ON 0x1 |
| /// : OFF 0x0 |
| /// %% 27 # Stuffing bits... |
| /// @ 0x00004 DEBUGHI (RW) |
| /// ### |
| /// * Upper 32-bit Debug data |
| /// ### |
| /// %unsigned 32 DATAHI 0x4884103F |
| /// ### |
| /// * Upper 32-bit Debug data |
| /// * *INTERNAL_ONLY** |
| /// ### |
| /// @ 0x00008 DEBUGLO (RW) |
| /// ### |
| /// * Lower 32-bit Debug data |
| /// ### |
| /// %unsigned 32 DATALO 0xB77BEFC0 |
| /// ### |
| /// * Lower 32-bit Debug data |
| /// * *INTERNAL_ONLY** |
| /// ### |
| /// # # ---------------------------------------------------------- |
| /// $ENDOFINTERFACE # size: 12B, bits: 69b, padding: 0B |
| //////////////////////////////////////////////////////////// |
| #ifndef h_AUDCH |
| #define h_AUDCH (){} |
| |
| #define RA_AUDCH_CTRL 0x0000 |
| |
| #define BA_AUDCH_CTRL_ENABLE 0x0000 |
| #define B16AUDCH_CTRL_ENABLE 0x0000 |
| #define LSb32AUDCH_CTRL_ENABLE 0 |
| #define LSb16AUDCH_CTRL_ENABLE 0 |
| #define bAUDCH_CTRL_ENABLE 1 |
| #define MSK32AUDCH_CTRL_ENABLE 0x00000001 |
| #define AUDCH_CTRL_ENABLE_DISABLE 0x0 |
| #define AUDCH_CTRL_ENABLE_ENABLE 0x1 |
| |
| #define BA_AUDCH_CTRL_MUTE 0x0000 |
| #define B16AUDCH_CTRL_MUTE 0x0000 |
| #define LSb32AUDCH_CTRL_MUTE 1 |
| #define LSb16AUDCH_CTRL_MUTE 1 |
| #define bAUDCH_CTRL_MUTE 1 |
| #define MSK32AUDCH_CTRL_MUTE 0x00000002 |
| #define AUDCH_CTRL_MUTE_MUTE_OFF 0x0 |
| #define AUDCH_CTRL_MUTE_MUTE_ON 0x1 |
| |
| #define BA_AUDCH_CTRL_LRSWITCH 0x0000 |
| #define B16AUDCH_CTRL_LRSWITCH 0x0000 |
| #define LSb32AUDCH_CTRL_LRSWITCH 2 |
| #define LSb16AUDCH_CTRL_LRSWITCH 2 |
| #define bAUDCH_CTRL_LRSWITCH 1 |
| #define MSK32AUDCH_CTRL_LRSWITCH 0x00000004 |
| #define AUDCH_CTRL_LRSWITCH_SWITCH_OFF 0x0 |
| #define AUDCH_CTRL_LRSWITCH_SWITCH_ON 0x1 |
| |
| #define BA_AUDCH_CTRL_DEBUGEN 0x0000 |
| #define B16AUDCH_CTRL_DEBUGEN 0x0000 |
| #define LSb32AUDCH_CTRL_DEBUGEN 3 |
| #define LSb16AUDCH_CTRL_DEBUGEN 3 |
| #define bAUDCH_CTRL_DEBUGEN 1 |
| #define MSK32AUDCH_CTRL_DEBUGEN 0x00000008 |
| #define AUDCH_CTRL_DEBUGEN_DISABLE 0x0 |
| #define AUDCH_CTRL_DEBUGEN_ENABLE 0x1 |
| |
| #define BA_AUDCH_CTRL_FLUSH 0x0000 |
| #define B16AUDCH_CTRL_FLUSH 0x0000 |
| #define LSb32AUDCH_CTRL_FLUSH 4 |
| #define LSb16AUDCH_CTRL_FLUSH 4 |
| #define bAUDCH_CTRL_FLUSH 1 |
| #define MSK32AUDCH_CTRL_FLUSH 0x00000010 |
| #define AUDCH_CTRL_FLUSH_ON 0x1 |
| #define AUDCH_CTRL_FLUSH_OFF 0x0 |
| /////////////////////////////////////////////////////////// |
| #define RA_AUDCH_DEBUGHI 0x0004 |
| |
| #define BA_AUDCH_DEBUGHI_DATAHI 0x0004 |
| #define B16AUDCH_DEBUGHI_DATAHI 0x0004 |
| #define LSb32AUDCH_DEBUGHI_DATAHI 0 |
| #define LSb16AUDCH_DEBUGHI_DATAHI 0 |
| #define bAUDCH_DEBUGHI_DATAHI 32 |
| #define MSK32AUDCH_DEBUGHI_DATAHI 0xFFFFFFFF |
| /////////////////////////////////////////////////////////// |
| #define RA_AUDCH_DEBUGLO 0x0008 |
| |
| #define BA_AUDCH_DEBUGLO_DATALO 0x0008 |
| #define B16AUDCH_DEBUGLO_DATALO 0x0008 |
| #define LSb32AUDCH_DEBUGLO_DATALO 0 |
| #define LSb16AUDCH_DEBUGLO_DATALO 0 |
| #define bAUDCH_DEBUGLO_DATALO 32 |
| #define MSK32AUDCH_DEBUGLO_DATALO 0xFFFFFFFF |
| /////////////////////////////////////////////////////////// |
| |
| typedef struct SIE_AUDCH { |
| /////////////////////////////////////////////////////////// |
| #define GET32AUDCH_CTRL_ENABLE(r32) _BFGET_(r32, 0, 0) |
| #define SET32AUDCH_CTRL_ENABLE(r32,v) _BFSET_(r32, 0, 0,v) |
| #define GET16AUDCH_CTRL_ENABLE(r16) _BFGET_(r16, 0, 0) |
| #define SET16AUDCH_CTRL_ENABLE(r16,v) _BFSET_(r16, 0, 0,v) |
| |
| #define GET32AUDCH_CTRL_MUTE(r32) _BFGET_(r32, 1, 1) |
| #define SET32AUDCH_CTRL_MUTE(r32,v) _BFSET_(r32, 1, 1,v) |
| #define GET16AUDCH_CTRL_MUTE(r16) _BFGET_(r16, 1, 1) |
| #define SET16AUDCH_CTRL_MUTE(r16,v) _BFSET_(r16, 1, 1,v) |
| |
| #define GET32AUDCH_CTRL_LRSWITCH(r32) _BFGET_(r32, 2, 2) |
| #define SET32AUDCH_CTRL_LRSWITCH(r32,v) _BFSET_(r32, 2, 2,v) |
| #define GET16AUDCH_CTRL_LRSWITCH(r16) _BFGET_(r16, 2, 2) |
| #define SET16AUDCH_CTRL_LRSWITCH(r16,v) _BFSET_(r16, 2, 2,v) |
| |
| #define GET32AUDCH_CTRL_DEBUGEN(r32) _BFGET_(r32, 3, 3) |
| #define SET32AUDCH_CTRL_DEBUGEN(r32,v) _BFSET_(r32, 3, 3,v) |
| #define GET16AUDCH_CTRL_DEBUGEN(r16) _BFGET_(r16, 3, 3) |
| #define SET16AUDCH_CTRL_DEBUGEN(r16,v) _BFSET_(r16, 3, 3,v) |
| |
| #define GET32AUDCH_CTRL_FLUSH(r32) _BFGET_(r32, 4, 4) |
| #define SET32AUDCH_CTRL_FLUSH(r32,v) _BFSET_(r32, 4, 4,v) |
| #define GET16AUDCH_CTRL_FLUSH(r16) _BFGET_(r16, 4, 4) |
| #define SET16AUDCH_CTRL_FLUSH(r16,v) _BFSET_(r16, 4, 4,v) |
| |
| #define w32AUDCH_CTRL {\ |
| UNSG32 uCTRL_ENABLE : 1;\ |
| UNSG32 uCTRL_MUTE : 1;\ |
| UNSG32 uCTRL_LRSWITCH : 1;\ |
| UNSG32 uCTRL_DEBUGEN : 1;\ |
| UNSG32 uCTRL_FLUSH : 1;\ |
| UNSG32 RSVDx0_b5 : 27;\ |
| } |
| union { UNSG32 u32AUDCH_CTRL; |
| struct w32AUDCH_CTRL; |
| }; |
| /////////////////////////////////////////////////////////// |
| #define GET32AUDCH_DEBUGHI_DATAHI(r32) _BFGET_(r32,31, 0) |
| #define SET32AUDCH_DEBUGHI_DATAHI(r32,v) _BFSET_(r32,31, 0,v) |
| |
| #define w32AUDCH_DEBUGHI {\ |
| UNSG32 uDEBUGHI_DATAHI : 32;\ |
| } |
| union { UNSG32 u32AUDCH_DEBUGHI; |
| struct w32AUDCH_DEBUGHI; |
| }; |
| /////////////////////////////////////////////////////////// |
| #define GET32AUDCH_DEBUGLO_DATALO(r32) _BFGET_(r32,31, 0) |
| #define SET32AUDCH_DEBUGLO_DATALO(r32,v) _BFSET_(r32,31, 0,v) |
| |
| #define w32AUDCH_DEBUGLO {\ |
| UNSG32 uDEBUGLO_DATALO : 32;\ |
| } |
| union { UNSG32 u32AUDCH_DEBUGLO; |
| struct w32AUDCH_DEBUGLO; |
| }; |
| /////////////////////////////////////////////////////////// |
| } SIE_AUDCH; |
| |
| typedef union T32AUDCH_CTRL |
| { UNSG32 u32; |
| struct w32AUDCH_CTRL; |
| } T32AUDCH_CTRL; |
| typedef union T32AUDCH_DEBUGHI |
| { UNSG32 u32; |
| struct w32AUDCH_DEBUGHI; |
| } T32AUDCH_DEBUGHI; |
| typedef union T32AUDCH_DEBUGLO |
| { UNSG32 u32; |
| struct w32AUDCH_DEBUGLO; |
| } T32AUDCH_DEBUGLO; |
| /////////////////////////////////////////////////////////// |
| |
| typedef union TAUDCH_CTRL |
| { UNSG32 u32[1]; |
| struct { |
| struct w32AUDCH_CTRL; |
| }; |
| } TAUDCH_CTRL; |
| typedef union TAUDCH_DEBUGHI |
| { UNSG32 u32[1]; |
| struct { |
| struct w32AUDCH_DEBUGHI; |
| }; |
| } TAUDCH_DEBUGHI; |
| typedef union TAUDCH_DEBUGLO |
| { UNSG32 u32[1]; |
| struct { |
| struct w32AUDCH_DEBUGLO; |
| }; |
| } TAUDCH_DEBUGLO; |
| |
| /////////////////////////////////////////////////////////// |
| SIGN32 AUDCH_drvrd(SIE_AUDCH *p, UNSG32 base, SIGN32 mem, SIGN32 tst); |
| SIGN32 AUDCH_drvwr(SIE_AUDCH *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd); |
| void AUDCH_reset(SIE_AUDCH *p); |
| SIGN32 AUDCH_cmp (SIE_AUDCH *p, SIE_AUDCH *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst); |
| #define AUDCH_check(p,pie,pfx,hLOG) AUDCH_cmp(p,pie,pfx,(void*)(hLOG),0,0) |
| #define AUDCH_print(p, pfx,hLOG) AUDCH_cmp(p,0, pfx,(void*)(hLOG),0,0) |
| |
| #endif |
| ////// |
| /// ENDOFINTERFACE: AUDCH |
| //////////////////////////////////////////////////////////// |
| |
| ////// |
| /// |
| /// $INTERFACE SPDIF biu (4,4) |
| /// ### |
| /// * S/PDIF Control registers |
| /// ### |
| /// # # ---------------------------------------------------------- |
| /// @ 0x00000 CLKDIV (RW) |
| /// ### |
| /// * S/PDIF transmitter bit clock selection register to decide the output sampling rate |
| /// ### |
| /// %unsigned 3 SETTING 0x2 |
| /// ### |
| /// * MCLK Divider setting: |
| /// * 0 : Divide by 1 |
| /// * 1: Divide by 2 |
| /// * 2: Divide by 4 ( default) |
| /// * 3 : Divide by 8 |
| /// * 4: Divide by 16 |
| /// * 5: Divide by 32 |
| /// * 6: Divide by 64 |
| /// * 7: Divide by 128 |
| /// ### |
| /// : DIV1 0x0 |
| /// : DIV2 0x1 |
| /// : DIV4 0x2 |
| /// : DIV8 0x3 |
| /// : DIV16 0x4 |
| /// : DIV32 0x5 |
| /// : DIV64 0x6 |
| /// : DIV128 0x7 |
| /// %% 29 # Stuffing bits... |
| /// @ 0x00004 (P) |
| /// # 0x00004 SPDIF |
| /// $AUDCH SPDIF REG |
| /// # # ---------------------------------------------------------- |
| /// $ENDOFINTERFACE # size: 16B, bits: 72b, padding: 0B |
| //////////////////////////////////////////////////////////// |
| #ifndef h_SPDIF |
| #define h_SPDIF (){} |
| |
| #define RA_SPDIF_CLKDIV 0x0000 |
| |
| #define BA_SPDIF_CLKDIV_SETTING 0x0000 |
| #define B16SPDIF_CLKDIV_SETTING 0x0000 |
| #define LSb32SPDIF_CLKDIV_SETTING 0 |
| #define LSb16SPDIF_CLKDIV_SETTING 0 |
| #define bSPDIF_CLKDIV_SETTING 3 |
| #define MSK32SPDIF_CLKDIV_SETTING 0x00000007 |
| #define SPDIF_CLKDIV_SETTING_DIV1 0x0 |
| #define SPDIF_CLKDIV_SETTING_DIV2 0x1 |
| #define SPDIF_CLKDIV_SETTING_DIV4 0x2 |
| #define SPDIF_CLKDIV_SETTING_DIV8 0x3 |
| #define SPDIF_CLKDIV_SETTING_DIV16 0x4 |
| #define SPDIF_CLKDIV_SETTING_DIV32 0x5 |
| #define SPDIF_CLKDIV_SETTING_DIV64 0x6 |
| #define SPDIF_CLKDIV_SETTING_DIV128 0x7 |
| /////////////////////////////////////////////////////////// |
| #define RA_SPDIF_SPDIF 0x0004 |
| /////////////////////////////////////////////////////////// |
| |
| typedef struct SIE_SPDIF { |
| /////////////////////////////////////////////////////////// |
| #define GET32SPDIF_CLKDIV_SETTING(r32) _BFGET_(r32, 2, 0) |
| #define SET32SPDIF_CLKDIV_SETTING(r32,v) _BFSET_(r32, 2, 0,v) |
| #define GET16SPDIF_CLKDIV_SETTING(r16) _BFGET_(r16, 2, 0) |
| #define SET16SPDIF_CLKDIV_SETTING(r16,v) _BFSET_(r16, 2, 0,v) |
| |
| #define w32SPDIF_CLKDIV {\ |
| UNSG32 uCLKDIV_SETTING : 3;\ |
| UNSG32 RSVDx0_b3 : 29;\ |
| } |
| union { UNSG32 u32SPDIF_CLKDIV; |
| struct w32SPDIF_CLKDIV; |
| }; |
| /////////////////////////////////////////////////////////// |
| SIE_AUDCH ie_SPDIF; |
| /////////////////////////////////////////////////////////// |
| } SIE_SPDIF; |
| |
| typedef union T32SPDIF_CLKDIV |
| { UNSG32 u32; |
| struct w32SPDIF_CLKDIV; |
| } T32SPDIF_CLKDIV; |
| /////////////////////////////////////////////////////////// |
| |
| typedef union TSPDIF_CLKDIV |
| { UNSG32 u32[1]; |
| struct { |
| struct w32SPDIF_CLKDIV; |
| }; |
| } TSPDIF_CLKDIV; |
| |
| /////////////////////////////////////////////////////////// |
| SIGN32 SPDIF_drvrd(SIE_SPDIF *p, UNSG32 base, SIGN32 mem, SIGN32 tst); |
| SIGN32 SPDIF_drvwr(SIE_SPDIF *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd); |
| void SPDIF_reset(SIE_SPDIF *p); |
| SIGN32 SPDIF_cmp (SIE_SPDIF *p, SIE_SPDIF *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst); |
| #define SPDIF_check(p,pie,pfx,hLOG) SPDIF_cmp(p,pie,pfx,(void*)(hLOG),0,0) |
| #define SPDIF_print(p, pfx,hLOG) SPDIF_cmp(p,0, pfx,(void*)(hLOG),0,0) |
| |
| #endif |
| ////// |
| /// ENDOFINTERFACE: SPDIF |
| //////////////////////////////////////////////////////////// |
| |
| ////// |
| /// |
| /// $INTERFACE P71 (4,4) |
| /// ### |
| /// * Audio 7.1 Primary port Control registers |
| /// ### |
| /// # # ---------------------------------------------------------- |
| /// @ 0x00000 (P) |
| /// # 0x00000 PRIAUD |
| /// $PRIAUD PRIAUD REG |
| /// ### |
| /// * Primary Port Channel 0 control register |
| /// ### |
| /// @ 0x00008 (P) |
| /// # 0x00008 TSD0 |
| /// $AUDCH TSD0 REG |
| /// ### |
| /// * Primary Port Channel 1 control register |
| /// ### |
| /// @ 0x00014 (P) |
| /// # 0x00014 TSD1 |
| /// $AUDCH TSD1 REG |
| /// ### |
| /// * Primary Port Channel 2 control register |
| /// ### |
| /// @ 0x00020 (P) |
| /// # 0x00020 TSD2 |
| /// $AUDCH TSD2 REG |
| /// ### |
| /// * Primary Port Channel 3 control register |
| /// ### |
| /// @ 0x0002C (P) |
| /// # 0x0002C TSD3 |
| /// $AUDCH TSD3 REG |
| /// @ 0x00038 PRIPORT (RW) |
| /// %unsigned 1 ENABLE 0x0 |
| /// ### |
| /// * Register bit to enable or disable the whole Primary Audio port: |
| /// * 0: Disabled (default) |
| /// * 1: Enabled |
| /// * Note: User can selects the desired number of audio channels within the primary port by setting the corresponding enable bits for Channel 0/1/2/3 |
| /// ### |
| /// : DISABLE 0x0 |
| /// : ENABLE 0x1 |
| /// %% 31 # Stuffing bits... |
| /// # # ---------------------------------------------------------- |
| /// $ENDOFINTERFACE # size: 60B, bits: 291b, padding: 0B |
| //////////////////////////////////////////////////////////// |
| #ifndef h_P71 |
| #define h_P71 (){} |
| |
| #define RA_P71_PRIAUD 0x0000 |
| /////////////////////////////////////////////////////////// |
| #define RA_P71_TSD0 0x0008 |
| /////////////////////////////////////////////////////////// |
| #define RA_P71_TSD1 0x0014 |
| /////////////////////////////////////////////////////////// |
| #define RA_P71_TSD2 0x0020 |
| /////////////////////////////////////////////////////////// |
| #define RA_P71_TSD3 0x002C |
| /////////////////////////////////////////////////////////// |
| #define RA_P71_PRIPORT 0x0038 |
| |
| #define BA_P71_PRIPORT_ENABLE 0x0038 |
| #define B16P71_PRIPORT_ENABLE 0x0038 |
| #define LSb32P71_PRIPORT_ENABLE 0 |
| #define LSb16P71_PRIPORT_ENABLE 0 |
| #define bP71_PRIPORT_ENABLE 1 |
| #define MSK32P71_PRIPORT_ENABLE 0x00000001 |
| #define P71_PRIPORT_ENABLE_DISABLE 0x0 |
| #define P71_PRIPORT_ENABLE_ENABLE 0x1 |
| /////////////////////////////////////////////////////////// |
| |
| typedef struct SIE_P71 { |
| /////////////////////////////////////////////////////////// |
| SIE_PRIAUD ie_PRIAUD; |
| /////////////////////////////////////////////////////////// |
| SIE_AUDCH ie_TSD0; |
| /////////////////////////////////////////////////////////// |
| SIE_AUDCH ie_TSD1; |
| /////////////////////////////////////////////////////////// |
| SIE_AUDCH ie_TSD2; |
| /////////////////////////////////////////////////////////// |
| SIE_AUDCH ie_TSD3; |
| /////////////////////////////////////////////////////////// |
| #define GET32P71_PRIPORT_ENABLE(r32) _BFGET_(r32, 0, 0) |
| #define SET32P71_PRIPORT_ENABLE(r32,v) _BFSET_(r32, 0, 0,v) |
| #define GET16P71_PRIPORT_ENABLE(r16) _BFGET_(r16, 0, 0) |
| #define SET16P71_PRIPORT_ENABLE(r16,v) _BFSET_(r16, 0, 0,v) |
| |
| #define w32P71_PRIPORT {\ |
| UNSG32 uPRIPORT_ENABLE : 1;\ |
| UNSG32 RSVDx38_b1 : 31;\ |
| } |
| union { UNSG32 u32P71_PRIPORT; |
| struct w32P71_PRIPORT; |
| }; |
| /////////////////////////////////////////////////////////// |
| } SIE_P71; |
| |
| typedef union T32P71_PRIPORT |
| { UNSG32 u32; |
| struct w32P71_PRIPORT; |
| } T32P71_PRIPORT; |
| /////////////////////////////////////////////////////////// |
| |
| typedef union TP71_PRIPORT |
| { UNSG32 u32[1]; |
| struct { |
| struct w32P71_PRIPORT; |
| }; |
| } TP71_PRIPORT; |
| |
| /////////////////////////////////////////////////////////// |
| SIGN32 P71_drvrd(SIE_P71 *p, UNSG32 base, SIGN32 mem, SIGN32 tst); |
| SIGN32 P71_drvwr(SIE_P71 *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd); |
| void P71_reset(SIE_P71 *p); |
| SIGN32 P71_cmp (SIE_P71 *p, SIE_P71 *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst); |
| #define P71_check(p,pie,pfx,hLOG) P71_cmp(p,pie,pfx,(void*)(hLOG),0,0) |
| #define P71_print(p, pfx,hLOG) P71_cmp(p,0, pfx,(void*)(hLOG),0,0) |
| |
| #endif |
| ////// |
| /// ENDOFINTERFACE: P71 |
| //////////////////////////////////////////////////////////// |
| |
| ////// |
| /// |
| /// $INTERFACE SEC (4,4) |
| /// ### |
| /// * Audio Secondary port Control registers |
| /// ### |
| /// # # ---------------------------------------------------------- |
| /// @ 0x00000 (P) |
| /// # 0x00000 SECAUD |
| /// $PRIAUD SECAUD REG |
| /// @ 0x00008 (P) |
| /// # 0x00008 TSD |
| /// $AUDCH TSD REG |
| /// # # ---------------------------------------------------------- |
| /// $ENDOFINTERFACE # size: 20B, bits: 83b, padding: 0B |
| //////////////////////////////////////////////////////////// |
| #ifndef h_SEC |
| #define h_SEC (){} |
| |
| #define RA_SEC_SECAUD 0x0000 |
| /////////////////////////////////////////////////////////// |
| #define RA_SEC_TSD 0x0008 |
| /////////////////////////////////////////////////////////// |
| |
| typedef struct SIE_SEC { |
| /////////////////////////////////////////////////////////// |
| SIE_PRIAUD ie_SECAUD; |
| /////////////////////////////////////////////////////////// |
| SIE_AUDCH ie_TSD; |
| /////////////////////////////////////////////////////////// |
| } SIE_SEC; |
| |
| /////////////////////////////////////////////////////////// |
| SIGN32 SEC_drvrd(SIE_SEC *p, UNSG32 base, SIGN32 mem, SIGN32 tst); |
| SIGN32 SEC_drvwr(SIE_SEC *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd); |
| void SEC_reset(SIE_SEC *p); |
| SIGN32 SEC_cmp (SIE_SEC *p, SIE_SEC *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst); |
| #define SEC_check(p,pie,pfx,hLOG) SEC_cmp(p,pie,pfx,(void*)(hLOG),0,0) |
| #define SEC_print(p, pfx,hLOG) SEC_cmp(p,0, pfx,(void*)(hLOG),0,0) |
| |
| #endif |
| ////// |
| /// ENDOFINTERFACE: SEC |
| //////////////////////////////////////////////////////////// |
| |
| ////// |
| /// |
| /// $INTERFACE HDMI (4,4) |
| /// ### |
| /// * HDMI port control register |
| /// ### |
| /// # # ---------------------------------------------------------- |
| /// @ 0x00000 (P) |
| /// # 0x00000 HDAUD |
| /// $PRIAUD HDAUD REG |
| /// @ 0x00008 (P) |
| /// # 0x00008 HDTSD |
| /// $AUDCH HDTSD REG |
| /// @ 0x00014 HDPORT (RW) |
| /// ### |
| /// * High Bit Rate (HD) audio port Control register |
| /// ### |
| /// %unsigned 1 TXSEL 0x0 |
| /// ### |
| /// * Register used to select the transmitter for HDMI audio. |
| /// * 0 : HD channel |
| /// * 1: p71 channel (primary audio) |
| /// ### |
| /// %% 31 # Stuffing bits... |
| /// # # ---------------------------------------------------------- |
| /// $ENDOFINTERFACE # size: 24B, bits: 84b, padding: 0B |
| //////////////////////////////////////////////////////////// |
| #ifndef h_HDMI |
| #define h_HDMI (){} |
| |
| #define RA_HDMI_HDAUD 0x0000 |
| /////////////////////////////////////////////////////////// |
| #define RA_HDMI_HDTSD 0x0008 |
| /////////////////////////////////////////////////////////// |
| #define RA_HDMI_HDPORT 0x0014 |
| |
| #define BA_HDMI_HDPORT_TXSEL 0x0014 |
| #define B16HDMI_HDPORT_TXSEL 0x0014 |
| #define LSb32HDMI_HDPORT_TXSEL 0 |
| #define LSb16HDMI_HDPORT_TXSEL 0 |
| #define bHDMI_HDPORT_TXSEL 1 |
| #define MSK32HDMI_HDPORT_TXSEL 0x00000001 |
| /////////////////////////////////////////////////////////// |
| |
| typedef struct SIE_HDMI { |
| /////////////////////////////////////////////////////////// |
| SIE_PRIAUD ie_HDAUD; |
| /////////////////////////////////////////////////////////// |
| SIE_AUDCH ie_HDTSD; |
| /////////////////////////////////////////////////////////// |
| #define GET32HDMI_HDPORT_TXSEL(r32) _BFGET_(r32, 0, 0) |
| #define SET32HDMI_HDPORT_TXSEL(r32,v) _BFSET_(r32, 0, 0,v) |
| #define GET16HDMI_HDPORT_TXSEL(r16) _BFGET_(r16, 0, 0) |
| #define SET16HDMI_HDPORT_TXSEL(r16,v) _BFSET_(r16, 0, 0,v) |
| |
| #define w32HDMI_HDPORT {\ |
| UNSG32 uHDPORT_TXSEL : 1;\ |
| UNSG32 RSVDx14_b1 : 31;\ |
| } |
| union { UNSG32 u32HDMI_HDPORT; |
| struct w32HDMI_HDPORT; |
| }; |
| /////////////////////////////////////////////////////////// |
| } SIE_HDMI; |
| |
| typedef union T32HDMI_HDPORT |
| { UNSG32 u32; |
| struct w32HDMI_HDPORT; |
| } T32HDMI_HDPORT; |
| /////////////////////////////////////////////////////////// |
| |
| typedef union THDMI_HDPORT |
| { UNSG32 u32[1]; |
| struct { |
| struct w32HDMI_HDPORT; |
| }; |
| } THDMI_HDPORT; |
| |
| /////////////////////////////////////////////////////////// |
| SIGN32 HDMI_drvrd(SIE_HDMI *p, UNSG32 base, SIGN32 mem, SIGN32 tst); |
| SIGN32 HDMI_drvwr(SIE_HDMI *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd); |
| void HDMI_reset(SIE_HDMI *p); |
| SIGN32 HDMI_cmp (SIE_HDMI *p, SIE_HDMI *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst); |
| #define HDMI_check(p,pie,pfx,hLOG) HDMI_cmp(p,pie,pfx,(void*)(hLOG),0,0) |
| #define HDMI_print(p, pfx,hLOG) HDMI_cmp(p,0, pfx,(void*)(hLOG),0,0) |
| |
| #endif |
| ////// |
| /// ENDOFINTERFACE: HDMI |
| //////////////////////////////////////////////////////////// |
| |
| ////// |
| /// |
| /// $INTERFACE MIC (4,4) |
| /// ### |
| /// * RX Port registers |
| /// ### |
| /// # # ---------------------------------------------------------- |
| /// @ 0x00000 (P) |
| /// # 0x00000 MICCTRL |
| /// $PRIAUD MICCTRL REG |
| /// ### |
| /// * RX Port Channel 0 control register |
| /// ### |
| /// @ 0x00008 (P) |
| /// # 0x00008 RSD0 |
| /// $AUDCH RSD0 REG |
| /// ### |
| /// * RX Port Channel 1 control register |
| /// ### |
| /// @ 0x00014 (P) |
| /// # 0x00014 RSD1 |
| /// $AUDCH RSD1 REG |
| /// ### |
| /// * RX Port Channel 2 control register |
| /// ### |
| /// @ 0x00020 (P) |
| /// # 0x00020 RSD2 |
| /// $AUDCH RSD2 REG |
| /// ### |
| /// * RX Port Channel 3 control register |
| /// ### |
| /// @ 0x0002C (P) |
| /// # 0x0002C RSD3 |
| /// $AUDCH RSD3 REG |
| /// @ 0x00038 RXPORT (RW) |
| /// %unsigned 1 ENABLE 0x0 |
| /// ### |
| /// * Register bit to enable or disable the whole RX Audio port: |
| /// * 0: Disabled (default) |
| /// * 1: Enabled |
| /// * Note: User can selects the desired number of audio channels within the RX port by setting the |
| /// * corresponding enable bits for channel 0/1/2/3 |
| /// ### |
| /// : DISABLE 0x0 |
| /// : ENABLE 0x1 |
| /// %% 31 # Stuffing bits... |
| /// @ 0x0003C RXDATA (RW) |
| /// %unsigned 1 HBR 0x0 |
| /// ### |
| /// * Register bit to indicate whether incoming data is 8-channel HBR or LPCM (or 2-channel HBR) |
| /// * 1 : HBR data (8-channel HBR) |
| /// * 0 : LPCM data |
| /// * Note: This bit should not be set to “1” in case of 2-channel HBR. As there is no difference in behavior of this module between 2-channel HBR or 2-channel LPCM data. |
| /// ### |
| /// %% 31 # Stuffing bits... |
| /// @ 0x00040 HBRDMAP (RW) |
| /// ### |
| /// * HBR DATA MAP Register. |
| /// * In 8-channel HBR data mode. 128-bits of data is received by SoC. These registers bits allows the users to map the 32 bits received on each port to the desired place in 128-bits. |
| /// ### |
| /// %unsigned 2 PORT0 0x0 |
| /// ### |
| /// * Data select for [31:0]: |
| /// * 00 : Port 0 data |
| /// * 01 : Port 1 data |
| /// * 10 : Port 2 data |
| /// * 11 : Port 3 data |
| /// ### |
| /// %unsigned 2 PORT1 0x1 |
| /// ### |
| /// * Data select for [63:32]: |
| /// * 00 : Port 0 data |
| /// * 01 : Port 1 data |
| /// * 10 : Port 2 data |
| /// * 11 : Port 3 data |
| /// ### |
| /// %unsigned 2 PORT2 0x2 |
| /// ### |
| /// * Data select for [95:64]: |
| /// * 00 : Port 0 data |
| /// * 01 : Port 1 data |
| /// * 10 : Port 2 data |
| /// * 11 : Port 3 data |
| /// ### |
| /// %unsigned 2 PORT3 0x3 |
| /// ### |
| /// * Data select for [127:96]: |
| /// * 00 : Port 0 data |
| /// * 01 : Port 1 data |
| /// * 10 : Port 2 data |
| /// * 11 : Port 3 data |
| /// ### |
| /// %% 24 # Stuffing bits... |
| /// @ 0x00044 PDM_CTRL1 (RW) |
| /// %unsigned 4 MCLKSEL 0x1 |
| /// ### |
| /// * PDM MCLK Selection register: |
| /// * 3'b000 : Select MCLK PRIMARY |
| /// * 3'b001 : Select MCLK SECONDARY (default) |
| /// * 3'b010 : Select MCLK HD TX |
| /// * 3'b011 : Select MCLK SPDIF |
| /// * 3'b100 : Select MCLK HD RX |
| /// * 3'b101 to 3'b111 reserved |
| /// * Bit 4: is used to select MCLK of 4-channel MIC |
| /// * 1: Select MCLK of 4-channel MIC |
| /// ### |
| /// %unsigned 4 CLKDIV 0x4 |
| /// ### |
| /// * PDM CLKOUT Divider. |
| /// * 0: Divide by 1 |
| /// * 1: Divide by 2 |
| /// * 2: Divide by 4 |
| /// * 3: Divide by 8 |
| /// * 4: Divide by 16 (default) |
| /// * 5: Divide by 32 |
| /// * 6: Divide by 64 |
| /// * ........................ |
| /// * ........................ |
| /// * 14: Divide by 16384 |
| /// * 15: Divide by 32768 |
| /// ### |
| /// %unsigned 1 CLKEN 0x0 |
| /// ### |
| /// * PDM CLKOUT ENABLE |
| /// * 0 : PDM CLK disabled (default) |
| /// * 1 : PDM CLK enabled |
| /// ### |
| /// %unsigned 1 ENABLE 0x0 |
| /// ### |
| /// * PDM interface enable |
| /// * 0: Disabled (default) |
| /// * 1: Enabled |
| /// ### |
| /// %unsigned 1 MUTE 0x0 |
| /// ### |
| /// * Control bit to turn mute function ON or OFF |
| /// * 0: Mute turned OFF (default) |
| /// * 1: Mute turned ON |
| /// ### |
| /// %unsigned 1 LRSWITCH 0x0 |
| /// ### |
| /// * Control bit for switching the left channel data with right channel data: |
| /// * 0: Do not switch data (default) |
| /// * 1: Switch Data |
| /// ### |
| /// %unsigned 1 INVCLK_OUT 0x0 |
| /// ### |
| /// * Invert PDM CLK OUT |
| /// * 0: Not inverted (default) |
| /// * 1: Inverted |
| /// ### |
| /// %unsigned 1 INVCLK_INT 0x0 |
| /// ### |
| /// * Invert PDM CLK Internal |
| /// * 0: Not inverted (default) |
| /// * 1: Inverted |
| /// ### |
| /// %unsigned 1 RLSB 0x0 |
| /// ### |
| /// * Decides which bit is eceived first(left): |
| /// * 0: MSB first (default) |
| /// * 1: LSB first |
| /// ### |
| /// %unsigned 3 RDM 0x4 |
| /// ### |
| /// * L/R Channel resolution |
| /// * 0: 16-bits per channel |
| /// * 1: 18-bits per channel |
| /// * 2: 20-bits per channel |
| /// * 3: 24-bits per channel |
| /// * 4: 32-bits per channel (default) |
| /// * 5-7: Reserved |
| /// ### |
| /// %unsigned 1 MODE 0x0 |
| /// ### |
| /// * 0 : Half cycle PDM (DDR) (default) |
| /// * 1 : Classic PDM (SDR) |
| /// ### |
| /// %unsigned 1 SDR_CLKSEL 0x0 |
| /// ### |
| /// * SDR Data latch clock edge select |
| /// * 0: Latch data on falling clock edge of CLKOUT (default) |
| /// * 1: Latch data on rising clock edge of CLKOUT |
| /// ### |
| /// %unsigned 1 LATCH_MODE 0x0 |
| /// ### |
| /// * PDM Data input latch mode |
| /// * 0: Counter, Use oversampling clock (400Mhz, sysClk) to lath the input data (default) |
| /// * 1: Edge, Use PDM CLKOUT Edge to latch the the input data |
| /// ### |
| /// %% 11 # Stuffing bits... |
| /// @ 0x00048 PDM_CTRL2 (RW) |
| /// %unsigned 16 RDLT 0x1E |
| /// ### |
| /// * Rise Data Latch Time |
| /// * This registers decides PDM input data latch time after the Rising edge of PDMCLK in-terms of sysClk cycles + 1, when Data Latch mode is counter |
| /// ### |
| /// %unsigned 16 FDLT 0x1E |
| /// ### |
| /// * Fall Data Latch Time |
| /// * This registers decides PDM input data latch time after the falling edge of PDMCLK in-terms of sysClk cycles + 1, when Data Latch mode is counter |
| /// ### |
| /// # # ---------------------------------------------------------- |
| /// $ENDOFINTERFACE # size: 76B, bits: 353b, padding: 0B |
| //////////////////////////////////////////////////////////// |
| #ifndef h_MIC |
| #define h_MIC (){} |
| |
| #define RA_MIC_MICCTRL 0x0000 |
| /////////////////////////////////////////////////////////// |
| #define RA_MIC_RSD0 0x0008 |
| /////////////////////////////////////////////////////////// |
| #define RA_MIC_RSD1 0x0014 |
| /////////////////////////////////////////////////////////// |
| #define RA_MIC_RSD2 0x0020 |
| /////////////////////////////////////////////////////////// |
| #define RA_MIC_RSD3 0x002C |
| /////////////////////////////////////////////////////////// |
| #define RA_MIC_RXPORT 0x0038 |
| |
| #define BA_MIC_RXPORT_ENABLE 0x0038 |
| #define B16MIC_RXPORT_ENABLE 0x0038 |
| #define LSb32MIC_RXPORT_ENABLE 0 |
| #define LSb16MIC_RXPORT_ENABLE 0 |
| #define bMIC_RXPORT_ENABLE 1 |
| #define MSK32MIC_RXPORT_ENABLE 0x00000001 |
| #define MIC_RXPORT_ENABLE_DISABLE 0x0 |
| #define MIC_RXPORT_ENABLE_ENABLE 0x1 |
| /////////////////////////////////////////////////////////// |
| #define RA_MIC_RXDATA 0x003C |
| |
| #define BA_MIC_RXDATA_HBR 0x003C |
| #define B16MIC_RXDATA_HBR 0x003C |
| #define LSb32MIC_RXDATA_HBR 0 |
| #define LSb16MIC_RXDATA_HBR 0 |
| #define bMIC_RXDATA_HBR 1 |
| #define MSK32MIC_RXDATA_HBR 0x00000001 |
| /////////////////////////////////////////////////////////// |
| #define RA_MIC_HBRDMAP 0x0040 |
| |
| #define BA_MIC_HBRDMAP_PORT0 0x0040 |
| #define B16MIC_HBRDMAP_PORT0 0x0040 |
| #define LSb32MIC_HBRDMAP_PORT0 0 |
| #define LSb16MIC_HBRDMAP_PORT0 0 |
| #define bMIC_HBRDMAP_PORT0 2 |
| #define MSK32MIC_HBRDMAP_PORT0 0x00000003 |
| |
| #define BA_MIC_HBRDMAP_PORT1 0x0040 |
| #define B16MIC_HBRDMAP_PORT1 0x0040 |
| #define LSb32MIC_HBRDMAP_PORT1 2 |
| #define LSb16MIC_HBRDMAP_PORT1 2 |
| #define bMIC_HBRDMAP_PORT1 2 |
| #define MSK32MIC_HBRDMAP_PORT1 0x0000000C |
| |
| #define BA_MIC_HBRDMAP_PORT2 0x0040 |
| #define B16MIC_HBRDMAP_PORT2 0x0040 |
| #define LSb32MIC_HBRDMAP_PORT2 4 |
| #define LSb16MIC_HBRDMAP_PORT2 4 |
| #define bMIC_HBRDMAP_PORT2 2 |
| #define MSK32MIC_HBRDMAP_PORT2 0x00000030 |
| |
| #define BA_MIC_HBRDMAP_PORT3 0x0040 |
| #define B16MIC_HBRDMAP_PORT3 0x0040 |
| #define LSb32MIC_HBRDMAP_PORT3 6 |
| #define LSb16MIC_HBRDMAP_PORT3 6 |
| #define bMIC_HBRDMAP_PORT3 2 |
| #define MSK32MIC_HBRDMAP_PORT3 0x000000C0 |
| /////////////////////////////////////////////////////////// |
| #define RA_MIC_PDM_CTRL1 0x0044 |
| |
| #define BA_MIC_PDM_CTRL1_MCLKSEL 0x0044 |
| #define B16MIC_PDM_CTRL1_MCLKSEL 0x0044 |
| #define LSb32MIC_PDM_CTRL1_MCLKSEL 0 |
| #define LSb16MIC_PDM_CTRL1_MCLKSEL 0 |
| #define bMIC_PDM_CTRL1_MCLKSEL 4 |
| #define MSK32MIC_PDM_CTRL1_MCLKSEL 0x0000000F |
| |
| #define BA_MIC_PDM_CTRL1_CLKDIV 0x0044 |
| #define B16MIC_PDM_CTRL1_CLKDIV 0x0044 |
| #define LSb32MIC_PDM_CTRL1_CLKDIV 4 |
| #define LSb16MIC_PDM_CTRL1_CLKDIV 4 |
| #define bMIC_PDM_CTRL1_CLKDIV 4 |
| #define MSK32MIC_PDM_CTRL1_CLKDIV 0x000000F0 |
| |
| #define BA_MIC_PDM_CTRL1_CLKEN 0x0045 |
| #define B16MIC_PDM_CTRL1_CLKEN 0x0044 |
| #define LSb32MIC_PDM_CTRL1_CLKEN 8 |
| #define LSb16MIC_PDM_CTRL1_CLKEN 8 |
| #define bMIC_PDM_CTRL1_CLKEN 1 |
| #define MSK32MIC_PDM_CTRL1_CLKEN 0x00000100 |
| |
| #define BA_MIC_PDM_CTRL1_ENABLE 0x0045 |
| #define B16MIC_PDM_CTRL1_ENABLE 0x0044 |
| #define LSb32MIC_PDM_CTRL1_ENABLE 9 |
| #define LSb16MIC_PDM_CTRL1_ENABLE 9 |
| #define bMIC_PDM_CTRL1_ENABLE 1 |
| #define MSK32MIC_PDM_CTRL1_ENABLE 0x00000200 |
| |
| #define BA_MIC_PDM_CTRL1_MUTE 0x0045 |
| #define B16MIC_PDM_CTRL1_MUTE 0x0044 |
| #define LSb32MIC_PDM_CTRL1_MUTE 10 |
| #define LSb16MIC_PDM_CTRL1_MUTE 10 |
| #define bMIC_PDM_CTRL1_MUTE 1 |
| #define MSK32MIC_PDM_CTRL1_MUTE 0x00000400 |
| |
| #define BA_MIC_PDM_CTRL1_LRSWITCH 0x0045 |
| #define B16MIC_PDM_CTRL1_LRSWITCH 0x0044 |
| #define LSb32MIC_PDM_CTRL1_LRSWITCH 11 |
| #define LSb16MIC_PDM_CTRL1_LRSWITCH 11 |
| #define bMIC_PDM_CTRL1_LRSWITCH 1 |
| #define MSK32MIC_PDM_CTRL1_LRSWITCH 0x00000800 |
| |
| #define BA_MIC_PDM_CTRL1_INVCLK_OUT 0x0045 |
| #define B16MIC_PDM_CTRL1_INVCLK_OUT 0x0044 |
| #define LSb32MIC_PDM_CTRL1_INVCLK_OUT 12 |
| #define LSb16MIC_PDM_CTRL1_INVCLK_OUT 12 |
| #define bMIC_PDM_CTRL1_INVCLK_OUT 1 |
| #define MSK32MIC_PDM_CTRL1_INVCLK_OUT 0x00001000 |
| |
| #define BA_MIC_PDM_CTRL1_INVCLK_INT 0x0045 |
| #define B16MIC_PDM_CTRL1_INVCLK_INT 0x0044 |
| #define LSb32MIC_PDM_CTRL1_INVCLK_INT 13 |
| #define LSb16MIC_PDM_CTRL1_INVCLK_INT 13 |
| #define bMIC_PDM_CTRL1_INVCLK_INT 1 |
| #define MSK32MIC_PDM_CTRL1_INVCLK_INT 0x00002000 |
| |
| #define BA_MIC_PDM_CTRL1_RLSB 0x0045 |
| #define B16MIC_PDM_CTRL1_RLSB 0x0044 |
| #define LSb32MIC_PDM_CTRL1_RLSB 14 |
| #define LSb16MIC_PDM_CTRL1_RLSB 14 |
| #define bMIC_PDM_CTRL1_RLSB 1 |
| #define MSK32MIC_PDM_CTRL1_RLSB 0x00004000 |
| |
| #define BA_MIC_PDM_CTRL1_RDM 0x0045 |
| #define B16MIC_PDM_CTRL1_RDM 0x0044 |
| #define LSb32MIC_PDM_CTRL1_RDM 15 |
| #define LSb16MIC_PDM_CTRL1_RDM 15 |
| #define bMIC_PDM_CTRL1_RDM 3 |
| #define MSK32MIC_PDM_CTRL1_RDM 0x00038000 |
| |
| #define BA_MIC_PDM_CTRL1_MODE 0x0046 |
| #define B16MIC_PDM_CTRL1_MODE 0x0046 |
| #define LSb32MIC_PDM_CTRL1_MODE 18 |
| #define LSb16MIC_PDM_CTRL1_MODE 2 |
| #define bMIC_PDM_CTRL1_MODE 1 |
| #define MSK32MIC_PDM_CTRL1_MODE 0x00040000 |
| |
| #define BA_MIC_PDM_CTRL1_SDR_CLKSEL 0x0046 |
| #define B16MIC_PDM_CTRL1_SDR_CLKSEL 0x0046 |
| #define LSb32MIC_PDM_CTRL1_SDR_CLKSEL 19 |
| #define LSb16MIC_PDM_CTRL1_SDR_CLKSEL 3 |
| #define bMIC_PDM_CTRL1_SDR_CLKSEL 1 |
| #define MSK32MIC_PDM_CTRL1_SDR_CLKSEL 0x00080000 |
| |
| #define BA_MIC_PDM_CTRL1_LATCH_MODE 0x0046 |
| #define B16MIC_PDM_CTRL1_LATCH_MODE 0x0046 |
| #define LSb32MIC_PDM_CTRL1_LATCH_MODE 20 |
| #define LSb16MIC_PDM_CTRL1_LATCH_MODE 4 |
| #define bMIC_PDM_CTRL1_LATCH_MODE 1 |
| #define MSK32MIC_PDM_CTRL1_LATCH_MODE 0x00100000 |
| /////////////////////////////////////////////////////////// |
| #define RA_MIC_PDM_CTRL2 0x0048 |
| |
| #define BA_MIC_PDM_CTRL2_RDLT 0x0048 |
| #define B16MIC_PDM_CTRL2_RDLT 0x0048 |
| #define LSb32MIC_PDM_CTRL2_RDLT 0 |
| #define LSb16MIC_PDM_CTRL2_RDLT 0 |
| #define bMIC_PDM_CTRL2_RDLT 16 |
| #define MSK32MIC_PDM_CTRL2_RDLT 0x0000FFFF |
| |
| #define BA_MIC_PDM_CTRL2_FDLT 0x004A |
| #define B16MIC_PDM_CTRL2_FDLT 0x004A |
| #define LSb32MIC_PDM_CTRL2_FDLT 16 |
| #define LSb16MIC_PDM_CTRL2_FDLT 0 |
| #define bMIC_PDM_CTRL2_FDLT 16 |
| #define MSK32MIC_PDM_CTRL2_FDLT 0xFFFF0000 |
| /////////////////////////////////////////////////////////// |
| |
| typedef struct SIE_MIC { |
| /////////////////////////////////////////////////////////// |
| SIE_PRIAUD ie_MICCTRL; |
| /////////////////////////////////////////////////////////// |
| SIE_AUDCH ie_RSD0; |
| /////////////////////////////////////////////////////////// |
| SIE_AUDCH ie_RSD1; |
| /////////////////////////////////////////////////////////// |
| SIE_AUDCH ie_RSD2; |
| /////////////////////////////////////////////////////////// |
| SIE_AUDCH ie_RSD3; |
| /////////////////////////////////////////////////////////// |
| #define GET32MIC_RXPORT_ENABLE(r32) _BFGET_(r32, 0, 0) |
| #define SET32MIC_RXPORT_ENABLE(r32,v) _BFSET_(r32, 0, 0,v) |
| #define GET16MIC_RXPORT_ENABLE(r16) _BFGET_(r16, 0, 0) |
| #define SET16MIC_RXPORT_ENABLE(r16,v) _BFSET_(r16, 0, 0,v) |
| |
| #define w32MIC_RXPORT {\ |
| UNSG32 uRXPORT_ENABLE : 1;\ |
| UNSG32 RSVDx38_b1 : 31;\ |
| } |
| union { UNSG32 u32MIC_RXPORT; |
| struct w32MIC_RXPORT; |
| }; |
| /////////////////////////////////////////////////////////// |
| #define GET32MIC_RXDATA_HBR(r32) _BFGET_(r32, 0, 0) |
| #define SET32MIC_RXDATA_HBR(r32,v) _BFSET_(r32, 0, 0,v) |
| #define GET16MIC_RXDATA_HBR(r16) _BFGET_(r16, 0, 0) |
| #define SET16MIC_RXDATA_HBR(r16,v) _BFSET_(r16, 0, 0,v) |
| |
| #define w32MIC_RXDATA {\ |
| UNSG32 uRXDATA_HBR : 1;\ |
| UNSG32 RSVDx3C_b1 : 31;\ |
| } |
| union { UNSG32 u32MIC_RXDATA; |
| struct w32MIC_RXDATA; |
| }; |
| /////////////////////////////////////////////////////////// |
| #define GET32MIC_HBRDMAP_PORT0(r32) _BFGET_(r32, 1, 0) |
| #define SET32MIC_HBRDMAP_PORT0(r32,v) _BFSET_(r32, 1, 0,v) |
| #define GET16MIC_HBRDMAP_PORT0(r16) _BFGET_(r16, 1, 0) |
| #define SET16MIC_HBRDMAP_PORT0(r16,v) _BFSET_(r16, 1, 0,v) |
| |
| #define GET32MIC_HBRDMAP_PORT1(r32) _BFGET_(r32, 3, 2) |
| #define SET32MIC_HBRDMAP_PORT1(r32,v) _BFSET_(r32, 3, 2,v) |
| #define GET16MIC_HBRDMAP_PORT1(r16) _BFGET_(r16, 3, 2) |
| #define SET16MIC_HBRDMAP_PORT1(r16,v) _BFSET_(r16, 3, 2,v) |
| |
| #define GET32MIC_HBRDMAP_PORT2(r32) _BFGET_(r32, 5, 4) |
| #define SET32MIC_HBRDMAP_PORT2(r32,v) _BFSET_(r32, 5, 4,v) |
| #define GET16MIC_HBRDMAP_PORT2(r16) _BFGET_(r16, 5, 4) |
| #define SET16MIC_HBRDMAP_PORT2(r16,v) _BFSET_(r16, 5, 4,v) |
| |
| #define GET32MIC_HBRDMAP_PORT3(r32) _BFGET_(r32, 7, 6) |
| #define SET32MIC_HBRDMAP_PORT3(r32,v) _BFSET_(r32, 7, 6,v) |
| #define GET16MIC_HBRDMAP_PORT3(r16) _BFGET_(r16, 7, 6) |
| #define SET16MIC_HBRDMAP_PORT3(r16,v) _BFSET_(r16, 7, 6,v) |
| |
| #define w32MIC_HBRDMAP {\ |
| UNSG32 uHBRDMAP_PORT0 : 2;\ |
| UNSG32 uHBRDMAP_PORT1 : 2;\ |
| UNSG32 uHBRDMAP_PORT2 : 2;\ |
| UNSG32 uHBRDMAP_PORT3 : 2;\ |
| UNSG32 RSVDx40_b8 : 24;\ |
| } |
| union { UNSG32 u32MIC_HBRDMAP; |
| struct w32MIC_HBRDMAP; |
| }; |
| /////////////////////////////////////////////////////////// |
| #define GET32MIC_PDM_CTRL1_MCLKSEL(r32) _BFGET_(r32, 3, 0) |
| #define SET32MIC_PDM_CTRL1_MCLKSEL(r32,v) _BFSET_(r32, 3, 0,v) |
| #define GET16MIC_PDM_CTRL1_MCLKSEL(r16) _BFGET_(r16, 3, 0) |
| #define SET16MIC_PDM_CTRL1_MCLKSEL(r16,v) _BFSET_(r16, 3, 0,v) |
| |
| #define GET32MIC_PDM_CTRL1_CLKDIV(r32) _BFGET_(r32, 7, 4) |
| #define SET32MIC_PDM_CTRL1_CLKDIV(r32,v) _BFSET_(r32, 7, 4,v) |
| #define GET16MIC_PDM_CTRL1_CLKDIV(r16) _BFGET_(r16, 7, 4) |
| #define SET16MIC_PDM_CTRL1_CLKDIV(r16,v) _BFSET_(r16, 7, 4,v) |
| |
| #define GET32MIC_PDM_CTRL1_CLKEN(r32) _BFGET_(r32, 8, 8) |
| #define SET32MIC_PDM_CTRL1_CLKEN(r32,v) _BFSET_(r32, 8, 8,v) |
| #define GET16MIC_PDM_CTRL1_CLKEN(r16) _BFGET_(r16, 8, 8) |
| #define SET16MIC_PDM_CTRL1_CLKEN(r16,v) _BFSET_(r16, 8, 8,v) |
| |
| #define GET32MIC_PDM_CTRL1_ENABLE(r32) _BFGET_(r32, 9, 9) |
| #define SET32MIC_PDM_CTRL1_ENABLE(r32,v) _BFSET_(r32, 9, 9,v) |
| #define GET16MIC_PDM_CTRL1_ENABLE(r16) _BFGET_(r16, 9, 9) |
| #define SET16MIC_PDM_CTRL1_ENABLE(r16,v) _BFSET_(r16, 9, 9,v) |
| |
| #define GET32MIC_PDM_CTRL1_MUTE(r32) _BFGET_(r32,10,10) |
| #define SET32MIC_PDM_CTRL1_MUTE(r32,v) _BFSET_(r32,10,10,v) |
| #define GET16MIC_PDM_CTRL1_MUTE(r16) _BFGET_(r16,10,10) |
| #define SET16MIC_PDM_CTRL1_MUTE(r16,v) _BFSET_(r16,10,10,v) |
| |
| #define GET32MIC_PDM_CTRL1_LRSWITCH(r32) _BFGET_(r32,11,11) |
| #define SET32MIC_PDM_CTRL1_LRSWITCH(r32,v) _BFSET_(r32,11,11,v) |
| #define GET16MIC_PDM_CTRL1_LRSWITCH(r16) _BFGET_(r16,11,11) |
| #define SET16MIC_PDM_CTRL1_LRSWITCH(r16,v) _BFSET_(r16,11,11,v) |
| |
| #define GET32MIC_PDM_CTRL1_INVCLK_OUT(r32) _BFGET_(r32,12,12) |
| #define SET32MIC_PDM_CTRL1_INVCLK_OUT(r32,v) _BFSET_(r32,12,12,v) |
| #define GET16MIC_PDM_CTRL1_INVCLK_OUT(r16) _BFGET_(r16,12,12) |
| #define SET16MIC_PDM_CTRL1_INVCLK_OUT(r16,v) _BFSET_(r16,12,12,v) |
| |
| #define GET32MIC_PDM_CTRL1_INVCLK_INT(r32) _BFGET_(r32,13,13) |
| #define SET32MIC_PDM_CTRL1_INVCLK_INT(r32,v) _BFSET_(r32,13,13,v) |
| #define GET16MIC_PDM_CTRL1_INVCLK_INT(r16) _BFGET_(r16,13,13) |
| #define SET16MIC_PDM_CTRL1_INVCLK_INT(r16,v) _BFSET_(r16,13,13,v) |
| |
| #define GET32MIC_PDM_CTRL1_RLSB(r32) _BFGET_(r32,14,14) |
| #define SET32MIC_PDM_CTRL1_RLSB(r32,v) _BFSET_(r32,14,14,v) |
| #define GET16MIC_PDM_CTRL1_RLSB(r16) _BFGET_(r16,14,14) |
| #define SET16MIC_PDM_CTRL1_RLSB(r16,v) _BFSET_(r16,14,14,v) |
| |
| #define GET32MIC_PDM_CTRL1_RDM(r32) _BFGET_(r32,17,15) |
| #define SET32MIC_PDM_CTRL1_RDM(r32,v) _BFSET_(r32,17,15,v) |
| |
| #define GET32MIC_PDM_CTRL1_MODE(r32) _BFGET_(r32,18,18) |
| #define SET32MIC_PDM_CTRL1_MODE(r32,v) _BFSET_(r32,18,18,v) |
| #define GET16MIC_PDM_CTRL1_MODE(r16) _BFGET_(r16, 2, 2) |
| #define SET16MIC_PDM_CTRL1_MODE(r16,v) _BFSET_(r16, 2, 2,v) |
| |
| #define GET32MIC_PDM_CTRL1_SDR_CLKSEL(r32) _BFGET_(r32,19,19) |
| #define SET32MIC_PDM_CTRL1_SDR_CLKSEL(r32,v) _BFSET_(r32,19,19,v) |
| #define GET16MIC_PDM_CTRL1_SDR_CLKSEL(r16) _BFGET_(r16, 3, 3) |
| #define SET16MIC_PDM_CTRL1_SDR_CLKSEL(r16,v) _BFSET_(r16, 3, 3,v) |
| |
| #define GET32MIC_PDM_CTRL1_LATCH_MODE(r32) _BFGET_(r32,20,20) |
| #define SET32MIC_PDM_CTRL1_LATCH_MODE(r32,v) _BFSET_(r32,20,20,v) |
| #define GET16MIC_PDM_CTRL1_LATCH_MODE(r16) _BFGET_(r16, 4, 4) |
| #define SET16MIC_PDM_CTRL1_LATCH_MODE(r16,v) _BFSET_(r16, 4, 4,v) |
| |
| #define w32MIC_PDM_CTRL1 {\ |
| UNSG32 uPDM_CTRL1_MCLKSEL : 4;\ |
| UNSG32 uPDM_CTRL1_CLKDIV : 4;\ |
| UNSG32 uPDM_CTRL1_CLKEN : 1;\ |
| UNSG32 uPDM_CTRL1_ENABLE : 1;\ |
| UNSG32 uPDM_CTRL1_MUTE : 1;\ |
| UNSG32 uPDM_CTRL1_LRSWITCH : 1;\ |
| UNSG32 uPDM_CTRL1_INVCLK_OUT : 1;\ |
| UNSG32 uPDM_CTRL1_INVCLK_INT : 1;\ |
| UNSG32 uPDM_CTRL1_RLSB : 1;\ |
| UNSG32 uPDM_CTRL1_RDM : 3;\ |
| UNSG32 uPDM_CTRL1_MODE : 1;\ |
| UNSG32 uPDM_CTRL1_SDR_CLKSEL : 1;\ |
| UNSG32 uPDM_CTRL1_LATCH_MODE : 1;\ |
| UNSG32 RSVDx44_b21 : 11;\ |
| } |
| union { UNSG32 u32MIC_PDM_CTRL1; |
| struct w32MIC_PDM_CTRL1; |
| }; |
| /////////////////////////////////////////////////////////// |
| #define GET32MIC_PDM_CTRL2_RDLT(r32) _BFGET_(r32,15, 0) |
| #define SET32MIC_PDM_CTRL2_RDLT(r32,v) _BFSET_(r32,15, 0,v) |
| #define GET16MIC_PDM_CTRL2_RDLT(r16) _BFGET_(r16,15, 0) |
| #define SET16MIC_PDM_CTRL2_RDLT(r16,v) _BFSET_(r16,15, 0,v) |
| |
| #define GET32MIC_PDM_CTRL2_FDLT(r32) _BFGET_(r32,31,16) |
| #define SET32MIC_PDM_CTRL2_FDLT(r32,v) _BFSET_(r32,31,16,v) |
| #define GET16MIC_PDM_CTRL2_FDLT(r16) _BFGET_(r16,15, 0) |
| #define SET16MIC_PDM_CTRL2_FDLT(r16,v) _BFSET_(r16,15, 0,v) |
| |
| #define w32MIC_PDM_CTRL2 {\ |
| UNSG32 uPDM_CTRL2_RDLT : 16;\ |
| UNSG32 uPDM_CTRL2_FDLT : 16;\ |
| } |
| union { UNSG32 u32MIC_PDM_CTRL2; |
| struct w32MIC_PDM_CTRL2; |
| }; |
| /////////////////////////////////////////////////////////// |
| } SIE_MIC; |
| |
| typedef union T32MIC_RXPORT |
| { UNSG32 u32; |
| struct w32MIC_RXPORT; |
| } T32MIC_RXPORT; |
| typedef union T32MIC_RXDATA |
| { UNSG32 u32; |
| struct w32MIC_RXDATA; |
| } T32MIC_RXDATA; |
| typedef union T32MIC_HBRDMAP |
| { UNSG32 u32; |
| struct w32MIC_HBRDMAP; |
| } T32MIC_HBRDMAP; |
| typedef union T32MIC_PDM_CTRL1 |
| { UNSG32 u32; |
| struct w32MIC_PDM_CTRL1; |
| } T32MIC_PDM_CTRL1; |
| typedef union T32MIC_PDM_CTRL2 |
| { UNSG32 u32; |
| struct w32MIC_PDM_CTRL2; |
| } T32MIC_PDM_CTRL2; |
| /////////////////////////////////////////////////////////// |
| |
| typedef union TMIC_RXPORT |
| { UNSG32 u32[1]; |
| struct { |
| struct w32MIC_RXPORT; |
| }; |
| } TMIC_RXPORT; |
| typedef union TMIC_RXDATA |
| { UNSG32 u32[1]; |
| struct { |
| struct w32MIC_RXDATA; |
| }; |
| } TMIC_RXDATA; |
| typedef union TMIC_HBRDMAP |
| { UNSG32 u32[1]; |
| struct { |
| struct w32MIC_HBRDMAP; |
| }; |
| } TMIC_HBRDMAP; |
| typedef union TMIC_PDM_CTRL1 |
| { UNSG32 u32[1]; |
| struct { |
| struct w32MIC_PDM_CTRL1; |
| }; |
| } TMIC_PDM_CTRL1; |
| typedef union TMIC_PDM_CTRL2 |
| { UNSG32 u32[1]; |
| struct { |
| struct w32MIC_PDM_CTRL2; |
| }; |
| } TMIC_PDM_CTRL2; |
| |
| /////////////////////////////////////////////////////////// |
| SIGN32 MIC_drvrd(SIE_MIC *p, UNSG32 base, SIGN32 mem, SIGN32 tst); |
| SIGN32 MIC_drvwr(SIE_MIC *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd); |
| void MIC_reset(SIE_MIC *p); |
| SIGN32 MIC_cmp (SIE_MIC *p, SIE_MIC *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst); |
| #define MIC_check(p,pie,pfx,hLOG) MIC_cmp(p,pie,pfx,(void*)(hLOG),0,0) |
| #define MIC_print(p, pfx,hLOG) MIC_cmp(p,0, pfx,(void*)(hLOG),0,0) |
| |
| #endif |
| ////// |
| /// ENDOFINTERFACE: MIC |
| //////////////////////////////////////////////////////////// |
| |
| ////// |
| /// |
| /// $INTERFACE IOSEL biu (4,4) |
| /// ### |
| /// * PAD Output Enable selection register |
| /// ### |
| /// # # ---------------------------------------------------------- |
| /// @ 0x00000 PRIMCLK (RW) |
| /// ### |
| /// * Primary Port MCLK output enable register. |
| /// ### |
| /// %unsigned 1 SEL 0x0 |
| /// ### |
| /// * Note: Not used. MCLK source is selected using register defined in 88DE3010 Global Unit. |
| /// * *INTERNAL_ONLY** |
| /// ### |
| /// %% 31 # Stuffing bits... |
| /// @ 0x00004 SECMCLK (RW) |
| /// ### |
| /// * Secondary Port MCLK output enable register. |
| /// ### |
| /// %unsigned 1 SEL 0x0 |
| /// ### |
| /// * Note: Not used. MCLK source is selected using register defined in 88DE3010 Global Unit. |
| /// * *INTERNAL_ONLY** |
| /// ### |
| /// %% 31 # Stuffing bits... |
| /// @ 0x00008 MIC1MCLK (RW) |
| /// ### |
| /// * MIC Port MCLK output enable register. |
| /// ### |
| /// %unsigned 1 SEL 0x0 |
| /// ### |
| /// * Note: Not used. MCLK source is selected using register defined in 88DE3010 Global Unit. |
| /// * *INTERNAL_ONLY** |
| /// ### |
| /// %% 31 # Stuffing bits... |
| /// @ 0x0000C PRIBCLK (RW) |
| /// ### |
| /// * Primary port Bit-clock output enable register. |
| /// ### |
| /// %unsigned 1 SEL 0x1 |
| /// ### |
| /// * Bit clock output enable: |
| /// * 0: Bit clock is from external |
| /// * 1: Bit clock generated internally using Master Clock (MCLK) (default) |
| /// ### |
| /// %% 31 # Stuffing bits... |
| /// @ 0x00010 SECBCLK (RW) |
| /// ### |
| /// * Secondary port Bit-clock output enable register. |
| /// ### |
| /// %unsigned 1 SEL 0x1 |
| /// ### |
| /// * Bit clock output enable: |
| /// * 0: Bit clock is from external |
| /// * 1: Bit clock generated internally using Master Clock (MCLK) (default) |
| /// ### |
| /// %% 31 # Stuffing bits... |
| /// @ 0x00014 MIC1BCLK (RW) |
| /// ### |
| /// * MIC port Bit-clock output enable register. |
| /// ### |
| /// %unsigned 1 SEL 0x0 |
| /// ### |
| /// * Bit clock output enable: |
| /// * 0: Bit clock is from external (default) |
| /// * 1: Bit clock generated internally using MCLK |
| /// * Note: MIC Port is slave only so above bit should be set to 0. |
| /// ### |
| /// %% 31 # Stuffing bits... |
| /// @ 0x00018 MIC2BCLK (RW) |
| /// ### |
| /// * MIC(4-Channel) port Bit-clock output enable register. |
| /// ### |
| /// %unsigned 1 SEL 0x0 |
| /// %% 31 # Stuffing bits... |
| /// @ 0x0001C PRIFS (RW) |
| /// ### |
| /// * Primary port FSYNC output enable register. |
| /// ### |
| /// %unsigned 1 SEL 0x1 |
| /// ### |
| /// * In 88DE3010 Primary port FSYNC is generated internally so this bit should be set to 1. |
| /// ### |
| /// %% 31 # Stuffing bits... |
| /// @ 0x00020 SECFS (RW) |
| /// ### |
| /// * Secondary port FSYNC output enable register. |
| /// ### |
| /// %unsigned 1 SEL 0x1 |
| /// ### |
| /// * In 88DE3010 Secondary port FSYNC is generated internally so this bit should be set to 1. |
| /// ### |
| /// %% 31 # Stuffing bits... |
| /// @ 0x00024 MIC1FS (RW) |
| /// ### |
| /// * MIC port FSYNC output enable register. |
| /// ### |
| /// %unsigned 1 SEL 0x0 |
| /// %% 31 # Stuffing bits... |
| /// @ 0x00028 MIC2FS (RW) |
| /// ### |
| /// * MIC-4 port FSYNC output enable register. |
| /// ### |
| /// %unsigned 1 SEL 0x0 |
| /// ### |
| /// * In 88DE3010 MIC port FSYNC is from external so this bit should be set to 0. |
| /// ### |
| /// %% 31 # Stuffing bits... |
| /// @ 0x0002C PDMCLK (RW) |
| /// ### |
| /// * PDM CLK Output Enable |
| /// * 0: No clock out |
| /// * 1: Clock out |
| /// ### |
| /// %unsigned 1 SEL 0x0 |
| /// %% 31 # Stuffing bits... |
| /// @ 0x00030 PDM (RW) |
| /// %unsigned 1 GENABLE 0x0 |
| /// ### |
| /// * PDM GLOBAL Enable |
| /// ### |
| /// %% 31 # Stuffing bits... |
| /// # # ---------------------------------------------------------- |
| /// $ENDOFINTERFACE # size: 52B, bits: 13b, padding: 0B |
| //////////////////////////////////////////////////////////// |
| #ifndef h_IOSEL |
| #define h_IOSEL (){} |
| |
| #define RA_IOSEL_PRIMCLK 0x0000 |
| |
| #define BA_IOSEL_PRIMCLK_SEL 0x0000 |
| #define B16IOSEL_PRIMCLK_SEL 0x0000 |
| #define LSb32IOSEL_PRIMCLK_SEL 0 |
| #define LSb16IOSEL_PRIMCLK_SEL 0 |
| #define bIOSEL_PRIMCLK_SEL 1 |
| #define MSK32IOSEL_PRIMCLK_SEL 0x00000001 |
| /////////////////////////////////////////////////////////// |
| #define RA_IOSEL_SECMCLK 0x0004 |
| |
| #define BA_IOSEL_SECMCLK_SEL 0x0004 |
| #define B16IOSEL_SECMCLK_SEL 0x0004 |
| #define LSb32IOSEL_SECMCLK_SEL 0 |
| #define LSb16IOSEL_SECMCLK_SEL 0 |
| #define bIOSEL_SECMCLK_SEL 1 |
| #define MSK32IOSEL_SECMCLK_SEL 0x00000001 |
| /////////////////////////////////////////////////////////// |
| #define RA_IOSEL_MIC1MCLK 0x0008 |
| |
| #define BA_IOSEL_MIC1MCLK_SEL 0x0008 |
| #define B16IOSEL_MIC1MCLK_SEL 0x0008 |
| #define LSb32IOSEL_MIC1MCLK_SEL 0 |
| #define LSb16IOSEL_MIC1MCLK_SEL 0 |
| #define bIOSEL_MIC1MCLK_SEL 1 |
| #define MSK32IOSEL_MIC1MCLK_SEL 0x00000001 |
| /////////////////////////////////////////////////////////// |
| #define RA_IOSEL_PRIBCLK 0x000C |
| |
| #define BA_IOSEL_PRIBCLK_SEL 0x000C |
| #define B16IOSEL_PRIBCLK_SEL 0x000C |
| #define LSb32IOSEL_PRIBCLK_SEL 0 |
| #define LSb16IOSEL_PRIBCLK_SEL 0 |
| #define bIOSEL_PRIBCLK_SEL 1 |
| #define MSK32IOSEL_PRIBCLK_SEL 0x00000001 |
| /////////////////////////////////////////////////////////// |
| #define RA_IOSEL_SECBCLK 0x0010 |
| |
| #define BA_IOSEL_SECBCLK_SEL 0x0010 |
| #define B16IOSEL_SECBCLK_SEL 0x0010 |
| #define LSb32IOSEL_SECBCLK_SEL 0 |
| #define LSb16IOSEL_SECBCLK_SEL 0 |
| #define bIOSEL_SECBCLK_SEL 1 |
| #define MSK32IOSEL_SECBCLK_SEL 0x00000001 |
| /////////////////////////////////////////////////////////// |
| #define RA_IOSEL_MIC1BCLK 0x0014 |
| |
| #define BA_IOSEL_MIC1BCLK_SEL 0x0014 |
| #define B16IOSEL_MIC1BCLK_SEL 0x0014 |
| #define LSb32IOSEL_MIC1BCLK_SEL 0 |
| #define LSb16IOSEL_MIC1BCLK_SEL 0 |
| #define bIOSEL_MIC1BCLK_SEL 1 |
| #define MSK32IOSEL_MIC1BCLK_SEL 0x00000001 |
| /////////////////////////////////////////////////////////// |
| #define RA_IOSEL_MIC2BCLK 0x0018 |
| |
| #define BA_IOSEL_MIC2BCLK_SEL 0x0018 |
| #define B16IOSEL_MIC2BCLK_SEL 0x0018 |
| #define LSb32IOSEL_MIC2BCLK_SEL 0 |
| #define LSb16IOSEL_MIC2BCLK_SEL 0 |
| #define bIOSEL_MIC2BCLK_SEL 1 |
| #define MSK32IOSEL_MIC2BCLK_SEL 0x00000001 |
| /////////////////////////////////////////////////////////// |
| #define RA_IOSEL_PRIFS 0x001C |
| |
| #define BA_IOSEL_PRIFS_SEL 0x001C |
| #define B16IOSEL_PRIFS_SEL 0x001C |
| #define LSb32IOSEL_PRIFS_SEL 0 |
| #define LSb16IOSEL_PRIFS_SEL 0 |
| #define bIOSEL_PRIFS_SEL 1 |
| #define MSK32IOSEL_PRIFS_SEL 0x00000001 |
| /////////////////////////////////////////////////////////// |
| #define RA_IOSEL_SECFS 0x0020 |
| |
| #define BA_IOSEL_SECFS_SEL 0x0020 |
| #define B16IOSEL_SECFS_SEL 0x0020 |
| #define LSb32IOSEL_SECFS_SEL 0 |
| #define LSb16IOSEL_SECFS_SEL 0 |
| #define bIOSEL_SECFS_SEL 1 |
| #define MSK32IOSEL_SECFS_SEL 0x00000001 |
| /////////////////////////////////////////////////////////// |
| #define RA_IOSEL_MIC1FS 0x0024 |
| |
| #define BA_IOSEL_MIC1FS_SEL 0x0024 |
| #define B16IOSEL_MIC1FS_SEL 0x0024 |
| #define LSb32IOSEL_MIC1FS_SEL 0 |
| #define LSb16IOSEL_MIC1FS_SEL 0 |
| #define bIOSEL_MIC1FS_SEL 1 |
| #define MSK32IOSEL_MIC1FS_SEL 0x00000001 |
| /////////////////////////////////////////////////////////// |
| #define RA_IOSEL_MIC2FS 0x0028 |
| |
| #define BA_IOSEL_MIC2FS_SEL 0x0028 |
| #define B16IOSEL_MIC2FS_SEL 0x0028 |
| #define LSb32IOSEL_MIC2FS_SEL 0 |
| #define LSb16IOSEL_MIC2FS_SEL 0 |
| #define bIOSEL_MIC2FS_SEL 1 |
| #define MSK32IOSEL_MIC2FS_SEL 0x00000001 |
| /////////////////////////////////////////////////////////// |
| #define RA_IOSEL_PDMCLK 0x002C |
| |
| #define BA_IOSEL_PDMCLK_SEL 0x002C |
| #define B16IOSEL_PDMCLK_SEL 0x002C |
| #define LSb32IOSEL_PDMCLK_SEL 0 |
| #define LSb16IOSEL_PDMCLK_SEL 0 |
| #define bIOSEL_PDMCLK_SEL 1 |
| #define MSK32IOSEL_PDMCLK_SEL 0x00000001 |
| /////////////////////////////////////////////////////////// |
| #define RA_IOSEL_PDM 0x0030 |
| |
| #define BA_IOSEL_PDM_GENABLE 0x0030 |
| #define B16IOSEL_PDM_GENABLE 0x0030 |
| #define LSb32IOSEL_PDM_GENABLE 0 |
| #define LSb16IOSEL_PDM_GENABLE 0 |
| #define bIOSEL_PDM_GENABLE 1 |
| #define MSK32IOSEL_PDM_GENABLE 0x00000001 |
| /////////////////////////////////////////////////////////// |
| |
| typedef struct SIE_IOSEL { |
| /////////////////////////////////////////////////////////// |
| #define GET32IOSEL_PRIMCLK_SEL(r32) _BFGET_(r32, 0, 0) |
| #define SET32IOSEL_PRIMCLK_SEL(r32,v) _BFSET_(r32, 0, 0,v) |
| #define GET16IOSEL_PRIMCLK_SEL(r16) _BFGET_(r16, 0, 0) |
| #define SET16IOSEL_PRIMCLK_SEL(r16,v) _BFSET_(r16, 0, 0,v) |
| |
| #define w32IOSEL_PRIMCLK {\ |
| UNSG32 uPRIMCLK_SEL : 1;\ |
| UNSG32 RSVDx0_b1 : 31;\ |
| } |
| union { UNSG32 u32IOSEL_PRIMCLK; |
| struct w32IOSEL_PRIMCLK; |
| }; |
| /////////////////////////////////////////////////////////// |
| #define GET32IOSEL_SECMCLK_SEL(r32) _BFGET_(r32, 0, 0) |
| #define SET32IOSEL_SECMCLK_SEL(r32,v) _BFSET_(r32, 0, 0,v) |
| #define GET16IOSEL_SECMCLK_SEL(r16) _BFGET_(r16, 0, 0) |
| #define SET16IOSEL_SECMCLK_SEL(r16,v) _BFSET_(r16, 0, 0,v) |
| |
| #define w32IOSEL_SECMCLK {\ |
| UNSG32 uSECMCLK_SEL : 1;\ |
| UNSG32 RSVDx4_b1 : 31;\ |
| } |
| union { UNSG32 u32IOSEL_SECMCLK; |
| struct w32IOSEL_SECMCLK; |
| }; |
| /////////////////////////////////////////////////////////// |
| #define GET32IOSEL_MIC1MCLK_SEL(r32) _BFGET_(r32, 0, 0) |
| #define SET32IOSEL_MIC1MCLK_SEL(r32,v) _BFSET_(r32, 0, 0,v) |
| #define GET16IOSEL_MIC1MCLK_SEL(r16) _BFGET_(r16, 0, 0) |
| #define SET16IOSEL_MIC1MCLK_SEL(r16,v) _BFSET_(r16, 0, 0,v) |
| |
| #define w32IOSEL_MIC1MCLK {\ |
| UNSG32 uMIC1MCLK_SEL : 1;\ |
| UNSG32 RSVDx8_b1 : 31;\ |
| } |
| union { UNSG32 u32IOSEL_MIC1MCLK; |
| struct w32IOSEL_MIC1MCLK; |
| }; |
| /////////////////////////////////////////////////////////// |
| #define GET32IOSEL_PRIBCLK_SEL(r32) _BFGET_(r32, 0, 0) |
| #define SET32IOSEL_PRIBCLK_SEL(r32,v) _BFSET_(r32, 0, 0,v) |
| #define GET16IOSEL_PRIBCLK_SEL(r16) _BFGET_(r16, 0, 0) |
| #define SET16IOSEL_PRIBCLK_SEL(r16,v) _BFSET_(r16, 0, 0,v) |
| |
| #define w32IOSEL_PRIBCLK {\ |
| UNSG32 uPRIBCLK_SEL : 1;\ |
| UNSG32 RSVDxC_b1 : 31;\ |
| } |
| union { UNSG32 u32IOSEL_PRIBCLK; |
| struct w32IOSEL_PRIBCLK; |
| }; |
| /////////////////////////////////////////////////////////// |
| #define GET32IOSEL_SECBCLK_SEL(r32) _BFGET_(r32, 0, 0) |
| #define SET32IOSEL_SECBCLK_SEL(r32,v) _BFSET_(r32, 0, 0,v) |
| #define GET16IOSEL_SECBCLK_SEL(r16) _BFGET_(r16, 0, 0) |
| #define SET16IOSEL_SECBCLK_SEL(r16,v) _BFSET_(r16, 0, 0,v) |
| |
| #define w32IOSEL_SECBCLK {\ |
| UNSG32 uSECBCLK_SEL : 1;\ |
| UNSG32 RSVDx10_b1 : 31;\ |
| } |
| union { UNSG32 u32IOSEL_SECBCLK; |
| struct w32IOSEL_SECBCLK; |
| }; |
| /////////////////////////////////////////////////////////// |
| #define GET32IOSEL_MIC1BCLK_SEL(r32) _BFGET_(r32, 0, 0) |
| #define SET32IOSEL_MIC1BCLK_SEL(r32,v) _BFSET_(r32, 0, 0,v) |
| #define GET16IOSEL_MIC1BCLK_SEL(r16) _BFGET_(r16, 0, 0) |
| #define SET16IOSEL_MIC1BCLK_SEL(r16,v) _BFSET_(r16, 0, 0,v) |
| |
| #define w32IOSEL_MIC1BCLK {\ |
| UNSG32 uMIC1BCLK_SEL : 1;\ |
| UNSG32 RSVDx14_b1 : 31;\ |
| } |
| union { UNSG32 u32IOSEL_MIC1BCLK; |
| struct w32IOSEL_MIC1BCLK; |
| }; |
| /////////////////////////////////////////////////////////// |
| #define GET32IOSEL_MIC2BCLK_SEL(r32) _BFGET_(r32, 0, 0) |
| #define SET32IOSEL_MIC2BCLK_SEL(r32,v) _BFSET_(r32, 0, 0,v) |
| #define GET16IOSEL_MIC2BCLK_SEL(r16) _BFGET_(r16, 0, 0) |
| #define SET16IOSEL_MIC2BCLK_SEL(r16,v) _BFSET_(r16, 0, 0,v) |
| |
| #define w32IOSEL_MIC2BCLK {\ |
| UNSG32 uMIC2BCLK_SEL : 1;\ |
| UNSG32 RSVDx18_b1 : 31;\ |
| } |
| union { UNSG32 u32IOSEL_MIC2BCLK; |
| struct w32IOSEL_MIC2BCLK; |
| }; |
| /////////////////////////////////////////////////////////// |
| #define GET32IOSEL_PRIFS_SEL(r32) _BFGET_(r32, 0, 0) |
| #define SET32IOSEL_PRIFS_SEL(r32,v) _BFSET_(r32, 0, 0,v) |
| #define GET16IOSEL_PRIFS_SEL(r16) _BFGET_(r16, 0, 0) |
| #define SET16IOSEL_PRIFS_SEL(r16,v) _BFSET_(r16, 0, 0,v) |
| |
| #define w32IOSEL_PRIFS {\ |
| UNSG32 uPRIFS_SEL : 1;\ |
| UNSG32 RSVDx1C_b1 : 31;\ |
| } |
| union { UNSG32 u32IOSEL_PRIFS; |
| struct w32IOSEL_PRIFS; |
| }; |
| /////////////////////////////////////////////////////////// |
| #define GET32IOSEL_SECFS_SEL(r32) _BFGET_(r32, 0, 0) |
| #define SET32IOSEL_SECFS_SEL(r32,v) _BFSET_(r32, 0, 0,v) |
| #define GET16IOSEL_SECFS_SEL(r16) _BFGET_(r16, 0, 0) |
| #define SET16IOSEL_SECFS_SEL(r16,v) _BFSET_(r16, 0, 0,v) |
| |
| #define w32IOSEL_SECFS {\ |
| UNSG32 uSECFS_SEL : 1;\ |
| UNSG32 RSVDx20_b1 : 31;\ |
| } |
| union { UNSG32 u32IOSEL_SECFS; |
| struct w32IOSEL_SECFS; |
| }; |
| /////////////////////////////////////////////////////////// |
| #define GET32IOSEL_MIC1FS_SEL(r32) _BFGET_(r32, 0, 0) |
| #define SET32IOSEL_MIC1FS_SEL(r32,v) _BFSET_(r32, 0, 0,v) |
| #define GET16IOSEL_MIC1FS_SEL(r16) _BFGET_(r16, 0, 0) |
| #define SET16IOSEL_MIC1FS_SEL(r16,v) _BFSET_(r16, 0, 0,v) |
| |
| #define w32IOSEL_MIC1FS {\ |
| UNSG32 uMIC1FS_SEL : 1;\ |
| UNSG32 RSVDx24_b1 : 31;\ |
| } |
| union { UNSG32 u32IOSEL_MIC1FS; |
| struct w32IOSEL_MIC1FS; |
| }; |
| /////////////////////////////////////////////////////////// |
| #define GET32IOSEL_MIC2FS_SEL(r32) _BFGET_(r32, 0, 0) |
| #define SET32IOSEL_MIC2FS_SEL(r32,v) _BFSET_(r32, 0, 0,v) |
| #define GET16IOSEL_MIC2FS_SEL(r16) _BFGET_(r16, 0, 0) |
| #define SET16IOSEL_MIC2FS_SEL(r16,v) _BFSET_(r16, 0, 0,v) |
| |
| #define w32IOSEL_MIC2FS {\ |
| UNSG32 uMIC2FS_SEL : 1;\ |
| UNSG32 RSVDx28_b1 : 31;\ |
| } |
| union { UNSG32 u32IOSEL_MIC2FS; |
| struct w32IOSEL_MIC2FS; |
| }; |
| /////////////////////////////////////////////////////////// |
| #define GET32IOSEL_PDMCLK_SEL(r32) _BFGET_(r32, 0, 0) |
| #define SET32IOSEL_PDMCLK_SEL(r32,v) _BFSET_(r32, 0, 0,v) |
| #define GET16IOSEL_PDMCLK_SEL(r16) _BFGET_(r16, 0, 0) |
| #define SET16IOSEL_PDMCLK_SEL(r16,v) _BFSET_(r16, 0, 0,v) |
| |
| #define w32IOSEL_PDMCLK {\ |
| UNSG32 uPDMCLK_SEL : 1;\ |
| UNSG32 RSVDx2C_b1 : 31;\ |
| } |
| union { UNSG32 u32IOSEL_PDMCLK; |
| struct w32IOSEL_PDMCLK; |
| }; |
| /////////////////////////////////////////////////////////// |
| #define GET32IOSEL_PDM_GENABLE(r32) _BFGET_(r32, 0, 0) |
| #define SET32IOSEL_PDM_GENABLE(r32,v) _BFSET_(r32, 0, 0,v) |
| #define GET16IOSEL_PDM_GENABLE(r16) _BFGET_(r16, 0, 0) |
| #define SET16IOSEL_PDM_GENABLE(r16,v) _BFSET_(r16, 0, 0,v) |
| |
| #define w32IOSEL_PDM {\ |
| UNSG32 uPDM_GENABLE : 1;\ |
| UNSG32 RSVDx30_b1 : 31;\ |
| } |
| union { UNSG32 u32IOSEL_PDM; |
| struct w32IOSEL_PDM; |
| }; |
| /////////////////////////////////////////////////////////// |
| } SIE_IOSEL; |
| |
| typedef union T32IOSEL_PRIMCLK |
| { UNSG32 u32; |
| struct w32IOSEL_PRIMCLK; |
| } T32IOSEL_PRIMCLK; |
| typedef union T32IOSEL_SECMCLK |
| { UNSG32 u32; |
| struct w32IOSEL_SECMCLK; |
| } T32IOSEL_SECMCLK; |
| typedef union T32IOSEL_MIC1MCLK |
| { UNSG32 u32; |
| struct w32IOSEL_MIC1MCLK; |
| } T32IOSEL_MIC1MCLK; |
| typedef union T32IOSEL_PRIBCLK |
| { UNSG32 u32; |
| struct w32IOSEL_PRIBCLK; |
| } T32IOSEL_PRIBCLK; |
| typedef union T32IOSEL_SECBCLK |
| { UNSG32 u32; |
| struct w32IOSEL_SECBCLK; |
| } T32IOSEL_SECBCLK; |
| typedef union T32IOSEL_MIC1BCLK |
| { UNSG32 u32; |
| struct w32IOSEL_MIC1BCLK; |
| } T32IOSEL_MIC1BCLK; |
| typedef union T32IOSEL_MIC2BCLK |
| { UNSG32 u32; |
| struct w32IOSEL_MIC2BCLK; |
| } T32IOSEL_MIC2BCLK; |
| typedef union T32IOSEL_PRIFS |
| { UNSG32 u32; |
| struct w32IOSEL_PRIFS; |
| } T32IOSEL_PRIFS; |
| typedef union T32IOSEL_SECFS |
| { UNSG32 u32; |
| struct w32IOSEL_SECFS; |
| } T32IOSEL_SECFS; |
| typedef union T32IOSEL_MIC1FS |
| { UNSG32 u32; |
| struct w32IOSEL_MIC1FS; |
| } T32IOSEL_MIC1FS; |
| typedef union T32IOSEL_MIC2FS |
| { UNSG32 u32; |
| struct w32IOSEL_MIC2FS; |
| } T32IOSEL_MIC2FS; |
| typedef union T32IOSEL_PDMCLK |
| { UNSG32 u32; |
| struct w32IOSEL_PDMCLK; |
| } T32IOSEL_PDMCLK; |
| typedef union T32IOSEL_PDM |
| { UNSG32 u32; |
| struct w32IOSEL_PDM; |
| } T32IOSEL_PDM; |
| /////////////////////////////////////////////////////////// |
| |
| typedef union TIOSEL_PRIMCLK |
| { UNSG32 u32[1]; |
| struct { |
| struct w32IOSEL_PRIMCLK; |
| }; |
| } TIOSEL_PRIMCLK; |
| typedef union TIOSEL_SECMCLK |
| { UNSG32 u32[1]; |
| struct { |
| struct w32IOSEL_SECMCLK; |
| }; |
| } TIOSEL_SECMCLK; |
| typedef union TIOSEL_MIC1MCLK |
| { UNSG32 u32[1]; |
| struct { |
| struct w32IOSEL_MIC1MCLK; |
| }; |
| } TIOSEL_MIC1MCLK; |
| typedef union TIOSEL_PRIBCLK |
| { UNSG32 u32[1]; |
| struct { |
| struct w32IOSEL_PRIBCLK; |
| }; |
| } TIOSEL_PRIBCLK; |
| typedef union TIOSEL_SECBCLK |
| { UNSG32 u32[1]; |
| struct { |
| struct w32IOSEL_SECBCLK; |
| }; |
| } TIOSEL_SECBCLK; |
| typedef union TIOSEL_MIC1BCLK |
| { UNSG32 u32[1]; |
| struct { |
| struct w32IOSEL_MIC1BCLK; |
| }; |
| } TIOSEL_MIC1BCLK; |
| typedef union TIOSEL_MIC2BCLK |
| { UNSG32 u32[1]; |
| struct { |
| struct w32IOSEL_MIC2BCLK; |
| }; |
| } TIOSEL_MIC2BCLK; |
| typedef union TIOSEL_PRIFS |
| { UNSG32 u32[1]; |
| struct { |
| struct w32IOSEL_PRIFS; |
| }; |
| } TIOSEL_PRIFS; |
| typedef union TIOSEL_SECFS |
| { UNSG32 u32[1]; |
| struct { |
| struct w32IOSEL_SECFS; |
| }; |
| } TIOSEL_SECFS; |
| typedef union TIOSEL_MIC1FS |
| { UNSG32 u32[1]; |
| struct { |
| struct w32IOSEL_MIC1FS; |
| }; |
| } TIOSEL_MIC1FS; |
| typedef union TIOSEL_MIC2FS |
| { UNSG32 u32[1]; |
| struct { |
| struct w32IOSEL_MIC2FS; |
| }; |
| } TIOSEL_MIC2FS; |
| typedef union TIOSEL_PDMCLK |
| { UNSG32 u32[1]; |
| struct { |
| struct w32IOSEL_PDMCLK; |
| }; |
| } TIOSEL_PDMCLK; |
| typedef union TIOSEL_PDM |
| { UNSG32 u32[1]; |
| struct { |
| struct w32IOSEL_PDM; |
| }; |
| } TIOSEL_PDM; |
| |
| /////////////////////////////////////////////////////////// |
| SIGN32 IOSEL_drvrd(SIE_IOSEL *p, UNSG32 base, SIGN32 mem, SIGN32 tst); |
| SIGN32 IOSEL_drvwr(SIE_IOSEL *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd); |
| void IOSEL_reset(SIE_IOSEL *p); |
| SIGN32 IOSEL_cmp (SIE_IOSEL *p, SIE_IOSEL *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst); |
| #define IOSEL_check(p,pie,pfx,hLOG) IOSEL_cmp(p,pie,pfx,(void*)(hLOG),0,0) |
| #define IOSEL_print(p, pfx,hLOG) IOSEL_cmp(p,0, pfx,(void*)(hLOG),0,0) |
| |
| #endif |
| ////// |
| /// ENDOFINTERFACE: IOSEL |
| //////////////////////////////////////////////////////////// |
| |
| ////// |
| /// |
| /// $INTERFACE AIO biu (4,4) |
| /// ### |
| /// * Audio Input Output Unit Registers |
| /// ### |
| /// # # ---------------------------------------------------------- |
| /// @ 0x00000 (P) |
| /// # 0x00000 P71 |
| /// $P71 P71 REG |
| /// ### |
| /// * Primary Port Registers |
| /// ### |
| /// @ 0x0003C (P) |
| /// # 0x0003C SEC |
| /// $SEC SEC REG |
| /// ### |
| /// * Secondary Port Registers |
| /// ### |
| /// @ 0x00050 (P) |
| /// # 0x00050 HDMI |
| /// $HDMI HDMI REG |
| /// ### |
| /// * HDMI port Registers |
| /// ### |
| /// @ 0x00068 (P) |
| /// # 0x00068 SPDIF |
| /// $SPDIF SPDIF REG |
| /// ### |
| /// * S/PDIF Port Registers |
| /// ### |
| /// @ 0x00078 (P) |
| /// # 0x00078 MIC1 |
| /// $MIC MIC1 REG |
| /// @ 0x000C4 (P) |
| /// # 0x000C4 MIC2 |
| /// $MIC MIC2 REG |
| /// ### |
| /// * Audio input Registers |
| /// ### |
| /// @ 0x00110 (P) |
| /// # 0x00110 IOSEL |
| /// $IOSEL IOSEL REG |
| /// ### |
| /// * Pad output enable control register |
| /// ### |
| /// @ 0x00144 IRQENABLE (RW) |
| /// ### |
| /// * Interrupt Enable register |
| /// ### |
| /// %unsigned 1 PRIIRQ 0x0 |
| /// ### |
| /// * Primary Port Interrupt enable: |
| /// * 0: Not enabled |
| /// * 1: Enabled |
| /// ### |
| /// %unsigned 1 SECIRQ 0x0 |
| /// ### |
| /// * Secondary Port Interrupt enable: |
| /// * 0: Not enabled |
| /// * 1: Enabled |
| /// ### |
| /// %unsigned 1 MIC1IRQ 0x0 |
| /// %unsigned 1 MIC2IRQ 0x0 |
| /// ### |
| /// * MIC Port Interrupt enable: |
| /// * 0: Not enabled |
| /// * 1: Enabled |
| /// ### |
| /// %unsigned 1 SPDIFIRQ 0x0 |
| /// ### |
| /// * S/PDIF Port Interrupt enable: |
| /// * 0: Not enabled |
| /// * 1: Enabled |
| /// ### |
| /// %unsigned 1 HDMIIRQ 0x0 |
| /// ### |
| /// * HD port Interrupt enable: |
| /// * 0: Not enabled |
| /// * 1: Enabled |
| /// ### |
| /// %unsigned 1 PDMIRQ 0x0 |
| /// ### |
| /// * PDM port Interrupt enable: |
| /// * 0: Not enabled |
| /// * 1: Enabled |
| /// ### |
| /// %% 25 # Stuffing bits... |
| /// @ 0x00148 IRQSTS (WOC-) |
| /// ### |
| /// * Interrupt status register, write 1 to clear. |
| /// * Interrupt is generated when corresponding data FIFO underflow. For MIC when FIFO overflow. |
| /// ### |
| /// %unsigned 1 PRISTS 0x0 |
| /// ### |
| /// * Primary port interrupt status: |
| /// * 0: No interrupt (default) |
| /// * 1: Interrupt Pending |
| /// ### |
| /// %unsigned 1 SECSTS 0x0 |
| /// ### |
| /// * Secondary port interrupt status: |
| /// * 0: No interrupt (default) |
| /// * 1: Interrupt Pending |
| /// ### |
| /// %unsigned 1 MIC1STS 0x0 |
| /// %unsigned 1 MIC2STS 0x0 |
| /// ### |
| /// * MIC port interrupt status: |
| /// * 0: No interrupt (default) |
| /// * 1: Interrupt Pending |
| /// ### |
| /// %unsigned 1 SPDIFSTS 0x0 |
| /// ### |
| /// * S/PDIF port interrupt status: |
| /// * 0: No interrupt (default) |
| /// * 1: Interrupt Pending |
| /// ### |
| /// %unsigned 1 HDMISTS 0x0 |
| /// ### |
| /// * HD port interrupt status: |
| /// * 0: No interrupt (default) |
| /// * 1: Interrupt Pending |
| /// ### |
| /// %unsigned 1 PDMSTS 0x0 |
| /// ### |
| /// * PDM port interrupt status: |
| /// * 0: No interrupt (default) |
| /// * 1: Interrupt Pending |
| /// ### |
| /// %% 25 # Stuffing bits... |
| /// @ 0x0014C HDSRC (RW) |
| /// ### |
| /// * HBR Audio source selection register |
| /// ### |
| /// %unsigned 2 SEL 0x0 |
| /// ### |
| /// * Register to indicate number of samples per 64-bit data from DDR. |
| /// * 00 : HD data (2 samples {2pair of Left & Right} per 64-bit data from DDR) transmitted in 2 LRCK (over 2 channel) |
| /// * 01: L-PCM data (1 Sample {one pair of Left &Right} per 64-bit data from DDR) transmitted in 1 LRCK (over 2 channel) |
| /// * 10: HD data (4 samples {4pair of Left & Right } per 128-bit data from DDR) transmitter in 1 LRCK (over 8 channels) |
| /// ### |
| /// %% 30 # Stuffing bits... |
| /// @ 0x00150 ADAC_CLK_CTRL (RW) |
| /// %unsigned 3 mclkDiv 0x2 |
| /// : DIV1 0x0 |
| /// : DIV2 0x1 |
| /// : DIV4 0x2 |
| /// : DIV8 0x3 |
| /// : DIV16 0x4 |
| /// : DIV32 0x5 |
| /// : DIV64 0x6 |
| /// : DIV128 0x7 |
| /// ### |
| /// * ADAC MClk divider setting defines the divide ratio between secondary audio MCLK and ADAC MCLK. |
| /// ### |
| /// %unsigned 3 pwmclkDiv 0x2 |
| /// : DIV1 0x0 |
| /// : DIV2 0x1 |
| /// : DIV4 0x2 |
| /// : DIV8 0x3 |
| /// : DIV16 0x4 |
| /// : DIV32 0x5 |
| /// : DIV64 0x6 |
| /// : DIV128 0x7 |
| /// ### |
| /// * ADAC PWMClk divider setting defines the divide ratio between secondary audio MCLK and ADAC PWMCLK. |
| /// ### |
| /// %unsigned 1 mclkInv 0x0 |
| /// : NORMAL 0x0 |
| /// : INVERTED 0x1 |
| /// ### |
| /// * Invert the ADAC MCLK polarity. By default, rising edge is aligned with data, if it is 1, falling edge is aligned with data. |
| /// ### |
| /// %unsigned 1 pwmclkInv 0x0 |
| /// : NORMAL 0x0 |
| /// : INVERTED 0x1 |
| /// ### |
| /// * Invert the ADAC PWMCLK polarity. By default, rising edge is aligned with data, if it is 1, falling edge is aligned with data. |
| /// ### |
| /// %unsigned 1 inputSel 0x0 |
| /// ### |
| /// * ADAC Input Select Bit |
| /// * 0: Select Secondary outputs |
| /// * 1: Select Primary outputs |
| /// ### |
| /// %unsigned 2 PWMCLK_SRC_SEL 0x0 |
| /// ### |
| /// * ADAC PWMCLK source select bit |
| /// * This bit selects the ADAC PWM Clock source it can be either Primary MCLK or Secondary MCLK based on these bits. |
| /// * Bit [1]: Valid Bit |
| /// * 1 : Bit[0] decides the PWM Clock Source |
| /// * 0 : Bit[0] does not decide the clock source instead “inputSel” bit just above these bits decides the PWM Clock Source (default) |
| /// * Bit [0]: PWM Clock Source |
| /// * 0 : MCLK Secondary (default) |
| /// * 1 : MCLK Primary |
| /// ### |
| /// %unsigned 1 PRIMCLK_OUT_SRC_SEL 0x0 |
| /// ### |
| /// * This bits selects the source of the MCLK out on the DV0_FID pin |
| /// * 0: Primary MCLK (Default) |
| /// * 1: Secondary MCLK |
| /// ### |
| /// %% 20 # Stuffing bits... |
| /// # # ---------------------------------------------------------- |
| /// $ENDOFINTERFACE # size: 340B, bits: 1277b, padding: 0B |
| //////////////////////////////////////////////////////////// |
| #ifndef h_AIO |
| #define h_AIO (){} |
| |
| #define RA_AIO_P71 0x0000 |
| /////////////////////////////////////////////////////////// |
| #define RA_AIO_SEC 0x003C |
| /////////////////////////////////////////////////////////// |
| #define RA_AIO_HDMI 0x0050 |
| /////////////////////////////////////////////////////////// |
| #define RA_AIO_SPDIF 0x0068 |
| /////////////////////////////////////////////////////////// |
| #define RA_AIO_MIC1 0x0078 |
| /////////////////////////////////////////////////////////// |
| #define RA_AIO_MIC2 0x00C4 |
| /////////////////////////////////////////////////////////// |
| #define RA_AIO_IOSEL 0x0110 |
| /////////////////////////////////////////////////////////// |
| #define RA_AIO_IRQENABLE 0x0144 |
| |
| #define BA_AIO_IRQENABLE_PRIIRQ 0x0144 |
| #define B16AIO_IRQENABLE_PRIIRQ 0x0144 |
| #define LSb32AIO_IRQENABLE_PRIIRQ 0 |
| #define LSb16AIO_IRQENABLE_PRIIRQ 0 |
| #define bAIO_IRQENABLE_PRIIRQ 1 |
| #define MSK32AIO_IRQENABLE_PRIIRQ 0x00000001 |
| |
| #define BA_AIO_IRQENABLE_SECIRQ 0x0144 |
| #define B16AIO_IRQENABLE_SECIRQ 0x0144 |
| #define LSb32AIO_IRQENABLE_SECIRQ 1 |
| #define LSb16AIO_IRQENABLE_SECIRQ 1 |
| #define bAIO_IRQENABLE_SECIRQ 1 |
| #define MSK32AIO_IRQENABLE_SECIRQ 0x00000002 |
| |
| #define BA_AIO_IRQENABLE_MIC1IRQ 0x0144 |
| #define B16AIO_IRQENABLE_MIC1IRQ 0x0144 |
| #define LSb32AIO_IRQENABLE_MIC1IRQ 2 |
| #define LSb16AIO_IRQENABLE_MIC1IRQ 2 |
| #define bAIO_IRQENABLE_MIC1IRQ 1 |
| #define MSK32AIO_IRQENABLE_MIC1IRQ 0x00000004 |
| |
| #define BA_AIO_IRQENABLE_MIC2IRQ 0x0144 |
| #define B16AIO_IRQENABLE_MIC2IRQ 0x0144 |
| #define LSb32AIO_IRQENABLE_MIC2IRQ 3 |
| #define LSb16AIO_IRQENABLE_MIC2IRQ 3 |
| #define bAIO_IRQENABLE_MIC2IRQ 1 |
| #define MSK32AIO_IRQENABLE_MIC2IRQ 0x00000008 |
| |
| #define BA_AIO_IRQENABLE_SPDIFIRQ 0x0144 |
| #define B16AIO_IRQENABLE_SPDIFIRQ 0x0144 |
| #define LSb32AIO_IRQENABLE_SPDIFIRQ 4 |
| #define LSb16AIO_IRQENABLE_SPDIFIRQ 4 |
| #define bAIO_IRQENABLE_SPDIFIRQ 1 |
| #define MSK32AIO_IRQENABLE_SPDIFIRQ 0x00000010 |
| |
| #define BA_AIO_IRQENABLE_HDMIIRQ 0x0144 |
| #define B16AIO_IRQENABLE_HDMIIRQ 0x0144 |
| #define LSb32AIO_IRQENABLE_HDMIIRQ 5 |
| #define LSb16AIO_IRQENABLE_HDMIIRQ 5 |
| #define bAIO_IRQENABLE_HDMIIRQ 1 |
| #define MSK32AIO_IRQENABLE_HDMIIRQ 0x00000020 |
| |
| #define BA_AIO_IRQENABLE_PDMIRQ 0x0144 |
| #define B16AIO_IRQENABLE_PDMIRQ 0x0144 |
| #define LSb32AIO_IRQENABLE_PDMIRQ 6 |
| #define LSb16AIO_IRQENABLE_PDMIRQ 6 |
| #define bAIO_IRQENABLE_PDMIRQ 1 |
| #define MSK32AIO_IRQENABLE_PDMIRQ 0x00000040 |
| /////////////////////////////////////////////////////////// |
| #define RA_AIO_IRQSTS 0x0148 |
| |
| #define BA_AIO_IRQSTS_PRISTS 0x0148 |
| #define B16AIO_IRQSTS_PRISTS 0x0148 |
| #define LSb32AIO_IRQSTS_PRISTS 0 |
| #define LSb16AIO_IRQSTS_PRISTS 0 |
| #define bAIO_IRQSTS_PRISTS 1 |
| #define MSK32AIO_IRQSTS_PRISTS 0x00000001 |
| |
| #define BA_AIO_IRQSTS_SECSTS 0x0148 |
| #define B16AIO_IRQSTS_SECSTS 0x0148 |
| #define LSb32AIO_IRQSTS_SECSTS 1 |
| #define LSb16AIO_IRQSTS_SECSTS 1 |
| #define bAIO_IRQSTS_SECSTS 1 |
| #define MSK32AIO_IRQSTS_SECSTS 0x00000002 |
| |
| #define BA_AIO_IRQSTS_MIC1STS 0x0148 |
| #define B16AIO_IRQSTS_MIC1STS 0x0148 |
| #define LSb32AIO_IRQSTS_MIC1STS 2 |
| #define LSb16AIO_IRQSTS_MIC1STS 2 |
| #define bAIO_IRQSTS_MIC1STS 1 |
| #define MSK32AIO_IRQSTS_MIC1STS 0x00000004 |
| |
| #define BA_AIO_IRQSTS_MIC2STS 0x0148 |
| #define B16AIO_IRQSTS_MIC2STS 0x0148 |
| #define LSb32AIO_IRQSTS_MIC2STS 3 |
| #define LSb16AIO_IRQSTS_MIC2STS 3 |
| #define bAIO_IRQSTS_MIC2STS 1 |
| #define MSK32AIO_IRQSTS_MIC2STS 0x00000008 |
| |
| #define BA_AIO_IRQSTS_SPDIFSTS 0x0148 |
| #define B16AIO_IRQSTS_SPDIFSTS 0x0148 |
| #define LSb32AIO_IRQSTS_SPDIFSTS 4 |
| #define LSb16AIO_IRQSTS_SPDIFSTS 4 |
| #define bAIO_IRQSTS_SPDIFSTS 1 |
| #define MSK32AIO_IRQSTS_SPDIFSTS 0x00000010 |
| |
| #define BA_AIO_IRQSTS_HDMISTS 0x0148 |
| #define B16AIO_IRQSTS_HDMISTS 0x0148 |
| #define LSb32AIO_IRQSTS_HDMISTS 5 |
| #define LSb16AIO_IRQSTS_HDMISTS 5 |
| #define bAIO_IRQSTS_HDMISTS 1 |
| #define MSK32AIO_IRQSTS_HDMISTS 0x00000020 |
| |
| #define BA_AIO_IRQSTS_PDMSTS 0x0148 |
| #define B16AIO_IRQSTS_PDMSTS 0x0148 |
| #define LSb32AIO_IRQSTS_PDMSTS 6 |
| #define LSb16AIO_IRQSTS_PDMSTS 6 |
| #define bAIO_IRQSTS_PDMSTS 1 |
| #define MSK32AIO_IRQSTS_PDMSTS 0x00000040 |
| /////////////////////////////////////////////////////////// |
| #define RA_AIO_HDSRC 0x014C |
| |
| #define BA_AIO_HDSRC_SEL 0x014C |
| #define B16AIO_HDSRC_SEL 0x014C |
| #define LSb32AIO_HDSRC_SEL 0 |
| #define LSb16AIO_HDSRC_SEL 0 |
| #define bAIO_HDSRC_SEL 2 |
| #define MSK32AIO_HDSRC_SEL 0x00000003 |
| /////////////////////////////////////////////////////////// |
| #define RA_AIO_ADAC_CLK_CTRL 0x0150 |
| |
| #define BA_AIO_ADAC_CLK_CTRL_mclkDiv 0x0150 |
| #define B16AIO_ADAC_CLK_CTRL_mclkDiv 0x0150 |
| #define LSb32AIO_ADAC_CLK_CTRL_mclkDiv 0 |
| #define LSb16AIO_ADAC_CLK_CTRL_mclkDiv 0 |
| #define bAIO_ADAC_CLK_CTRL_mclkDiv 3 |
| #define MSK32AIO_ADAC_CLK_CTRL_mclkDiv 0x00000007 |
| #define AIO_ADAC_CLK_CTRL_mclkDiv_DIV1 0x0 |
| #define AIO_ADAC_CLK_CTRL_mclkDiv_DIV2 0x1 |
| #define AIO_ADAC_CLK_CTRL_mclkDiv_DIV4 0x2 |
| #define AIO_ADAC_CLK_CTRL_mclkDiv_DIV8 0x3 |
| #define AIO_ADAC_CLK_CTRL_mclkDiv_DIV16 0x4 |
| #define AIO_ADAC_CLK_CTRL_mclkDiv_DIV32 0x5 |
| #define AIO_ADAC_CLK_CTRL_mclkDiv_DIV64 0x6 |
| #define AIO_ADAC_CLK_CTRL_mclkDiv_DIV128 0x7 |
| |
| #define BA_AIO_ADAC_CLK_CTRL_pwmclkDiv 0x0150 |
| #define B16AIO_ADAC_CLK_CTRL_pwmclkDiv 0x0150 |
| #define LSb32AIO_ADAC_CLK_CTRL_pwmclkDiv 3 |
| #define LSb16AIO_ADAC_CLK_CTRL_pwmclkDiv 3 |
| #define bAIO_ADAC_CLK_CTRL_pwmclkDiv 3 |
| #define MSK32AIO_ADAC_CLK_CTRL_pwmclkDiv 0x00000038 |
| #define AIO_ADAC_CLK_CTRL_pwmclkDiv_DIV1 0x0 |
| #define AIO_ADAC_CLK_CTRL_pwmclkDiv_DIV2 0x1 |
| #define AIO_ADAC_CLK_CTRL_pwmclkDiv_DIV4 0x2 |
| #define AIO_ADAC_CLK_CTRL_pwmclkDiv_DIV8 0x3 |
| #define AIO_ADAC_CLK_CTRL_pwmclkDiv_DIV16 0x4 |
| #define AIO_ADAC_CLK_CTRL_pwmclkDiv_DIV32 0x5 |
| #define AIO_ADAC_CLK_CTRL_pwmclkDiv_DIV64 0x6 |
| #define AIO_ADAC_CLK_CTRL_pwmclkDiv_DIV128 0x7 |
| |
| #define BA_AIO_ADAC_CLK_CTRL_mclkInv 0x0150 |
| #define B16AIO_ADAC_CLK_CTRL_mclkInv 0x0150 |
| #define LSb32AIO_ADAC_CLK_CTRL_mclkInv 6 |
| #define LSb16AIO_ADAC_CLK_CTRL_mclkInv 6 |
| #define bAIO_ADAC_CLK_CTRL_mclkInv 1 |
| #define MSK32AIO_ADAC_CLK_CTRL_mclkInv 0x00000040 |
| #define AIO_ADAC_CLK_CTRL_mclkInv_NORMAL 0x0 |
| #define AIO_ADAC_CLK_CTRL_mclkInv_INVERTED 0x1 |
| |
| #define BA_AIO_ADAC_CLK_CTRL_pwmclkInv 0x0150 |
| #define B16AIO_ADAC_CLK_CTRL_pwmclkInv 0x0150 |
| #define LSb32AIO_ADAC_CLK_CTRL_pwmclkInv 7 |
| #define LSb16AIO_ADAC_CLK_CTRL_pwmclkInv 7 |
| #define bAIO_ADAC_CLK_CTRL_pwmclkInv 1 |
| #define MSK32AIO_ADAC_CLK_CTRL_pwmclkInv 0x00000080 |
| #define AIO_ADAC_CLK_CTRL_pwmclkInv_NORMAL 0x0 |
| #define AIO_ADAC_CLK_CTRL_pwmclkInv_INVERTED 0x1 |
| |
| #define BA_AIO_ADAC_CLK_CTRL_inputSel 0x0151 |
| #define B16AIO_ADAC_CLK_CTRL_inputSel 0x0150 |
| #define LSb32AIO_ADAC_CLK_CTRL_inputSel 8 |
| #define LSb16AIO_ADAC_CLK_CTRL_inputSel 8 |
| #define bAIO_ADAC_CLK_CTRL_inputSel 1 |
| #define MSK32AIO_ADAC_CLK_CTRL_inputSel 0x00000100 |
| |
| #define BA_AIO_ADAC_CLK_CTRL_PWMCLK_SRC_SEL 0x0151 |
| #define B16AIO_ADAC_CLK_CTRL_PWMCLK_SRC_SEL 0x0150 |
| #define LSb32AIO_ADAC_CLK_CTRL_PWMCLK_SRC_SEL 9 |
| #define LSb16AIO_ADAC_CLK_CTRL_PWMCLK_SRC_SEL 9 |
| #define bAIO_ADAC_CLK_CTRL_PWMCLK_SRC_SEL 2 |
| #define MSK32AIO_ADAC_CLK_CTRL_PWMCLK_SRC_SEL 0x00000600 |
| |
| #define BA_AIO_ADAC_CLK_CTRL_PRIMCLK_OUT_SRC_SEL 0x0151 |
| #define B16AIO_ADAC_CLK_CTRL_PRIMCLK_OUT_SRC_SEL 0x0150 |
| #define LSb32AIO_ADAC_CLK_CTRL_PRIMCLK_OUT_SRC_SEL 11 |
| #define LSb16AIO_ADAC_CLK_CTRL_PRIMCLK_OUT_SRC_SEL 11 |
| #define bAIO_ADAC_CLK_CTRL_PRIMCLK_OUT_SRC_SEL 1 |
| #define MSK32AIO_ADAC_CLK_CTRL_PRIMCLK_OUT_SRC_SEL 0x00000800 |
| /////////////////////////////////////////////////////////// |
| |
| typedef struct SIE_AIO { |
| /////////////////////////////////////////////////////////// |
| SIE_P71 ie_P71; |
| /////////////////////////////////////////////////////////// |
| SIE_SEC ie_SEC; |
| /////////////////////////////////////////////////////////// |
| SIE_HDMI ie_HDMI; |
| /////////////////////////////////////////////////////////// |
| SIE_SPDIF ie_SPDIF; |
| /////////////////////////////////////////////////////////// |
| SIE_MIC ie_MIC1; |
| /////////////////////////////////////////////////////////// |
| SIE_MIC ie_MIC2; |
| /////////////////////////////////////////////////////////// |
| SIE_IOSEL ie_IOSEL; |
| /////////////////////////////////////////////////////////// |
| #define GET32AIO_IRQENABLE_PRIIRQ(r32) _BFGET_(r32, 0, 0) |
| #define SET32AIO_IRQENABLE_PRIIRQ(r32,v) _BFSET_(r32, 0, 0,v) |
| #define GET16AIO_IRQENABLE_PRIIRQ(r16) _BFGET_(r16, 0, 0) |
| #define SET16AIO_IRQENABLE_PRIIRQ(r16,v) _BFSET_(r16, 0, 0,v) |
| |
| #define GET32AIO_IRQENABLE_SECIRQ(r32) _BFGET_(r32, 1, 1) |
| #define SET32AIO_IRQENABLE_SECIRQ(r32,v) _BFSET_(r32, 1, 1,v) |
| #define GET16AIO_IRQENABLE_SECIRQ(r16) _BFGET_(r16, 1, 1) |
| #define SET16AIO_IRQENABLE_SECIRQ(r16,v) _BFSET_(r16, 1, 1,v) |
| |
| #define GET32AIO_IRQENABLE_MIC1IRQ(r32) _BFGET_(r32, 2, 2) |
| #define SET32AIO_IRQENABLE_MIC1IRQ(r32,v) _BFSET_(r32, 2, 2,v) |
| #define GET16AIO_IRQENABLE_MIC1IRQ(r16) _BFGET_(r16, 2, 2) |
| #define SET16AIO_IRQENABLE_MIC1IRQ(r16,v) _BFSET_(r16, 2, 2,v) |
| |
| #define GET32AIO_IRQENABLE_MIC2IRQ(r32) _BFGET_(r32, 3, 3) |
| #define SET32AIO_IRQENABLE_MIC2IRQ(r32,v) _BFSET_(r32, 3, 3,v) |
| #define GET16AIO_IRQENABLE_MIC2IRQ(r16) _BFGET_(r16, 3, 3) |
| #define SET16AIO_IRQENABLE_MIC2IRQ(r16,v) _BFSET_(r16, 3, 3,v) |
| |
| #define GET32AIO_IRQENABLE_SPDIFIRQ(r32) _BFGET_(r32, 4, 4) |
| #define SET32AIO_IRQENABLE_SPDIFIRQ(r32,v) _BFSET_(r32, 4, 4,v) |
| #define GET16AIO_IRQENABLE_SPDIFIRQ(r16) _BFGET_(r16, 4, 4) |
| #define SET16AIO_IRQENABLE_SPDIFIRQ(r16,v) _BFSET_(r16, 4, 4,v) |
| |
| #define GET32AIO_IRQENABLE_HDMIIRQ(r32) _BFGET_(r32, 5, 5) |
| #define SET32AIO_IRQENABLE_HDMIIRQ(r32,v) _BFSET_(r32, 5, 5,v) |
| #define GET16AIO_IRQENABLE_HDMIIRQ(r16) _BFGET_(r16, 5, 5) |
| #define SET16AIO_IRQENABLE_HDMIIRQ(r16,v) _BFSET_(r16, 5, 5,v) |
| |
| #define GET32AIO_IRQENABLE_PDMIRQ(r32) _BFGET_(r32, 6, 6) |
| #define SET32AIO_IRQENABLE_PDMIRQ(r32,v) _BFSET_(r32, 6, 6,v) |
| #define GET16AIO_IRQENABLE_PDMIRQ(r16) _BFGET_(r16, 6, 6) |
| #define SET16AIO_IRQENABLE_PDMIRQ(r16,v) _BFSET_(r16, 6, 6,v) |
| |
| #define w32AIO_IRQENABLE {\ |
| UNSG32 uIRQENABLE_PRIIRQ : 1;\ |
| UNSG32 uIRQENABLE_SECIRQ : 1;\ |
| UNSG32 uIRQENABLE_MIC1IRQ : 1;\ |
| UNSG32 uIRQENABLE_MIC2IRQ : 1;\ |
| UNSG32 uIRQENABLE_SPDIFIRQ : 1;\ |
| UNSG32 uIRQENABLE_HDMIIRQ : 1;\ |
| UNSG32 uIRQENABLE_PDMIRQ : 1;\ |
| UNSG32 RSVDx144_b7 : 25;\ |
| } |
| union { UNSG32 u32AIO_IRQENABLE; |
| struct w32AIO_IRQENABLE; |
| }; |
| /////////////////////////////////////////////////////////// |
| #define GET32AIO_IRQSTS_PRISTS(r32) _BFGET_(r32, 0, 0) |
| #define SET32AIO_IRQSTS_PRISTS(r32,v) _BFSET_(r32, 0, 0,v) |
| #define GET16AIO_IRQSTS_PRISTS(r16) _BFGET_(r16, 0, 0) |
| #define SET16AIO_IRQSTS_PRISTS(r16,v) _BFSET_(r16, 0, 0,v) |
| |
| #define GET32AIO_IRQSTS_SECSTS(r32) _BFGET_(r32, 1, 1) |
| #define SET32AIO_IRQSTS_SECSTS(r32,v) _BFSET_(r32, 1, 1,v) |
| #define GET16AIO_IRQSTS_SECSTS(r16) _BFGET_(r16, 1, 1) |
| #define SET16AIO_IRQSTS_SECSTS(r16,v) _BFSET_(r16, 1, 1,v) |
| |
| #define GET32AIO_IRQSTS_MIC1STS(r32) _BFGET_(r32, 2, 2) |
| #define SET32AIO_IRQSTS_MIC1STS(r32,v) _BFSET_(r32, 2, 2,v) |
| #define GET16AIO_IRQSTS_MIC1STS(r16) _BFGET_(r16, 2, 2) |
| #define SET16AIO_IRQSTS_MIC1STS(r16,v) _BFSET_(r16, 2, 2,v) |
| |
| #define GET32AIO_IRQSTS_MIC2STS(r32) _BFGET_(r32, 3, 3) |
| #define SET32AIO_IRQSTS_MIC2STS(r32,v) _BFSET_(r32, 3, 3,v) |
| #define GET16AIO_IRQSTS_MIC2STS(r16) _BFGET_(r16, 3, 3) |
| #define SET16AIO_IRQSTS_MIC2STS(r16,v) _BFSET_(r16, 3, 3,v) |
| |
| #define GET32AIO_IRQSTS_SPDIFSTS(r32) _BFGET_(r32, 4, 4) |
| #define SET32AIO_IRQSTS_SPDIFSTS(r32,v) _BFSET_(r32, 4, 4,v) |
| #define GET16AIO_IRQSTS_SPDIFSTS(r16) _BFGET_(r16, 4, 4) |
| #define SET16AIO_IRQSTS_SPDIFSTS(r16,v) _BFSET_(r16, 4, 4,v) |
| |
| #define GET32AIO_IRQSTS_HDMISTS(r32) _BFGET_(r32, 5, 5) |
| #define SET32AIO_IRQSTS_HDMISTS(r32,v) _BFSET_(r32, 5, 5,v) |
| #define GET16AIO_IRQSTS_HDMISTS(r16) _BFGET_(r16, 5, 5) |
| #define SET16AIO_IRQSTS_HDMISTS(r16,v) _BFSET_(r16, 5, 5,v) |
| |
| #define GET32AIO_IRQSTS_PDMSTS(r32) _BFGET_(r32, 6, 6) |
| #define SET32AIO_IRQSTS_PDMSTS(r32,v) _BFSET_(r32, 6, 6,v) |
| #define GET16AIO_IRQSTS_PDMSTS(r16) _BFGET_(r16, 6, 6) |
| #define SET16AIO_IRQSTS_PDMSTS(r16,v) _BFSET_(r16, 6, 6,v) |
| |
| #define w32AIO_IRQSTS {\ |
| UNSG32 uIRQSTS_PRISTS : 1;\ |
| UNSG32 uIRQSTS_SECSTS : 1;\ |
| UNSG32 uIRQSTS_MIC1STS : 1;\ |
| UNSG32 uIRQSTS_MIC2STS : 1;\ |
| UNSG32 uIRQSTS_SPDIFSTS : 1;\ |
| UNSG32 uIRQSTS_HDMISTS : 1;\ |
| UNSG32 uIRQSTS_PDMSTS : 1;\ |
| UNSG32 RSVDx148_b7 : 25;\ |
| } |
| union { UNSG32 u32AIO_IRQSTS; |
| struct w32AIO_IRQSTS; |
| }; |
| /////////////////////////////////////////////////////////// |
| #define GET32AIO_HDSRC_SEL(r32) _BFGET_(r32, 1, 0) |
| #define SET32AIO_HDSRC_SEL(r32,v) _BFSET_(r32, 1, 0,v) |
| #define GET16AIO_HDSRC_SEL(r16) _BFGET_(r16, 1, 0) |
| #define SET16AIO_HDSRC_SEL(r16,v) _BFSET_(r16, 1, 0,v) |
| |
| #define w32AIO_HDSRC {\ |
| UNSG32 uHDSRC_SEL : 2;\ |
| UNSG32 RSVDx14C_b2 : 30;\ |
| } |
| union { UNSG32 u32AIO_HDSRC; |
| struct w32AIO_HDSRC; |
| }; |
| /////////////////////////////////////////////////////////// |
| #define GET32AIO_ADAC_CLK_CTRL_mclkDiv(r32) _BFGET_(r32, 2, 0) |
| #define SET32AIO_ADAC_CLK_CTRL_mclkDiv(r32,v) _BFSET_(r32, 2, 0,v) |
| #define GET16AIO_ADAC_CLK_CTRL_mclkDiv(r16) _BFGET_(r16, 2, 0) |
| #define SET16AIO_ADAC_CLK_CTRL_mclkDiv(r16,v) _BFSET_(r16, 2, 0,v) |
| |
| #define GET32AIO_ADAC_CLK_CTRL_pwmclkDiv(r32) _BFGET_(r32, 5, 3) |
| #define SET32AIO_ADAC_CLK_CTRL_pwmclkDiv(r32,v) _BFSET_(r32, 5, 3,v) |
| #define GET16AIO_ADAC_CLK_CTRL_pwmclkDiv(r16) _BFGET_(r16, 5, 3) |
| #define SET16AIO_ADAC_CLK_CTRL_pwmclkDiv(r16,v) _BFSET_(r16, 5, 3,v) |
| |
| #define GET32AIO_ADAC_CLK_CTRL_mclkInv(r32) _BFGET_(r32, 6, 6) |
| #define SET32AIO_ADAC_CLK_CTRL_mclkInv(r32,v) _BFSET_(r32, 6, 6,v) |
| #define GET16AIO_ADAC_CLK_CTRL_mclkInv(r16) _BFGET_(r16, 6, 6) |
| #define SET16AIO_ADAC_CLK_CTRL_mclkInv(r16,v) _BFSET_(r16, 6, 6,v) |
| |
| #define GET32AIO_ADAC_CLK_CTRL_pwmclkInv(r32) _BFGET_(r32, 7, 7) |
| #define SET32AIO_ADAC_CLK_CTRL_pwmclkInv(r32,v) _BFSET_(r32, 7, 7,v) |
| #define GET16AIO_ADAC_CLK_CTRL_pwmclkInv(r16) _BFGET_(r16, 7, 7) |
| #define SET16AIO_ADAC_CLK_CTRL_pwmclkInv(r16,v) _BFSET_(r16, 7, 7,v) |
| |
| #define GET32AIO_ADAC_CLK_CTRL_inputSel(r32) _BFGET_(r32, 8, 8) |
| #define SET32AIO_ADAC_CLK_CTRL_inputSel(r32,v) _BFSET_(r32, 8, 8,v) |
| #define GET16AIO_ADAC_CLK_CTRL_inputSel(r16) _BFGET_(r16, 8, 8) |
| #define SET16AIO_ADAC_CLK_CTRL_inputSel(r16,v) _BFSET_(r16, 8, 8,v) |
| |
| #define GET32AIO_ADAC_CLK_CTRL_PWMCLK_SRC_SEL(r32) _BFGET_(r32,10, 9) |
| #define SET32AIO_ADAC_CLK_CTRL_PWMCLK_SRC_SEL(r32,v) _BFSET_(r32,10, 9,v) |
| #define GET16AIO_ADAC_CLK_CTRL_PWMCLK_SRC_SEL(r16) _BFGET_(r16,10, 9) |
| #define SET16AIO_ADAC_CLK_CTRL_PWMCLK_SRC_SEL(r16,v) _BFSET_(r16,10, 9,v) |
| |
| #define GET32AIO_ADAC_CLK_CTRL_PRIMCLK_OUT_SRC_SEL(r32) _BFGET_(r32,11,11) |
| #define SET32AIO_ADAC_CLK_CTRL_PRIMCLK_OUT_SRC_SEL(r32,v) _BFSET_(r32,11,11,v) |
| #define GET16AIO_ADAC_CLK_CTRL_PRIMCLK_OUT_SRC_SEL(r16) _BFGET_(r16,11,11) |
| #define SET16AIO_ADAC_CLK_CTRL_PRIMCLK_OUT_SRC_SEL(r16,v) _BFSET_(r16,11,11,v) |
| |
| #define w32AIO_ADAC_CLK_CTRL {\ |
| UNSG32 uADAC_CLK_CTRL_mclkDiv : 3;\ |
| UNSG32 uADAC_CLK_CTRL_pwmclkDiv : 3;\ |
| UNSG32 uADAC_CLK_CTRL_mclkInv : 1;\ |
| UNSG32 uADAC_CLK_CTRL_pwmclkInv : 1;\ |
| UNSG32 uADAC_CLK_CTRL_inputSel : 1;\ |
| UNSG32 uADAC_CLK_CTRL_PWMCLK_SRC_SEL : 2;\ |
| UNSG32 uADAC_CLK_CTRL_PRIMCLK_OUT_SRC_SEL : 1;\ |
| UNSG32 RSVDx150_b12 : 20;\ |
| } |
| union { UNSG32 u32AIO_ADAC_CLK_CTRL; |
| struct w32AIO_ADAC_CLK_CTRL; |
| }; |
| /////////////////////////////////////////////////////////// |
| } SIE_AIO; |
| |
| typedef union T32AIO_IRQENABLE |
| { UNSG32 u32; |
| struct w32AIO_IRQENABLE; |
| } T32AIO_IRQENABLE; |
| typedef union T32AIO_IRQSTS |
| { UNSG32 u32; |
| struct w32AIO_IRQSTS; |
| } T32AIO_IRQSTS; |
| typedef union T32AIO_HDSRC |
| { UNSG32 u32; |
| struct w32AIO_HDSRC; |
| } T32AIO_HDSRC; |
| typedef union T32AIO_ADAC_CLK_CTRL |
| { UNSG32 u32; |
| struct w32AIO_ADAC_CLK_CTRL; |
| } T32AIO_ADAC_CLK_CTRL; |
| /////////////////////////////////////////////////////////// |
| |
| typedef union TAIO_IRQENABLE |
| { UNSG32 u32[1]; |
| struct { |
| struct w32AIO_IRQENABLE; |
| }; |
| } TAIO_IRQENABLE; |
| typedef union TAIO_IRQSTS |
| { UNSG32 u32[1]; |
| struct { |
| struct w32AIO_IRQSTS; |
| }; |
| } TAIO_IRQSTS; |
| typedef union TAIO_HDSRC |
| { UNSG32 u32[1]; |
| struct { |
| struct w32AIO_HDSRC; |
| }; |
| } TAIO_HDSRC; |
| typedef union TAIO_ADAC_CLK_CTRL |
| { UNSG32 u32[1]; |
| struct { |
| struct w32AIO_ADAC_CLK_CTRL; |
| }; |
| } TAIO_ADAC_CLK_CTRL; |
| |
| /////////////////////////////////////////////////////////// |
| SIGN32 AIO_drvrd(SIE_AIO *p, UNSG32 base, SIGN32 mem, SIGN32 tst); |
| SIGN32 AIO_drvwr(SIE_AIO *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd); |
| void AIO_reset(SIE_AIO *p); |
| SIGN32 AIO_cmp (SIE_AIO *p, SIE_AIO *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst); |
| #define AIO_check(p,pie,pfx,hLOG) AIO_cmp(p,pie,pfx,(void*)(hLOG),0,0) |
| #define AIO_print(p, pfx,hLOG) AIO_cmp(p,0, pfx,(void*)(hLOG),0,0) |
| |
| #endif |
| ////// |
| /// ENDOFINTERFACE: AIO |
| //////////////////////////////////////////////////////////// |
| |
| |
| |
| #ifdef __cplusplus |
| } |
| #endif |
| #pragma pack() |
| |
| #endif |
| ////// |
| /// ENDOFFILE: aio.h |
| //////////////////////////////////////////////////////////// |
| |