147b43a1fSPaolo Bonzini /* 247b43a1fSPaolo Bonzini * Arm PrimeCell PL041 Advanced Audio Codec Interface 347b43a1fSPaolo Bonzini * 447b43a1fSPaolo Bonzini * Copyright (c) 2011 547b43a1fSPaolo Bonzini * Written by Mathieu Sonet - www.elasticsheep.com 647b43a1fSPaolo Bonzini * 747b43a1fSPaolo Bonzini * This code is licensed under the GPL. 847b43a1fSPaolo Bonzini * 947b43a1fSPaolo Bonzini * ***************************************************************** 1047b43a1fSPaolo Bonzini */ 1147b43a1fSPaolo Bonzini 1247b43a1fSPaolo Bonzini #ifndef HW_PL041_H 1347b43a1fSPaolo Bonzini #define HW_PL041_H 1447b43a1fSPaolo Bonzini 1547b43a1fSPaolo Bonzini /* Register file */ 1647b43a1fSPaolo Bonzini #define REGISTER(name, offset) uint32_t name; 1747b43a1fSPaolo Bonzini typedef struct { 1847b43a1fSPaolo Bonzini #include "pl041.hx" 1947b43a1fSPaolo Bonzini } pl041_regfile; 2047b43a1fSPaolo Bonzini #undef REGISTER 2147b43a1fSPaolo Bonzini 2247b43a1fSPaolo Bonzini /* Register addresses */ 2347b43a1fSPaolo Bonzini #define REGISTER(name, offset) PL041_##name = offset, 2447b43a1fSPaolo Bonzini enum { 2547b43a1fSPaolo Bonzini #include "pl041.hx" 2647b43a1fSPaolo Bonzini 2747b43a1fSPaolo Bonzini PL041_periphid0 = 0xFE0, 2847b43a1fSPaolo Bonzini PL041_periphid1 = 0xFE4, 2947b43a1fSPaolo Bonzini PL041_periphid2 = 0xFE8, 3047b43a1fSPaolo Bonzini PL041_periphid3 = 0xFEC, 3147b43a1fSPaolo Bonzini PL041_pcellid0 = 0xFF0, 3247b43a1fSPaolo Bonzini PL041_pcellid1 = 0xFF4, 3347b43a1fSPaolo Bonzini PL041_pcellid2 = 0xFF8, 3447b43a1fSPaolo Bonzini PL041_pcellid3 = 0xFFC, 3547b43a1fSPaolo Bonzini }; 3647b43a1fSPaolo Bonzini #undef REGISTER 3747b43a1fSPaolo Bonzini 3847b43a1fSPaolo Bonzini /* Register bits */ 3947b43a1fSPaolo Bonzini 4047b43a1fSPaolo Bonzini /* IEx */ 4147b43a1fSPaolo Bonzini #define TXCIE (1 << 0) 4247b43a1fSPaolo Bonzini #define RXTIE (1 << 1) 4347b43a1fSPaolo Bonzini #define TXIE (1 << 2) 4447b43a1fSPaolo Bonzini #define RXIE (1 << 3) 4547b43a1fSPaolo Bonzini #define RXOIE (1 << 4) 4647b43a1fSPaolo Bonzini #define TXUIE (1 << 5) 4747b43a1fSPaolo Bonzini #define RXTOIE (1 << 6) 4847b43a1fSPaolo Bonzini 4947b43a1fSPaolo Bonzini /* TXCRx */ 5047b43a1fSPaolo Bonzini #define TXEN (1 << 0) 5147b43a1fSPaolo Bonzini #define TXSLOT1 (1 << 1) 5247b43a1fSPaolo Bonzini #define TXSLOT2 (1 << 2) 5347b43a1fSPaolo Bonzini #define TXSLOT3 (1 << 3) 5447b43a1fSPaolo Bonzini #define TXSLOT4 (1 << 4) 5547b43a1fSPaolo Bonzini #define TXCOMPACT (1 << 15) 5647b43a1fSPaolo Bonzini #define TXFEN (1 << 16) 5747b43a1fSPaolo Bonzini 5847b43a1fSPaolo Bonzini #define TXSLOT_MASK_BIT (1) 5947b43a1fSPaolo Bonzini #define TXSLOT_MASK (0xFFF << TXSLOT_MASK_BIT) 6047b43a1fSPaolo Bonzini 6147b43a1fSPaolo Bonzini #define TSIZE_MASK_BIT (13) 6247b43a1fSPaolo Bonzini #define TSIZE_MASK (0x3 << TSIZE_MASK_BIT) 6347b43a1fSPaolo Bonzini 6447b43a1fSPaolo Bonzini #define TSIZE_16BITS (0x0 << TSIZE_MASK_BIT) 6547b43a1fSPaolo Bonzini #define TSIZE_18BITS (0x1 << TSIZE_MASK_BIT) 6647b43a1fSPaolo Bonzini #define TSIZE_20BITS (0x2 << TSIZE_MASK_BIT) 6747b43a1fSPaolo Bonzini #define TSIZE_12BITS (0x3 << TSIZE_MASK_BIT) 6847b43a1fSPaolo Bonzini 6947b43a1fSPaolo Bonzini /* SRx */ 7047b43a1fSPaolo Bonzini #define RXFE (1 << 0) 7147b43a1fSPaolo Bonzini #define TXFE (1 << 1) 7247b43a1fSPaolo Bonzini #define RXHF (1 << 2) 7347b43a1fSPaolo Bonzini #define TXHE (1 << 3) 7447b43a1fSPaolo Bonzini #define RXFF (1 << 4) 7547b43a1fSPaolo Bonzini #define TXFF (1 << 5) 7647b43a1fSPaolo Bonzini #define RXBUSY (1 << 6) 7747b43a1fSPaolo Bonzini #define TXBUSY (1 << 7) 7847b43a1fSPaolo Bonzini #define RXOVERRUN (1 << 8) 7947b43a1fSPaolo Bonzini #define TXUNDERRUN (1 << 9) 8047b43a1fSPaolo Bonzini #define RXTIMEOUT (1 << 10) 8147b43a1fSPaolo Bonzini #define RXTOFE (1 << 11) 8247b43a1fSPaolo Bonzini 8347b43a1fSPaolo Bonzini /* ISRx */ 8447b43a1fSPaolo Bonzini #define TXCINTR (1 << 0) 8547b43a1fSPaolo Bonzini #define RXTOINTR (1 << 1) 8647b43a1fSPaolo Bonzini #define TXINTR (1 << 2) 8747b43a1fSPaolo Bonzini #define RXINTR (1 << 3) 8847b43a1fSPaolo Bonzini #define ORINTR (1 << 4) 8947b43a1fSPaolo Bonzini #define URINTR (1 << 5) 9047b43a1fSPaolo Bonzini #define RXTOFEINTR (1 << 6) 9147b43a1fSPaolo Bonzini 9247b43a1fSPaolo Bonzini /* SLFR */ 9347b43a1fSPaolo Bonzini #define SL1RXBUSY (1 << 0) 9447b43a1fSPaolo Bonzini #define SL1TXBUSY (1 << 1) 9547b43a1fSPaolo Bonzini #define SL2RXBUSY (1 << 2) 9647b43a1fSPaolo Bonzini #define SL2TXBUSY (1 << 3) 9747b43a1fSPaolo Bonzini #define SL12RXBUSY (1 << 4) 9847b43a1fSPaolo Bonzini #define SL12TXBUSY (1 << 5) 9947b43a1fSPaolo Bonzini #define SL1RXVALID (1 << 6) 10047b43a1fSPaolo Bonzini #define SL1TXEMPTY (1 << 7) 10147b43a1fSPaolo Bonzini #define SL2RXVALID (1 << 8) 10247b43a1fSPaolo Bonzini #define SL2TXEMPTY (1 << 9) 10347b43a1fSPaolo Bonzini #define SL12RXVALID (1 << 10) 10447b43a1fSPaolo Bonzini #define SL12TXEMPTY (1 << 11) 10547b43a1fSPaolo Bonzini #define RAWGPIOINT (1 << 12) 10647b43a1fSPaolo Bonzini #define RWIS (1 << 13) 10747b43a1fSPaolo Bonzini 10847b43a1fSPaolo Bonzini /* MAINCR */ 10947b43a1fSPaolo Bonzini #define AACIFE (1 << 0) 11047b43a1fSPaolo Bonzini #define LOOPBACK (1 << 1) 11147b43a1fSPaolo Bonzini #define LOWPOWER (1 << 2) 11247b43a1fSPaolo Bonzini #define SL1RXEN (1 << 3) 11347b43a1fSPaolo Bonzini #define SL1TXEN (1 << 4) 11447b43a1fSPaolo Bonzini #define SL2RXEN (1 << 5) 11547b43a1fSPaolo Bonzini #define SL2TXEN (1 << 6) 11647b43a1fSPaolo Bonzini #define SL12RXEN (1 << 7) 11747b43a1fSPaolo Bonzini #define SL12TXEN (1 << 8) 11847b43a1fSPaolo Bonzini #define DMAENABLE (1 << 9) 11947b43a1fSPaolo Bonzini 12047b43a1fSPaolo Bonzini /* INTCLR */ 12147b43a1fSPaolo Bonzini #define WISC (1 << 0) 12247b43a1fSPaolo Bonzini #define RXOEC1 (1 << 1) 12347b43a1fSPaolo Bonzini #define RXOEC2 (1 << 2) 12447b43a1fSPaolo Bonzini #define RXOEC3 (1 << 3) 12547b43a1fSPaolo Bonzini #define RXOEC4 (1 << 4) 12647b43a1fSPaolo Bonzini #define TXUEC1 (1 << 5) 12747b43a1fSPaolo Bonzini #define TXUEC2 (1 << 6) 12847b43a1fSPaolo Bonzini #define TXUEC3 (1 << 7) 12947b43a1fSPaolo Bonzini #define TXUEC4 (1 << 8) 13047b43a1fSPaolo Bonzini #define RXTOFEC1 (1 << 9) 13147b43a1fSPaolo Bonzini #define RXTOFEC2 (1 << 10) 13247b43a1fSPaolo Bonzini #define RXTOFEC3 (1 << 11) 13347b43a1fSPaolo Bonzini #define RXTOFEC4 (1 << 12) 13447b43a1fSPaolo Bonzini 135*175de524SMarkus Armbruster #endif /* HW_PL041_H */ 136