qemu

FORK: QEMU emulator
git clone https://git.neptards.moe/neptards/qemu.git
Log | Files | Refs | Submodules | LICENSE

pl041.h (3432B)


      1 /*
      2  * Arm PrimeCell PL041 Advanced Audio Codec Interface
      3  *
      4  * Copyright (c) 2011
      5  * Written by Mathieu Sonet - www.elasticsheep.com
      6  *
      7  * This code is licensed under the GPL.
      8  *
      9  * *****************************************************************
     10  */
     11 
     12 #ifndef HW_PL041_H
     13 #define HW_PL041_H
     14 
     15 /* Register file */
     16 #define REGISTER(name, offset) uint32_t name;
     17 typedef struct {
     18     #include "pl041.hx"
     19 } pl041_regfile;
     20 #undef REGISTER
     21 
     22 /* Register addresses */
     23 #define REGISTER(name, offset) PL041_##name = offset,
     24 enum {
     25     #include "pl041.hx"
     26 
     27     PL041_periphid0 = 0xFE0,
     28     PL041_periphid1 = 0xFE4,
     29     PL041_periphid2 = 0xFE8,
     30     PL041_periphid3 = 0xFEC,
     31     PL041_pcellid0  = 0xFF0,
     32     PL041_pcellid1  = 0xFF4,
     33     PL041_pcellid2  = 0xFF8,
     34     PL041_pcellid3  = 0xFFC,
     35 };
     36 #undef REGISTER
     37 
     38 /* Register bits */
     39 
     40 /* IEx */
     41 #define TXCIE           (1 << 0)
     42 #define RXTIE           (1 << 1)
     43 #define TXIE            (1 << 2)
     44 #define RXIE            (1 << 3)
     45 #define RXOIE           (1 << 4)
     46 #define TXUIE           (1 << 5)
     47 #define RXTOIE          (1 << 6)
     48 
     49 /* TXCRx */
     50 #define TXEN            (1 << 0)
     51 #define TXSLOT1         (1 << 1)
     52 #define TXSLOT2         (1 << 2)
     53 #define TXSLOT3         (1 << 3)
     54 #define TXSLOT4         (1 << 4)
     55 #define TXCOMPACT       (1 << 15)
     56 #define TXFEN           (1 << 16)
     57 
     58 #define TXSLOT_MASK_BIT (1)
     59 #define TXSLOT_MASK     (0xFFF << TXSLOT_MASK_BIT)
     60 
     61 #define TSIZE_MASK_BIT  (13)
     62 #define TSIZE_MASK      (0x3 << TSIZE_MASK_BIT)
     63 
     64 #define TSIZE_16BITS    (0x0 << TSIZE_MASK_BIT)
     65 #define TSIZE_18BITS    (0x1 << TSIZE_MASK_BIT)
     66 #define TSIZE_20BITS    (0x2 << TSIZE_MASK_BIT)
     67 #define TSIZE_12BITS    (0x3 << TSIZE_MASK_BIT)
     68 
     69 /* SRx */
     70 #define RXFE         (1 << 0)
     71 #define TXFE         (1 << 1)
     72 #define RXHF         (1 << 2)
     73 #define TXHE         (1 << 3)
     74 #define RXFF         (1 << 4)
     75 #define TXFF         (1 << 5)
     76 #define RXBUSY       (1 << 6)
     77 #define TXBUSY       (1 << 7)
     78 #define RXOVERRUN    (1 << 8)
     79 #define TXUNDERRUN   (1 << 9)
     80 #define RXTIMEOUT    (1 << 10)
     81 #define RXTOFE       (1 << 11)
     82 
     83 /* ISRx */
     84 #define TXCINTR      (1 << 0)
     85 #define RXTOINTR     (1 << 1)
     86 #define TXINTR       (1 << 2)
     87 #define RXINTR       (1 << 3)
     88 #define ORINTR       (1 << 4)
     89 #define URINTR       (1 << 5)
     90 #define RXTOFEINTR   (1 << 6)
     91 
     92 /* SLFR */
     93 #define SL1RXBUSY    (1 << 0)
     94 #define SL1TXBUSY    (1 << 1)
     95 #define SL2RXBUSY    (1 << 2)
     96 #define SL2TXBUSY    (1 << 3)
     97 #define SL12RXBUSY   (1 << 4)
     98 #define SL12TXBUSY   (1 << 5)
     99 #define SL1RXVALID   (1 << 6)
    100 #define SL1TXEMPTY   (1 << 7)
    101 #define SL2RXVALID   (1 << 8)
    102 #define SL2TXEMPTY   (1 << 9)
    103 #define SL12RXVALID  (1 << 10)
    104 #define SL12TXEMPTY  (1 << 11)
    105 #define RAWGPIOINT   (1 << 12)
    106 #define RWIS         (1 << 13)
    107 
    108 /* MAINCR */
    109 #define AACIFE       (1 << 0)
    110 #define LOOPBACK     (1 << 1)
    111 #define LOWPOWER     (1 << 2)
    112 #define SL1RXEN      (1 << 3)
    113 #define SL1TXEN      (1 << 4)
    114 #define SL2RXEN      (1 << 5)
    115 #define SL2TXEN      (1 << 6)
    116 #define SL12RXEN     (1 << 7)
    117 #define SL12TXEN     (1 << 8)
    118 #define DMAENABLE    (1 << 9)
    119 
    120 /* INTCLR */
    121 #define WISC         (1 << 0)
    122 #define RXOEC1       (1 << 1)
    123 #define RXOEC2       (1 << 2)
    124 #define RXOEC3       (1 << 3)
    125 #define RXOEC4       (1 << 4)
    126 #define TXUEC1       (1 << 5)
    127 #define TXUEC2       (1 << 6)
    128 #define TXUEC3       (1 << 7)
    129 #define TXUEC4       (1 << 8)
    130 #define RXTOFEC1     (1 << 9)
    131 #define RXTOFEC2     (1 << 10)
    132 #define RXTOFEC3     (1 << 11)
    133 #define RXTOFEC4     (1 << 12)
    134 
    135 #endif /* HW_PL041_H */