| @@ -7342,51 +7342,242 @@ typedef struct { | |||
| #define PMU_MISC2_REG0_BO_OFFSET(n) ((uint32_t)(((n) & 0x07) << 0)) | |||
| // 36.8: page 1923 | |||
| #define IMXRT_PXP (*(IMXRT_REGISTER32_t *)0x402B4000) | |||
| #define IMXRT_PXP_b (*(IMXRT_REGISTER32_t *)0x402B4400) | |||
| #define PXP_CTRL (IMXRT_PXP.offset000) | |||
| #define PXP_CTRL_SET (IMXRT_PXP.offset004) | |||
| #define PXP_CTRL_CLR (IMXRT_PXP.offset008) | |||
| #define PXP_CTRL_TOG (IMXRT_PXP.offset00C) | |||
| #define PXP_STAT (IMXRT_PXP.offset010) | |||
| #define PXP_STAT_SET (IMXRT_PXP.offset014) | |||
| #define PXP_STAT_CLR (IMXRT_PXP.offset018) | |||
| #define PXP_STAT_TOG (IMXRT_PXP.offset01C) | |||
| #define PXP_OUT_CTRL (IMXRT_PXP.offset020) | |||
| #define PXP_OUT_CTRL_SET (IMXRT_PXP.offset024) | |||
| #define PXP_OUT_CTRL_CLR (IMXRT_PXP.offset028) | |||
| #define PXP_OUT_CTRL_TOG (IMXRT_PXP.offset02C) | |||
| #define PXP_OUT_BUF (IMXRT_PXP.offset030) | |||
| #define PXP_OUT_BUF2 (IMXRT_PXP.offset040) | |||
| #define PXP_OUT_PITCH (IMXRT_PXP.offset050) | |||
| #define PXP_OUT_LRC (IMXRT_PXP.offset060) | |||
| #define PXP_OUT_PS_ULC (IMXRT_PXP.offset070) | |||
| #define PXP_OUT_PS_LRC (IMXRT_PXP.offset080) | |||
| #define PXP_OUT_AS_ULC (IMXRT_PXP.offset090) | |||
| #define PXP_OUT_AS_LRC (IMXRT_PXP.offset0A0) | |||
| #define PXP_PS_CTRL (IMXRT_PXP.offset0B0) | |||
| #define PXP_PS_CTRL_SET (IMXRT_PXP.offset0B4) | |||
| #define PXP_PS_CTRL_CLR (IMXRT_PXP.offset0B8) | |||
| #define PXP_PS_CTRL_TOG (IMXRT_PXP.offset0BC) | |||
| #define PXP_PS_BUF (IMXRT_PXP.offset0C0) | |||
| #define PXP_PS_UBUF (IMXRT_PXP.offset0D0) | |||
| #define PXP_PS_VBUF (IMXRT_PXP.offset0E0) | |||
| #define PXP_PS_PITCH (IMXRT_PXP.offset0F0) | |||
| #define PXP_PS_BACKGROUND_0 (IMXRT_PXP.offset100) | |||
| #define PXP_PS_SCALE (IMXRT_PXP.offset110) | |||
| #define PXP_PS_OFFSET (IMXRT_PXP.offset120) | |||
| #define PXP_PS_CLRKEYLOW_0 (IMXRT_PXP.offset130) | |||
| #define PXP_PS_CLRKEYHIGH_0 (IMXRT_PXP.offset140) | |||
| #define PXP_AS_CTRL (IMXRT_PXP.offset150) | |||
| #define PXP_AS_BUF (IMXRT_PXP.offset160) | |||
| #define PXP_AS_PITCH (IMXRT_PXP.offset170) | |||
| #define PXP_AS_CLRKEYLOW_0 (IMXRT_PXP.offset180) | |||
| #define PXP_AS_CLRKEYHIGH_0 (IMXRT_PXP.offset190) | |||
| #define PXP_CSC1_COEF0 (IMXRT_PXP.offset1A0) | |||
| #define PXP_CSC1_COEF1 (IMXRT_PXP.offset1B0) | |||
| #define PXP_CSC1_COEF2 (IMXRT_PXP.offset1C0) | |||
| #define PXP_POWER (IMXRT_PXP_b.offset000) | |||
| #define PXP_PORTER_DUFF_CTRL (IMXRT_PXP_b.offset040) | |||
| typedef struct | |||
| { | |||
| volatile uint32_t CTRL; | |||
| volatile uint32_t CTRL_SET; | |||
| volatile uint32_t CTRL_CLR; | |||
| volatile uint32_t CTLR_TOG; | |||
| volatile uint32_t STAT; | |||
| volatile uint32_t STAT_SET; | |||
| volatile uint32_t STAT_CLR; | |||
| volatile uint32_t STAT_TOG; | |||
| volatile uint32_t OUT_CTRL; | |||
| volatile uint32_t OUT_CTRL_SET; | |||
| volatile uint32_t OUT_CTRL_CLR; | |||
| volatile uint32_t OUT_CTRL_TOG; | |||
| volatile void* OUT_BUF; | |||
| volatile uint32_t unused1[3]; | |||
| volatile void* OUT_BUF2; | |||
| volatile uint32_t unused2[3]; | |||
| volatile uint32_t OUT_PITCH; | |||
| volatile uint32_t unused3[3]; | |||
| volatile uint32_t OUT_LRC; | |||
| volatile uint32_t unused4[3]; | |||
| volatile uint32_t OUT_PS_ULC; | |||
| volatile uint32_t unused5[3]; | |||
| volatile uint32_t OUT_PS_LRC; | |||
| volatile uint32_t unused6[3]; | |||
| volatile uint32_t OUT_AS_ULC; | |||
| volatile uint32_t unused7[3]; | |||
| volatile uint32_t OUT_AS_LRC; | |||
| volatile uint32_t unused8[3]; | |||
| volatile uint32_t PS_CTRL; | |||
| volatile uint32_t PS_CTRL_SET; | |||
| volatile uint32_t PS_CTRL_CLR; | |||
| volatile uint32_t PS_CTRL_TOG; | |||
| volatile void* PS_BUF; | |||
| volatile uint32_t unused9[3]; | |||
| volatile void* PS_UBUF; | |||
| volatile uint32_t unused10[3]; | |||
| volatile void* PS_VBUF; | |||
| volatile uint32_t unused11[3]; | |||
| volatile uint32_t PS_PITCH; | |||
| volatile uint32_t unused12[3]; | |||
| volatile uint32_t PS_BACKGROUND; | |||
| volatile uint32_t unused13[3]; | |||
| volatile uint32_t PS_SCALE; | |||
| volatile uint32_t unused14[3]; | |||
| volatile uint32_t PS_OFFSET; | |||
| volatile uint32_t unused15[3]; | |||
| volatile uint32_t PS_CLRKEYLOW; | |||
| volatile uint32_t unused16[3]; | |||
| volatile uint32_t PS_CLRKEYHIGH; | |||
| volatile uint32_t unused17[3]; | |||
| volatile uint32_t AS_CTRL; | |||
| volatile uint32_t unused18[3]; | |||
| volatile void* AS_BUF; | |||
| volatile uint32_t unused19[3]; | |||
| volatile uint32_t AS_PITCH; | |||
| volatile uint32_t unused20[3]; | |||
| volatile uint32_t AS_CLRKEYLOW; | |||
| volatile uint32_t unused21[3]; | |||
| volatile uint32_t AS_CLRKEYHIGH; | |||
| volatile uint32_t unused22[3]; | |||
| volatile uint32_t CSC1_COEF0; | |||
| volatile uint32_t unused23[3]; | |||
| volatile uint32_t CSC1_COEF1; | |||
| volatile uint32_t unused24[3]; | |||
| volatile uint32_t CSC1_COEF2; | |||
| volatile uint32_t unused25[87]; | |||
| volatile uint32_t POWER; | |||
| volatile uint32_t unused26[55]; | |||
| volatile uint32_t NEXT; | |||
| volatile uint32_t unused27[15]; | |||
| volatile uint32_t PORTER_DUFF_CTRL; | |||
| } IMXRT_PXP_t; | |||
| #define IMXRT_PXP (*(IMXRT_PXP_t *)0x402B4000) | |||
| #define PXP_CTRL (IMXRT_PXP.CTRL) | |||
| #define PXP_CTRL_SET (IMXRT_PXP.CTRL_SET) | |||
| #define PXP_CTRL_CLR (IMXRT_PXP.CTRL_CLR) | |||
| #define PXP_CTRL_TOG (IMXRT_PXP.CTRL_TOG) | |||
| #define PXP_STAT (IMXRT_PXP.STAT) | |||
| #define PXP_STAT_SET (IMXRT_PXP.STAT_SET) | |||
| #define PXP_STAT_CLR (IMXRT_PXP.STAT_CLR) | |||
| #define PXP_STAT_TOG (IMXRT_PXP.STAT_TOG) | |||
| #define PXP_OUT_CTRL (IMXRT_PXP.OUT_CTRL) | |||
| #define PXP_OUT_CTRL_SET (IMXRT_PXP.OUT_CTRL_SET) | |||
| #define PXP_OUT_CTRL_CLR (IMXRT_PXP.OUT_CTRL_CLR) | |||
| #define PXP_OUT_CTRL_TOG (IMXRT_PXP.OUT_CTRL_TOG) | |||
| #define PXP_OUT_BUF (IMXRT_PXP.OUT_BUF) | |||
| #define PXP_OUT_BUF2 (IMXRT_PXP.OUT_BUF2) | |||
| #define PXP_OUT_PITCH (IMXRT_PXP.OUT_PITCH) | |||
| #define PXP_OUT_LRC (IMXRT_PXP.OUT_LRC) | |||
| #define PXP_OUT_PS_ULC (IMXRT_PXP.OUT_PS_ULC) | |||
| #define PXP_OUT_PS_LRC (IMXRT_PXP.OUT_PS_LRC) | |||
| #define PXP_OUT_AS_ULC (IMXRT_PXP.OUT_AS_ULC) | |||
| #define PXP_OUT_AS_LRC (IMXRT_PXP.OUT_AS_LRC) | |||
| #define PXP_PS_CTRL (IMXRT_PXP.PS_CTRL) | |||
| #define PXP_PS_CTRL_SET (IMXRT_PXP.PS_CTRL_SET) | |||
| #define PXP_PS_CTRL_CLR (IMXRT_PXP.PS_CTRL_CLR) | |||
| #define PXP_PS_CTRL_TOG (IMXRT_PXP.PS_CTRL_TOG) | |||
| #define PXP_PS_BUF (IMXRT_PXP.PS_BUF) | |||
| #define PXP_PS_UBUF (IMXRT_PXP.PS_UBUF) | |||
| #define PXP_PS_VBUF (IMXRT_PXP.PS_VBUF) | |||
| #define PXP_PS_PITCH (IMXRT_PXP.PS_PITCH) | |||
| #define PXP_PS_BACKGROUND_0 (IMXRT_PXP.PS_BACKGROUND) | |||
| #define PXP_PS_SCALE (IMXRT_PXP.PS_SCALE) | |||
| #define PXP_PS_OFFSET (IMXRT_PXP.PS_OFFSET) | |||
| #define PXP_PS_CLRKEYLOW_0 (IMXRT_PXP.PS_CLRKEYLOW) | |||
| #define PXP_PS_CLRKEYHIGH_0 (IMXRT_PXP.PS_CLRKEYHIGH) | |||
| #define PXP_AS_CTRL (IMXRT_PXP.AS_CTRL) | |||
| #define PXP_AS_BUF (IMXRT_PXP.AS_BUF) | |||
| #define PXP_AS_PITCH (IMXRT_PXP.AS_PITCH) | |||
| #define PXP_AS_CLRKEYLOW_0 (IMXRT_PXP.AS_CLRKEYLOW) | |||
| #define PXP_AS_CLRKEYHIGH_0 (IMXRT_PXP.AS_CLRKEYHIGH) | |||
| #define PXP_CSC1_COEF0 (IMXRT_PXP.CSC1_COEF0) | |||
| #define PXP_CSC1_COEF1 (IMXRT_PXP.CSC1_COEF1) | |||
| #define PXP_CSC1_COEF2 (IMXRT_PXP.CSC1_COEF2) | |||
| #define PXP_POWER (IMXRT_PXP.POWER) | |||
| #define PXP_NEXT (IMXRT_PXP.NEXT) | |||
| #define PXP_PORTER_DUFF_CTRL (IMXRT_PXP.PORTER_DUFF_CTRL) | |||
| #define PXP_ARGB8888 0x0 //32-bit pixels with alpha | |||
| #define PXP_RGBA888 0x1 //32-bit pixel with alpha at low 8 bits | |||
| #define PXP_RGB888 0x4 //32-bit pixels without alpha (unpacked 24-bit format) | |||
| #define PXP_RGB888P 0x5 //24-bit pixels (packed 24-bit format) | |||
| #define PXP_ARGB1555 0x8 //16-bit pixels with alpha at low 1 bit | |||
| #define PXP_ARGB4444 0x9 //16-bit pixels with alpha at low 4 bits | |||
| #define PXP_RGB555 0xC //16-bit pixels without alpha | |||
| #define PXP_RGB444 0xD //16-bit pixels without alpha | |||
| #define PXP_RGB565 0xE //16-bit pixels without alpha | |||
| #define PXP_YUV1P444 0x10 //32-bit pixels (1-plane XYUV unpacked) | |||
| #define PXP_UYVY1P422 0x12 //16-bit pixels (1-plane U0,Y0,V0,Y1 interleaved bytes) | |||
| #define PXP_VYUY1P422 0x13 //16-bit pixels (1-plane V0,Y0,U0,Y1 interleaved bytes) | |||
| #define PXP_Y8 0x14 //8-bit monochrome pixels (1-plane Y luma output) | |||
| #define PXP_Y4 0x15 //4-bit monochrome pixels (1-plane Y luma, 4 bit truncation) | |||
| #define PXP_YUV2P422 0x18 //16-bit pixels (2-plane UV interleaved bytes) | |||
| #define PXP_YUV2P420 0x19 //16-bit pixels (2-plane UV) | |||
| #define PXP_YVU2P422 0x1A //16-bit pixels (2-plane VU interleaved bytes) | |||
| #define PXP_YVU2P420 0x1B //16-bit pixels (2-plane VU) | |||
| #define PXP_YUV422 0x1E //16-bit pixels (3-plane format) | |||
| #define PXP_YUV420 0x1F //16-bit pixels (3-plane format) | |||
| #define PXP_MASKAS 0x0 | |||
| #define PXP_MASKNOTAS 0x1 | |||
| #define PXP_MASKASNOT 0x2 | |||
| #define PXP_MERGEAS 0x3 | |||
| #define PXP_MERGENOTAS 0x4 | |||
| #define PXP_MERGEASNOT 0x5 | |||
| #define PXP_NOTCOPYAS 0x6 | |||
| #define PXP_NOT 0x7 | |||
| #define PXP_NOTMASKAS 0x8 | |||
| #define PXP_NOTMERGEAS 0x9 | |||
| #define PXP_XORAS 0xA | |||
| #define PXP_NOTXORAS 0xB | |||
| #define PXP_CTRL_ENABLE ((uint32_t)(1)) | |||
| #define PXP_CTRL_IRQ_ENABLE ((uint32_t)(1<<1)) | |||
| #define PXP_CTRL_NEXT_IRQ_ENABLE ((uint32_t)(1<<2)) | |||
| #define PXP_CTRL_ENABLE_LCD_HANDSHAKE ((uint32_t)(1<<4)) | |||
| #define PXP_CTRL_ROTATE(n) ((uint32_t)(((n) & 0x03) << 8)) | |||
| #define PXP_CTRL_HFLIP ((uint32_t)(1<<10)) | |||
| #define PXP_CTRL_VFLIP ((uint32_t)(1<<11)) | |||
| #define PXP_CTRL_ROT_POS ((uint32_t)(1<<22)) | |||
| #define PXP_CTRL_BLOCK_SIZE ((uint32_t)(1<<23)) | |||
| #define PXP_CTRL_EN_REPEAT ((uint32_t)(1<<28)) | |||
| #define PXP_CTRL_CLKGATE ((uint32_t)(1<<30)) | |||
| #define PXP_CTRL_SFTRST ((uint32_t)(1<<31)) | |||
| #define PXP_STAT_IRQ ((uint32_t)(1)) | |||
| #define PXP_STAT_AXI_WRITE_ERROR ((uint32_t)(1<<1)) | |||
| #define PXP_STAT_AXI_READ_ERROR ((uint32_t)(1<<2)) | |||
| #define PXP_STAT_NEXT_IRQ ((uint32_t)(1<<3)) | |||
| #define PXP_STAT_AXI_ERROR_ID ((uint32_t)((PXP_STAT>>4) & 0xF)) | |||
| #define PXP_STAT_LUT_DMA_LOAD_DONE_IRQ ((uint32_t)(1<<8)) | |||
| #define PXP_STAT_BLOCKY ((uint32_t)((PXP_STAT>>16) & 0xFF)) | |||
| #define PXP_STAT_BLOCKX ((uint32_t)((PXP_STAT>>24) & 0xFF)) | |||
| #define PXP_OUT_CTRL_FORMAT(n) ((uint32_t)(((n) & 0x1F))) | |||
| #define PXP_OUT_CTRL_INTERLACED_OUTPUT(n) ((uint32_t)(((n) & 0x3) << 8)) | |||
| #define PXP_OUT_CTRL_ALPHA_OUTPUT ((uint32_t)(1<<23)) | |||
| #define PXP_OUT_CTRL_ALPHA(n) ((uint32_t)(((n) & 0xFF) << 24)) | |||
| #define PXP_PS_CTRL_FORMAT(n) ((uint32_t)(((n) & 0x1F))) | |||
| #define PXP_PS_CTRL_WB_SWAP ((uint32_t)(1<<5)) | |||
| #define PXP_PS_CTRL_DECY(n) ((uint32_t)(((n) & 0x3) << 8)) | |||
| #define PXP_PS_CTRL_DECX(n) ((uint32_t)(((n) & 0x3) << 10)) | |||
| #define PXP_AS_CTRL_ALPHA_CTRL(n) ((uint32_t)(((n) & 0x3) << 1)) | |||
| #define PXP_AS_CTRL_ENABLE_COLORKEY ((uint32_t)(1<<3)) | |||
| #define PXP_AS_CTRL_FORMAT(n) ((uint32_t)(((n) & 0xF) << 4)) | |||
| #define PXP_AS_CTRL_ALPHA(n) ((uint32_t)(((n) & 0xFF) << 8)) | |||
| #define PXP_AS_CTRL_ROP(n) ((uint32_t)(((n) & 0xF) << 16)) | |||
| #define PXP_AS_CTRL_ALPHA_INVERT ((uint32_t)(1<<20)) | |||
| #define PXP_COEF0_Y_OFFSET(n) ((uint32_t)(((n) & 0x1FF))) | |||
| #define PXP_COEF0_UV_OFFSET(n) ((uint32_t)(((n) & 0x1FF) << 9)) | |||
| #define PXP_COEF0_C0(n) ((uint32_t)(((n) & 0x7FF) << 18)) | |||
| #define PXP_COEF0_BYPASS ((uint32_t)(1<<30)) | |||
| #define PXP_COEF0_YCBCR_MODE ((uint32_t)(1<<31)) | |||
| #define PXP_COEF1_C4(n) ((uint32_t)(((n) & 0x7FF))) | |||
| #define PXP_COEF1_C1(n) ((uint32_t)(((n) & 0x7FF) << 16)) | |||
| #define PXP_COEF2_C3(n) ((uint32_t)(((n) & 0x7FF))) | |||
| #define PXP_COEF2_C2(n) ((uint32_t)(((n) & 0x7FF) << 16)) | |||
| #define PXP_POWER_ROT_MEM_LP_STATE(n) ((uint32_t)(((n) & 0x7) << 9)) | |||
| #define PXP_POWER_CTRL(n) ((uint32_t)(((n) & 0xFFFFF) << 12)) | |||
| #define PXP_NEXT_ENABLED ((uint32_t)(1)) | |||
| #define PXP_NEXT_POINTER(n) ((uint32_t)(((n) & 0xFFFFFFFC))) | |||
| #define PXP_PORTER_DUFF_CTRL_PORTER_DUFF_ENABLE ((uint32_t)(1)) | |||
| #define PXP_PORTER_DUFF_CTRL_S0_S1_FACTOR_MODE(n) ((uint32_t)(((n) & 0x3) << 1)) | |||
| #define PXP_PORTER_DUFF_CTRL_S0_GLOBAL_ALPHA_MODE(n) ((uint32_t)(((n) & 0x3) << 3)) | |||
| #define PXP_PORTER_DUFF_CTRL_S0_ALPHA_MODE ((uint32_t)(1<<5)) | |||
| #define PXP_PORTER_DUFF_CTRL_S0_COLOR_MODE ((uint32_t)(1<<6)) | |||
| #define PXP_PORTER_DUFF_CTRL_S1_S0_FACTOR_MODE(n) ((uint32_t)(((n) & 0x3) << 8)) | |||
| #define PXP_PORTER_DUFF_CTRL_S1_GLOBAL_ALPHA_MODE(n) ((uint32_t)(((n) & 0x3) << 10)) | |||
| #define PXP_PORTER_DUFF_CTRL_S1_ALPHA_MODE ((uint32_t)(1<<12)) | |||
| #define PXP_PORTER_DUFF_CTRL_S1_COLOR_MODE ((uint32_t)(1<<13)) | |||
| #define PXP_PORTER_DUFF_CTRL_S0_GLOBAL_ALPHA(n) ((uint32_t)(((n) & 0xFF) << 16)) | |||
| #define PXP_PORTER_DUFF_CTRL_S1_GLOBAL_ALPHA(n) ((uint32_t)(((n) & 0xFF) << 24)) | |||
| #define PXP_PITCH(n) ((uint32_t)(((n) & 0xFFFF))) | |||
| #define PXP_XCOORD(n) ((uint32_t)(((n) & 0x3FFFFFFF) << 16)) | |||
| #define PXP_YCOORD(n) ((uint32_t)(((n) & 0x3FFFFFFF))) | |||
| #define PXP_XSCALE(n) ((uint32_t)(((n) & 0x7FFFFFFF))) | |||
| #define PXP_YSCALE(n) ((uint32_t)(((n) & 0x7FFFFFFF) << 16)) | |||
| #define PXP_XOFFSET(n) ((uint32_t)(((n) & 0xFFFFFFF))) | |||
| #define PXP_YOFFSET(n) ((uint32_t)(((n) & 0xFFFFFFF) << 16)) | |||
| #define PXP_COLOR(n) ((uint32_t)(((n) & 0xFFFFFF))) | |||
| // 54.6: page 2990 | |||
| typedef struct | |||