Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


Quelle  armada_hw.h   Sprache: C

 
/* SPDX-License-Identifier: GPL-2.0-only */
/*
 * Copyright (C) 2012 Russell King
 *  Rewritten from the dovefb driver, and Armada510 manuals.
 */

#ifndef ARMADA_HW_H
#define ARMADA_HW_H

/*
 * Note: the following registers are written from IRQ context:
 *  LCD_SPU_V_PORCH, LCD_SPU_ADV_REG, LCD_SPUT_V_H_TOTAL
 *  LCD_SPU_DMA_START_ADDR_[YUV][01], LCD_SPU_DMA_PITCH_YC,
 *  LCD_SPU_DMA_PITCH_UV, LCD_SPU_DMA_OVSA_HPXL_VLN,
 *  LCD_SPU_DMA_HPXL_VLN, LCD_SPU_DZM_HPXL_VLN, LCD_SPU_DMA_CTRL0
 */

enum {
 LCD_SPU_ADV_REG   = 0x0084, /* Armada 510 */
 LCD_SPU_DMA_START_ADDR_Y0 = 0x00c0,
 LCD_SPU_DMA_START_ADDR_U0 = 0x00c4,
 LCD_SPU_DMA_START_ADDR_V0 = 0x00c8,
 LCD_CFG_DMA_START_ADDR_0 = 0x00cc,
 LCD_SPU_DMA_START_ADDR_Y1 = 0x00d0,
 LCD_SPU_DMA_START_ADDR_U1 = 0x00d4,
 LCD_SPU_DMA_START_ADDR_V1 = 0x00d8,
 LCD_CFG_DMA_START_ADDR_1 = 0x00dc,
 LCD_SPU_DMA_PITCH_YC  = 0x00e0,
 LCD_SPU_DMA_PITCH_UV  = 0x00e4,
 LCD_SPU_DMA_OVSA_HPXL_VLN = 0x00e8,
 LCD_SPU_DMA_HPXL_VLN  = 0x00ec,
 LCD_SPU_DZM_HPXL_VLN  = 0x00f0,
 LCD_CFG_GRA_START_ADDR0  = 0x00f4,
 LCD_CFG_GRA_START_ADDR1  = 0x00f8,
 LCD_CFG_GRA_PITCH  = 0x00fc,
 LCD_SPU_GRA_OVSA_HPXL_VLN = 0x0100,
 LCD_SPU_GRA_HPXL_VLN  = 0x0104,
 LCD_SPU_GZM_HPXL_VLN  = 0x0108,
 LCD_SPU_HWC_OVSA_HPXL_VLN = 0x010c,
 LCD_SPU_HWC_HPXL_VLN  = 0x0110,
 LCD_SPUT_V_H_TOTAL  = 0x0114,
 LCD_SPU_V_H_ACTIVE  = 0x0118,
 LCD_SPU_H_PORCH   = 0x011c,
 LCD_SPU_V_PORCH   = 0x0120,
 LCD_SPU_BLANKCOLOR  = 0x0124,
 LCD_SPU_ALPHA_COLOR1  = 0x0128,
 LCD_SPU_ALPHA_COLOR2  = 0x012c,
 LCD_SPU_COLORKEY_Y  = 0x0130,
 LCD_SPU_COLORKEY_U  = 0x0134,
 LCD_SPU_COLORKEY_V  = 0x0138,
 LCD_CFG_RDREG4F   = 0x013c, /* Armada 510 */
 LCD_SPU_SPI_RXDATA  = 0x0140,
 LCD_SPU_ISA_RXDATA  = 0x0144,
 LCD_SPU_HWC_RDDAT  = 0x0158,
 LCD_SPU_GAMMA_RDDAT  = 0x015c,
 LCD_SPU_PALETTE_RDDAT  = 0x0160,
 LCD_SPU_IOPAD_IN  = 0x0178,
 LCD_CFG_RDREG5F   = 0x017c,
 LCD_SPU_SPI_CTRL  = 0x0180,
 LCD_SPU_SPI_TXDATA  = 0x0184,
 LCD_SPU_SMPN_CTRL  = 0x0188,
 LCD_SPU_DMA_CTRL0  = 0x0190,
 LCD_SPU_DMA_CTRL1  = 0x0194,
 LCD_SPU_SRAM_CTRL  = 0x0198,
 LCD_SPU_SRAM_WRDAT  = 0x019c,
 LCD_SPU_SRAM_PARA0  = 0x01a0, /* Armada 510 */
 LCD_SPU_SRAM_PARA1  = 0x01a4,
 LCD_CFG_SCLK_DIV  = 0x01a8,
 LCD_SPU_CONTRAST  = 0x01ac,
 LCD_SPU_SATURATION  = 0x01b0,
 LCD_SPU_CBSH_HUE  = 0x01b4,
 LCD_SPU_DUMB_CTRL  = 0x01b8,
 LCD_SPU_IOPAD_CONTROL  = 0x01bc,
 LCD_SPU_IRQ_ENA   = 0x01c0,
 LCD_SPU_IRQ_ISR   = 0x01c4,
};

/* For LCD_SPU_ADV_REG */
enum {
 ADV_VSYNC_L_OFF = 0xfff << 20,
 ADV_GRACOLORKEY = 1 << 19,
 ADV_VIDCOLORKEY = 1 << 18,
 ADV_HWC32BLEND = 1 << 15,
 ADV_HWC32ARGB = 1 << 14,
 ADV_HWC32ENABLE = 1 << 13,
 ADV_VSYNCOFFEN = 1 << 12,
 ADV_VSYNC_H_OFF = 0xfff << 0,
};

/* LCD_CFG_RDREG4F - Armada 510 only */
enum {
 CFG_SRAM_WAIT = BIT(11),
 CFG_SMPN_FASTTX = BIT(10),
 CFG_DMA_ARB = BIT(9),
 CFG_DMA_WM_EN = BIT(8),
 CFG_DMA_WM_MASK = 0xff,
#define CFG_DMA_WM(x) ((x) & CFG_DMA_WM_MASK)
};

enum {
 CFG_565  = 0,
 CFG_1555 = 1,
 CFG_888PACK = 2,
 CFG_X888 = 3,
 CFG_8888 = 4,
 CFG_422PACK = 5,
 CFG_422  = 6,
 CFG_420  = 7,
 CFG_PSEUDO4 = 9,
 CFG_PSEUDO8 = 10,
 CFG_SWAPRB = 1 << 4,
 CFG_SWAPUV = 1 << 3,
 CFG_SWAPYU = 1 << 2,
 CFG_YUV2RGB = 1 << 1,
};

/* For LCD_SPU_DMA_CTRL0 */
enum {
 CFG_NOBLENDING = 1 << 31,
 CFG_GAMMA_ENA = 1 << 30,
 CFG_CBSH_ENA = 1 << 29,
 CFG_PALETTE_ENA = 1 << 28,
 CFG_ARBFAST_ENA = 1 << 27,
 CFG_HWC_1BITMOD = 1 << 26,
 CFG_HWC_1BITENA = 1 << 25,
 CFG_HWC_ENA = 1 << 24,
 CFG_DMAFORMAT = 0xf << 20,
#define CFG_DMA_FMT(x) ((x) << 20)
 CFG_GRAFORMAT = 0xf << 16,
#define CFG_GRA_FMT(x) ((x) << 16)
#define CFG_GRA_MOD(x) ((x) << 8)
 CFG_GRA_FTOGGLE = 1 << 15,
 CFG_GRA_HSMOOTH = 1 << 14,
 CFG_GRA_TSTMODE = 1 << 13,
 CFG_GRA_ENA = 1 << 8,
#define CFG_DMA_MOD(x) ((x) << 0)
 CFG_DMA_FTOGGLE = 1 << 7,
 CFG_DMA_HSMOOTH = 1 << 6,
 CFG_DMA_TSTMODE = 1 << 5,
 CFG_DMA_ENA = 1 << 0,
};

enum {
 CKMODE_DISABLE = 0,
 CKMODE_Y = 1,
 CKMODE_U = 2,
 CKMODE_RGB = 3,
 CKMODE_V = 4,
 CKMODE_R = 5,
 CKMODE_G = 6,
 CKMODE_B = 7,
};

/* For LCD_SPU_DMA_CTRL1 */
enum {
 CFG_FRAME_TRIG  = 1 << 31,
 CFG_VSYNC_INV  = 1 << 27,
 CFG_CKMODE_MASK  = 0x7 << 24,
#define CFG_CKMODE(x)  ((x) << 24)
 CFG_CARRY  = 1 << 23,
 CFG_GATED_CLK  = 1 << 21,
 CFG_PWRDN_ENA  = 1 << 20,
 CFG_DSCALE_MASK  = 0x3 << 18,
 CFG_DSCALE_NONE  = 0x0 << 18,
 CFG_DSCALE_HALF  = 0x1 << 18,
 CFG_DSCALE_QUAR  = 0x2 << 18,
 CFG_ALPHAM_MASK  = 0x3 << 16,
 CFG_ALPHAM_VIDEO = 0x0 << 16,
 CFG_ALPHAM_GRA  = 0x1 << 16,
 CFG_ALPHAM_CFG  = 0x2 << 16,
 CFG_ALPHA_MASK  = 0xff << 8,
#define CFG_ALPHA(x)  ((x) << 8)
 CFG_PIXCMD_MASK  = 0xff,
};

/* For LCD_SPU_SRAM_CTRL */
enum {
 SRAM_READ = 0 << 14,
 SRAM_WRITE = 2 << 14,
 SRAM_INIT = 3 << 14,
 SRAM_GAMMA_YR = 0x0 << 8,
 SRAM_GAMMA_UG = 0x1 << 8,
 SRAM_GAMMA_VB = 0x2 << 8,
 SRAM_PALETTE = 0x3 << 8,
 SRAM_HWC32_RAM1 = 0xc << 8,
 SRAM_HWC32_RAM2 = 0xd << 8,
 SRAM_HWC32_RAMR = SRAM_HWC32_RAM1,
 SRAM_HWC32_RAMG = SRAM_HWC32_RAM2,
 SRAM_HWC32_RAMB = 0xe << 8,
 SRAM_HWC32_TRAN = 0xf << 8,
 SRAM_HWC = 0xf << 8,
};

/* For LCD_SPU_SRAM_PARA1 */
enum {
 CFG_CSB_256x32 = 1 << 15, /* cursor */
 CFG_CSB_256x24 = 1 << 14, /* palette */
 CFG_CSB_256x8 = 1 << 13, /* gamma */
 CFG_PDWN1920x32 = 1 << 8, /* Armada 510: power down vscale ram */
 CFG_PDWN256x32 = 1 << 7, /* power down cursor */
 CFG_PDWN256x24 = 1 << 6, /* power down palette */
 CFG_PDWN256x8 = 1 << 5, /* power down gamma */
 CFG_PDWNHWC = 1 << 4, /* Armada 510: power down all hwc ram */
 CFG_PDWN32x32 = 1 << 3, /* power down slave->smart ram */
 CFG_PDWN16x66 = 1 << 2, /* power down UV fifo */
 CFG_PDWN32x66 = 1 << 1, /* power down Y fifo */
 CFG_PDWN64x66 = 1 << 0, /* power down graphic fifo */
};

/* For LCD_CFG_SCLK_DIV */
enum {
 /* Armada 510 */
 SCLK_510_AXI  = 0x0 << 30,
 SCLK_510_EXTCLK0 = 0x1 << 30,
 SCLK_510_PLL  = 0x2 << 30,
 SCLK_510_EXTCLK1 = 0x3 << 30,
 SCLK_510_DIV_CHANGE = 1 << 29,
 SCLK_510_FRAC_DIV_MASK = 0xfff << 16,
 SCLK_510_INT_DIV_MASK = 0xffff << 0,

 /* Armada 16x */
 SCLK_16X_AHB  = 0x0 << 28,
 SCLK_16X_PCLK  = 0x1 << 28,
 SCLK_16X_AXI  = 0x4 << 28,
 SCLK_16X_PLL  = 0x8 << 28,
 SCLK_16X_FRAC_DIV_MASK = 0xfff << 16,
 SCLK_16X_INT_DIV_MASK = 0xffff << 0,
};

/* For LCD_SPU_DUMB_CTRL */
enum {
 DUMB16_RGB565_0 = 0x0 << 28,
 DUMB16_RGB565_1 = 0x1 << 28,
 DUMB18_RGB666_0 = 0x2 << 28,
 DUMB18_RGB666_1 = 0x3 << 28,
 DUMB12_RGB444_0 = 0x4 << 28,
 DUMB12_RGB444_1 = 0x5 << 28,
 DUMB24_RGB888_0 = 0x6 << 28,
 DUMB_BLANK = 0x7 << 28,
 DUMB_MASK = 0xf << 28,
 CFG_BIAS_OUT = 1 << 8,
 CFG_REV_RGB = 1 << 7,
 CFG_INV_CBLANK = 1 << 6,
 CFG_INV_CSYNC = 1 << 5, /* Normally active high */
 CFG_INV_HENA = 1 << 4,
 CFG_INV_VSYNC = 1 << 3, /* Normally active high */
 CFG_INV_HSYNC = 1 << 2, /* Normally active high */
 CFG_INV_PCLK = 1 << 1,
 CFG_DUMB_ENA = 1 << 0,
};

/* For LCD_SPU_IOPAD_CONTROL */
enum {
 CFG_VSCALE_LN_EN = 3 << 18,
 CFG_GRA_VM_ENA  = 1 << 15,
 CFG_DMA_VM_ENA  = 1 << 13,
 CFG_CMD_VM_ENA  = 1 << 11,
 CFG_CSC_MASK  = 3 << 8,
 CFG_CSC_YUV_CCIR709 = 1 << 9,
 CFG_CSC_YUV_CCIR601 = 0 << 9,
 CFG_CSC_RGB_STUDIO = 1 << 8,
 CFG_CSC_RGB_COMPUTER = 0 << 8,
 CFG_IOPAD_MASK  = 0xf << 0,
 CFG_IOPAD_DUMB24 = 0x0 << 0,
 CFG_IOPAD_DUMB18SPI = 0x1 << 0,
 CFG_IOPAD_DUMB18GPIO = 0x2 << 0,
 CFG_IOPAD_DUMB16SPI = 0x3 << 0,
 CFG_IOPAD_DUMB16GPIO = 0x4 << 0,
 CFG_IOPAD_DUMB12GPIO = 0x5 << 0,
 CFG_IOPAD_SMART18 = 0x6 << 0,
 CFG_IOPAD_SMART16 = 0x7 << 0,
 CFG_IOPAD_SMART8 = 0x8 << 0,
};

#define IOPAD_DUMB24                0x0

/* For LCD_SPU_IRQ_ENA */
enum {
 DMA_FRAME_IRQ0_ENA = 1 << 31,
 DMA_FRAME_IRQ1_ENA = 1 << 30,
 DMA_FRAME_IRQ_ENA = DMA_FRAME_IRQ0_ENA | DMA_FRAME_IRQ1_ENA,
 DMA_FF_UNDERFLOW_ENA = 1 << 29,
 GRA_FRAME_IRQ0_ENA = 1 << 27,
 GRA_FRAME_IRQ1_ENA = 1 << 26,
 GRA_FRAME_IRQ_ENA = GRA_FRAME_IRQ0_ENA | GRA_FRAME_IRQ1_ENA,
 GRA_FF_UNDERFLOW_ENA = 1 << 25,
 VSYNC_IRQ_ENA  = 1 << 23,
 DUMB_FRAMEDONE_ENA = 1 << 22,
 TWC_FRAMEDONE_ENA = 1 << 21,
 HWC_FRAMEDONE_ENA = 1 << 20,
 SLV_IRQ_ENA  = 1 << 19,
 SPI_IRQ_ENA  = 1 << 18,
 PWRDN_IRQ_ENA  = 1 << 17,
 ERR_IRQ_ENA  = 1 << 16,
 CLEAN_SPU_IRQ_ISR = 0xffff,
};

/* For LCD_SPU_IRQ_ISR */
enum {
 DMA_FRAME_IRQ0  = 1 << 31,
 DMA_FRAME_IRQ1  = 1 << 30,
 DMA_FRAME_IRQ  = DMA_FRAME_IRQ0 | DMA_FRAME_IRQ1,
 DMA_FF_UNDERFLOW = 1 << 29,
 GRA_FRAME_IRQ0  = 1 << 27,
 GRA_FRAME_IRQ1  = 1 << 26,
 GRA_FRAME_IRQ  = GRA_FRAME_IRQ0 | GRA_FRAME_IRQ1,
 GRA_FF_UNDERFLOW = 1 << 25,
 VSYNC_IRQ  = 1 << 23,
 DUMB_FRAMEDONE  = 1 << 22,
 TWC_FRAMEDONE  = 1 << 21,
 HWC_FRAMEDONE  = 1 << 20,
 SLV_IRQ   = 1 << 19,
 SPI_IRQ   = 1 << 18,
 PWRDN_IRQ  = 1 << 17,
 ERR_IRQ   = 1 << 16,
 DMA_FRAME_IRQ0_LEVEL = 1 << 15,
 DMA_FRAME_IRQ1_LEVEL = 1 << 14,
 DMA_FRAME_CNT_ISR = 3 << 12,
 GRA_FRAME_IRQ0_LEVEL = 1 << 11,
 GRA_FRAME_IRQ1_LEVEL = 1 << 10,
 GRA_FRAME_CNT_ISR = 3 << 8,
 VSYNC_IRQ_LEVEL  = 1 << 7,
 DUMB_FRAMEDONE_LEVEL = 1 << 6,
 TWC_FRAMEDONE_LEVEL = 1 << 5,
 HWC_FRAMEDONE_LEVEL = 1 << 4,
 SLV_FF_EMPTY  = 1 << 3,
 DMA_FF_ALLEMPTY  = 1 << 2,
 GRA_FF_ALLEMPTY  = 1 << 1,
 PWRDN_IRQ_LEVEL  = 1 << 0,
};

#endif

Messung V0.5
C=91 H=100 G=95

¤ Dauer der Verarbeitung: 0.4 Sekunden  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge