SAMA5 LCDC: Corrections from first debug sessions. Still a way to go

This commit is contained in:
Gregory Nutt 2013-10-09 13:21:27 -06:00
parent 3b6e63199a
commit ff64ccb539
5 changed files with 271 additions and 166 deletions

View File

@ -7,6 +7,44 @@ if ARCH_CHIP_SAMA5
comment "ATSAMA5 Configuration Options"
# Chip Capabilities
config SAMA5_HAVE_UART0
bool
default n
config SAMA5_HAVE_UART1
bool
default n
config SAMA5_HAVE_CAN0
bool
default n
config SAMA5_HAVE_CAN1
bool
default n
config SAMA5_HAVE_LCDC
bool
default n
config SAMA5_HAVE_GMAC
bool
default n
config SAMA5_HAVE_EMAC
bool
default n
config SAMA5_HAVE_HSMCI2
bool
default n
config SAMA5_HAVE_TC1
bool
default n
choice
prompt "Atmel AT91SAMA5 Chip Selection"
default ARCH_CHIP_ATSAMA5D33
@ -15,7 +53,10 @@ config ARCH_CHIP_ATSAMA5D31
bool "Atmel ATSAMA5D31"
select ARCH_CHIP_SAMA5D3
select SAMA5_HAVE_EMAC
select SAMA5_HAVE_HSMCI2
select SAMA5_HAVE_LCDC
select SAMA5_HAVE_UART0
select SAMA5_HAVE_UART1
config ARCH_CHIP_ATSAMA5D33
bool "Atmel ATSAMA5D33"
@ -27,13 +68,22 @@ config ARCH_CHIP_ATSAMA5D34
bool "Atmel ATSAMA5D34"
select ARCH_CHIP_SAMA5D3
select SAMA5_HAVE_GMAC
select SAMA5_HAVE_HSMCI2
select SAMA5_HAVE_LCDC
select SAMA5_HAVE_CAN0
select SAMA5_HAVE_CAN1
config ARCH_CHIP_ATSAMA5D35
bool "Atmel ATSAMA5D35"
select ARCH_CHIP_SAMA5D3
select SAMA5_HAVE_EMAC
select SAMA5_HAVE_GMAC
select SAMA5_HAVE_HSMCI2
select SAMA5_HAVE_UART0
select SAMA5_HAVE_UART1
select SAMA5_HAVE_CAN0
select SAMA5_HAVE_CAN1
select SAMA5_HAVE_TC1
endchoice # Atmel AT91SAMA5 Chip Selection
@ -62,11 +112,13 @@ config SAMA5_SMD
config SAMA5_UART0
bool "UART 0"
default y
depends on SAMA5_HAVE_UART0
select ARCH_HAVE_UART0
config SAMA5_UART1
bool "UART 1"
default n
depends on SAMA5_HAVE_UART1
select ARCH_HAVE_UART1
config SAMA5_USART0
@ -114,6 +166,7 @@ config SAMA5_HSMCI1
config SAMA5_HSMCI2
bool "High Speed Multimedia Card Interface 2 (HSMCI2)"
default n
depends on SAMA5_HAVE_HSMCI2
select ARCH_HAVE_SDIO
config SAMA5_SPI0
@ -130,6 +183,7 @@ config SAMA5_TC0
config SAMA5_TC1
bool "Timer Counter 1 (ch. 3, 4, 5) (TC1)"
depends on SAMA5_HAVE_TC1
default n
config SAMA5_PWM
@ -257,9 +311,6 @@ config SAMA5_PIOE_IRQ
endif # PIO_IRQ
config SAMA5_HAVE_LCDC
bool
if SAMA5_LCDC
menu "LCDC Configuration"
@ -303,14 +354,6 @@ endif # SAMA5_LCDC_FBFIXED
comment "Base layer configuration"
config SAMA5_LCDC_BASE_HEIGHT
int "Layer height (rows)"
default 480
config SAMA5_LCDC_BASE_WIDTH
int "Layer width (pixels)"
default 800
choice
prompt "Base layer rotation"
default SAMA5_LCDC_BASE_ROT0
@ -736,14 +779,6 @@ config SAMA5_LCDC_REGDEBUG
endmenu # LCDC configuration
endif # SAMA5_LCDC
config SAMA5_HAVE_GMAC
bool
default n
config SAMA5_HAVE_EMAC
bool
default n
if SAMA5_GMAC
menu "GMAC device driver options"

View File

@ -501,12 +501,12 @@
/* LCD Controller Configuration Register 4 */
#define LCDC_LCDCFG4_RPF_SHIFT (0) /* Bits 0-8: Number of Active Row Per Frame */
#define LCDC_LCDCFG4_RPF_MASK (0x1ff << LCDC_LCDCFG4_RPF_SHIFT)
# define LCDC_LCDCFG4_RPF(n) ((uint32_t)(n) << LCDC_LCDCFG4_RPF_SHIFT)
#define LCDC_LCDCFG4_PPL_SHIFT (16) /* Bits 16-24: Number of Pixels Per Line */
#define LCDC_LCDCFG4_PPL_MASK (0x1ff << LCDC_LCDCFG4_PPL_SHIFT)
#define LCDC_LCDCFG4_PPL_SHIFT (0) /* Bits 0-10: Number of Pixels Per Line */
#define LCDC_LCDCFG4_PPL_MASK (0x7ff << LCDC_LCDCFG4_PPL_SHIFT)
# define LCDC_LCDCFG4_PPL(n) ((uint32_t)(n) << LCDC_LCDCFG4_PPL_SHIFT)
#define LCDC_LCDCFG4_RPF_SHIFT (16) /* Bits 16-26: Number of Active Row Per Frame */
#define LCDC_LCDCFG4_RPF_MASK (0x7ff << LCDC_LCDCFG4_RPF_SHIFT)
# define LCDC_LCDCFG4_RPF(n) ((uint32_t)(n) << LCDC_LCDCFG4_RPF_SHIFT)
/* LCD Controller Configuration Register 5 */
@ -672,15 +672,15 @@
/* Base Configuration register 2 (32-bit value) */
/* Base Configuration register 3 */
#define LCDC_BASECFG3_RDEF_SHIFT (0) /* Bits 0-7: R Default */
#define LCDC_BASECFG3_RDEF_MASK (0xff << LCDC_BASECFG3_RDEF_SHIFT)
# define LCDC_BASECFG3_RDEF(n) ((uint32_t)(n) << LCDC_BASECFG3_RDEF_SHIFT)
#define LCDC_BASECFG3_BDEF_SHIFT (0) /* Bits 0-7: B Default */
#define LCDC_BASECFG3_BDEF_MASK (0xff << LCDC_BASECFG3_BDEF_SHIFT)
# define LCDC_BASECFG3_BDEF(n) ((uint32_t)(n) << LCDC_BASECFG3_BDEF_SHIFT)
#define LCDC_BASECFG3_GDEF_SHIFT (8) /* Bits 8-15: G Default */
#define LCDC_BASECFG3_GDEF_MASK (0xff << LCDC_BASECFG3_GDEF_SHIFT)
# define LCDC_BASECFG3_GDEF(n) ((uint32_t)(n) << LCDC_BASECFG3_GDEF_SHIFT)
#define LCDC_BASECFG3_BDEF_SHIFT (16) /* Bits 16-23: B Default */
#define LCDC_BASECFG3_BDEF_MASK (0xff << LCDC_BASECFG3_BDEF_SHIFT)
# define LCDC_BASECFG3_BDEF(n) ((uint32_t)(n) << LCDC_BASECFG3_BDEF_SHIFT)
#define LCDC_BASECFG3_RDEF_SHIFT (16) /* Bits 16-23: R Default */
#define LCDC_BASECFG3_RDEF_MASK (0xff << LCDC_BASECFG3_RDEF_SHIFT)
# define LCDC_BASECFG3_RDEF(n) ((uint32_t)(n) << LCDC_BASECFG3_RDEF_SHIFT)
/* Base Configuration register 4 */
@ -812,39 +812,39 @@
/* Overlay 1 Configuration 6 Register */
#define LCDC_OVR1CFG6_RDEF_SHIFT (0) /* Bits 0-7: R Default */
#define LCDC_OVR1CFG6_RDEF_MASK (0xff << LCDC_OVR1CFG6_RDEF_SHIFT)
# define LCDC_OVR1CFG6_RDEF(n) ((uint32_t)(n) << LCDC_OVR1CFG6_RDEF_SHIFT)
#define LCDC_OVR1CFG6_BDEF_SHIFT (0) /* Bits 0-7: B Default */
#define LCDC_OVR1CFG6_BDEF_MASK (0xff << LCDC_OVR1CFG6_BDEF_SHIFT)
# define LCDC_OVR1CFG6_BDEF(n) ((uint32_t)(n) << LCDC_OVR1CFG6_BDEF_SHIFT)
#define LCDC_OVR1CFG6_GDEF_SHIFT (8) /* Bits 8-15: G Default */
#define LCDC_OVR1CFG6_GDEF_MASK (0xff << LCDC_OVR1CFG6_GDEF_SHIFT)
# define LCDC_OVR1CFG6_GDEF(n) ((uint32_t)(n) << LCDC_OVR1CFG6_GDEF_SHIFT)
#define LCDC_OVR1CFG6_BDEF_SHIFT (16) /* Bits 16-23: B Default */
#define LCDC_OVR1CFG6_BDEF_MASK (0xff << LCDC_OVR1CFG6_BDEF_SHIFT)
# define LCDC_OVR1CFG6_BDEF(n) ((uint32_t)(n) << LCDC_OVR1CFG6_BDEF_SHIFT)
#define LCDC_OVR1CFG6_RDEF_SHIFT (16) /* Bits 16-23: R Default */
#define LCDC_OVR1CFG6_RDEF_MASK (0xff << LCDC_OVR1CFG6_RDEF_SHIFT)
# define LCDC_OVR1CFG6_RDEF(n) ((uint32_t)(n) << LCDC_OVR1CFG6_RDEF_SHIFT)
/* Overlay 1 Configuration 7 Register */
#define LCDC_OVR1CFG7_RKEY_SHIFT (0) /* Bits 0-7: R Color Component Chroma Key */
#define LCDC_OVR1CFG7_RKEY_MASK (0xff << LCDC_OVR1CFG7_RKEY_SHIFT)
# define LCDC_OVR1CFG7_RKEY(n) ((uint32_t)(n) << LCDC_OVR1CFG7_RKEY_SHIFT)
#define LCDC_OVR1CFG7_BKEY_SHIFT (0) /* Bits 0-7: B Color Component Chroma Key */
#define LCDC_OVR1CFG7_BKEY_MASK (0xff << LCDC_OVR1CFG7_BKEY_SHIFT)
# define LCDC_OVR1CFG7_BKEY(n) ((uint32_t)(n) << LCDC_OVR1CFG7_BKEY_SHIFT)
#define LCDC_OVR1CFG7_GKEY_SHIFT (8) /* Bits 8-15: G Color Component Chroma Key */
#define LCDC_OVR1CFG7_GKEY_MASK (0xff << LCDC_OVR1CFG7_GKEY_SHIFT)
# define LCDC_OVR1CFG7_GKEY(n) ((uint32_t)(n) << LCDC_OVR1CFG7_GKEY_SHIFT)
#define LCDC_OVR1CFG7_BKEY_SHIFT (16) /* Bits 16-23: B Color Component Chroma Key */
#define LCDC_OVR1CFG7_BKEY_MASK (0xff << LCDC_OVR1CFG7_BKEY_SHIFT)
# define LCDC_OVR1CFG7_BKEY(n) ((uint32_t)(n) << LCDC_OVR1CFG7_BKEY_SHIFT)
#define LCDC_OVR1CFG7_RKEY_SHIFT (16) /* Bits 16-23: R Color Component Chroma Key */
#define LCDC_OVR1CFG7_RKEY_MASK (0xff << LCDC_OVR1CFG7_RKEY_SHIFT)
# define LCDC_OVR1CFG7_RKEY(n) ((uint32_t)(n) << LCDC_OVR1CFG7_RKEY_SHIFT)
/* Overlay 1 Configuration 8 Register */
#define LCDC_OVR1CFG8_RMASK_SHIFT (0) /* Bits 0-7: R Color Component Chroma Key Mask */
#define LCDC_OVR1CFG8_RMASK_MASK (0xff << LCDC_OVR1CFG8_RMASK_SHIFT)
# define LCDC_OVR1CFG8_RMASK(n) ((uint32_t)(n) << LCDC_OVR1CFG8_RMASK_SHIFT)
#define LCDC_OVR1CFG8_BMASK_SHIFT (0) /* Bits 0-7: B Color Component Chroma Key Mask */
#define LCDC_OVR1CFG8_BMASK_MASK (0xff << LCDC_OVR1CFG8_BMASK_SHIFT)
# define LCDC_OVR1CFG8_BMASK(n) ((uint32_t)(n) << LCDC_OVR1CFG8_BMASK_SHIFT)
#define LCDC_OVR1CFG8_GMASK_SHIFT (8) /* Bits 8-15: G Color Component Chroma Key Mask */
#define LCDC_OVR1CFG8_GMASK_MASK (0xff << LCDC_OVR1CFG8_GMASK_SHIFT)
# define LCDC_OVR1CFG8_GMASK(n) ((uint32_t)(n) << LCDC_OVR1CFG8_GMASK_SHIFT)
#define LCDC_OVR1CFG8_BMASK_SHIFT (16) /* Bits 16-23: B Color Component Chroma Key Mask */
#define LCDC_OVR1CFG8_BMASK_MASK (0xff << LCDC_OVR1CFG8_BMASK_SHIFT)
# define LCDC_OVR1CFG8_BMASK(n) ((uint32_t)(n) << LCDC_OVR1CFG8_BMASK_SHIFT)
#define LCDC_OVR1CFG8_RMASK_SHIFT (16) /* Bits 16-23: R Color Component Chroma Key Mask */
#define LCDC_OVR1CFG8_RMASK_MASK (0xff << LCDC_OVR1CFG8_RMASK_SHIFT)
# define LCDC_OVR1CFG8_RMASK(n) ((uint32_t)(n) << LCDC_OVR1CFG8_RMASK_SHIFT)
/* Overlay 1 Configuration 9 Register */
@ -968,39 +968,39 @@
/* Overlay 2 Configuration 6 Register */
#define LCDC_OVR2CFG6_RDEF_SHIFT (0) /* Bits 0-7: R Default */
#define LCDC_OVR2CFG6_RDEF_MASK (0xff << LCDC_OVR2CFG6_RDEF_SHIFT)
# define LCDC_OVR2CFG6_RDEF(n) ((uint32_t)(n) << LCDC_OVR2CFG6_RDEF_SHIFT)
#define LCDC_OVR2CFG6_BDEF_SHIFT (0) /* Bits 0-7: B Default */
#define LCDC_OVR2CFG6_BDEF_MASK (0xff << LCDC_OVR2CFG6_BDEF_SHIFT)
# define LCDC_OVR2CFG6_BDEF(n) ((uint32_t)(n) << LCDC_OVR2CFG6_BDEF_SHIFT)
#define LCDC_OVR2CFG6_GDEF_SHIFT (8) /* Bits 8-15: G Default */
#define LCDC_OVR2CFG6_GDEF_MASK (0xff << LCDC_OVR2CFG6_GDEF_SHIFT)
# define LCDC_OVR2CFG6_GDEF(n) ((uint32_t)(n) << LCDC_OVR2CFG6_GDEF_SHIFT)
#define LCDC_OVR2CFG6_BDEF_SHIFT (16) /* Bits 16-23: B Default */
#define LCDC_OVR2CFG6_BDEF_MASK (0xff << LCDC_OVR2CFG6_BDEF_SHIFT)
# define LCDC_OVR2CFG6_BDEF(n) ((uint32_t)(n) << LCDC_OVR2CFG6_BDEF_SHIFT)
#define LCDC_OVR2CFG6_RDEF_SHIFT (16) /* Bits 16-23: R Default */
#define LCDC_OVR2CFG6_RDEF_MASK (0xff << LCDC_OVR2CFG6_RDEF_SHIFT)
# define LCDC_OVR2CFG6_RDEF(n) ((uint32_t)(n) << LCDC_OVR2CFG6_RDEF_SHIFT)
/* Overlay 2 Configuration 7 Register */
#define LCDC_OVR2CFG7_RKEY_SHIFT (0) /* Bits 0-7: R Color Component Chroma Key */
#define LCDC_OVR2CFG7_RKEY_MASK (0xff << LCDC_OVR2CFG7_RKEY_SHIFT)
# define LCDC_OVR2CFG7_RKEY(n) ((uint32_t)(n) << LCDC_OVR2CFG7_RKEY_SHIFT)
#define LCDC_OVR2CFG7_BKEY_SHIFT (0) /* Bits 0-7: B Color Component Chroma Key */
#define LCDC_OVR2CFG7_BKEY_MASK (0xff << LCDC_OVR2CFG7_BKEY_SHIFT)
# define LCDC_OVR2CFG7_BKEY(n) ((uint32_t)(n) << LCDC_OVR2CFG7_BKEY_SHIFT)
#define LCDC_OVR2CFG7_GKEY_SHIFT (8) /* Bits 8-15: G Color Component Chroma Key */
#define LCDC_OVR2CFG7_GKEY_MASK (0xff << LCDC_OVR2CFG7_GKEY_SHIFT)
# define LCDC_OVR2CFG7_GKEY(n) ((uint32_t)(n) << LCDC_OVR2CFG7_GKEY_SHIFT)
#define LCDC_OVR2CFG7_BKEY_SHIFT (16) /* Bits 16-23: B Color Component Chroma Key */
#define LCDC_OVR2CFG7_BKEY_MASK (0xff << LCDC_OVR2CFG7_BKEY_SHIFT)
# define LCDC_OVR2CFG7_BKEY(n) ((uint32_t)(n) << LCDC_OVR2CFG7_BKEY_SHIFT)
#define LCDC_OVR2CFG7_RKEY_SHIFT (16) /* Bits 16-23: R Color Component Chroma Key */
#define LCDC_OVR2CFG7_RKEY_MASK (0xff << LCDC_OVR2CFG7_RKEY_SHIFT)
# define LCDC_OVR2CFG7_RKEY(n) ((uint32_t)(n) << LCDC_OVR2CFG7_RKEY_SHIFT)
/* Overlay 2 Configuration 8 Register */
#define LCDC_OVR2CFG8_RMASK_SHIFT (0) /* Bits 0-7: R Color Component Chroma Key Mask */
#define LCDC_OVR2CFG8_RMASK_MASK (0xff << LCDC_OVR2CFG8_RMASK_SHIFT)
# define LCDC_OVR2CFG8_RMASK(n) ((uint32_t)(n) << LCDC_OVR2CFG8_RMASK_SHIFT)
#define LCDC_OVR2CFG8_BMASK_SHIFT (0) /* Bits 0-7: B Color Component Chroma Key Mask */
#define LCDC_OVR2CFG8_BMASK_MASK (0xff << LCDC_OVR2CFG8_BMASK_SHIFT)
# define LCDC_OVR2CFG8_BMASK(n) ((uint32_t)(n) << LCDC_OVR2CFG8_BMASK_SHIFT)
#define LCDC_OVR2CFG8_GMASK_SHIFT (8) /* Bits 8-15: G Color Component Chroma Key Mask */
#define LCDC_OVR2CFG8_GMASK_MASK (0xff << LCDC_OVR2CFG8_GMASK_SHIFT)
# define LCDC_OVR2CFG8_GMASK(n) ((uint32_t)(n) << LCDC_OVR2CFG8_GMASK_SHIFT)
#define LCDC_OVR2CFG8_BMASK_SHIFT (16) /* Bits 16-23: B Color Component Chroma Key Mask */
#define LCDC_OVR2CFG8_BMASK_MASK (0xff << LCDC_OVR2CFG8_BMASK_SHIFT)
# define LCDC_OVR2CFG8_BMASK(n) ((uint32_t)(n) << LCDC_OVR2CFG8_BMASK_SHIFT)
#define LCDC_OVR2CFG8_RMASK_SHIFT (16) /* Bits 16-23: R Color Component Chroma Key Mask */
#define LCDC_OVR2CFG8_RMASK_MASK (0xff << LCDC_OVR2CFG8_RMASK_SHIFT)
# define LCDC_OVR2CFG8_RMASK(n) ((uint32_t)(n) << LCDC_OVR2CFG8_RMASK_SHIFT)
/* Overlay 2 Configuration 9 Register */
@ -1176,39 +1176,39 @@
/* High-End Overlay Configuration Register 9 */
#define LCDC_HEOCFG9_RDEF_SHIFT (0) /* Bits 0-7: R Default */
#define LCDC_HEOCFG9_RDEF_MASK (0xff << LCDC_HEOCFG9_RDEF_SHIFT)
# define LCDC_HEOCFG9_RDEF(n) ((uint32_t)(n) << LCDC_HEOCFG9_RDEF_SHIFT)
#define LCDC_HEOCFG9_BDEF_SHIFT (0) /* Bits 0-7: B Default */
#define LCDC_HEOCFG9_BDEF_MASK (0xff << LCDC_HEOCFG9_BDEF_SHIFT)
# define LCDC_HEOCFG9_BDEF(n) ((uint32_t)(n) << LCDC_HEOCFG9_BDEF_SHIFT)
#define LCDC_HEOCFG9_GDEF_SHIFT (8) /* Bits 8-15: G Default */
#define LCDC_HEOCFG9_GDEF_MASK (0xff << LCDC_HEOCFG9_GDEF_SHIFT)
# define LCDC_HEOCFG9_GDEF(n) ((uint32_t)(n) << LCDC_HEOCFG9_GDEF_SHIFT)
#define LCDC_HEOCFG9_BDEF_SHIFT (16) /* Bits 16-23: B Default */
#define LCDC_HEOCFG9_BDEF_MASK (0xff << LCDC_HEOCFG9_BDEF_SHIFT)
# define LCDC_HEOCFG9_BDEF(n) ((uint32_t)(n) << LCDC_HEOCFG9_BDEF_SHIFT)
#define LCDC_HEOCFG9_RDEF_SHIFT (16) /* Bits 16-23: R Default */
#define LCDC_HEOCFG9_RDEF_MASK (0xff << LCDC_HEOCFG9_RDEF_SHIFT)
# define LCDC_HEOCFG9_RDEF(n) ((uint32_t)(n) << LCDC_HEOCFG9_RDEF_SHIFT)
/* High-End Overlay Configuration Register 10 */
#define LCDC_HEOCFG10_RKEY_SHIFT (0) /* Bits 0-7: R Color Component Chroma Key */
#define LCDC_HEOCFG10_RKEY_MASK (0xff << LCDC_HEOCFG10_RKEY_SHIFT)
# define LCDC_HEOCFG10_RKEY(n) ((uint32_t)(n) << LCDC_HEOCFG10_RKEY_SHIFT)
#define LCDC_HEOCFG10_BKEY_SHIFT (0) /* Bits 0-7: B Color Component Chroma Key */
#define LCDC_HEOCFG10_BKEY_MASK (0xff << LCDC_HEOCFG10_BKEY_SHIFT)
# define LCDC_HEOCFG10_BKEY(n) ((uint32_t)(n) << LCDC_HEOCFG10_BKEY_SHIFT)
#define LCDC_HEOCFG10_GKEY_SHIFT (8) /* Bits 8-15: G Color Component Chroma Key */
#define LCDC_HEOCFG10_GKEY_MASK (0xff << LCDC_HEOCFG10_GKEY_SHIFT)
# define LCDC_HEOCFG10_GKEY(n) ((uint32_t)(n) << LCDC_HEOCFG10_GKEY_SHIFT)
#define LCDC_HEOCFG10_BKEY_SHIFT (16) /* Bits 16-23: B Color Component Chroma Key */
#define LCDC_HEOCFG10_BKEY_MASK (0xff << LCDC_HEOCFG10_BKEY_SHIFT)
# define LCDC_HEOCFG10_BKEY(n) ((uint32_t)(n) << LCDC_HEOCFG10_BKEY_SHIFT)
#define LCDC_HEOCFG10_RKEY_SHIFT (16) /* Bits 16-23: R Color Component Chroma Key */
#define LCDC_HEOCFG10_RKEY_MASK (0xff << LCDC_HEOCFG10_RKEY_SHIFT)
# define LCDC_HEOCFG10_RKEY(n) ((uint32_t)(n) << LCDC_HEOCFG10_RKEY_SHIFT)
/* High-End Overlay Configuration Register 11 */
#define LCDC_HEOCFG11_RMASK_SHIFT (0) /* Bits 0-7: R Color Component Chroma Key Mask */
#define LCDC_HEOCFG11_RMASK_MASK (0xff << LCDC_HEOCFG11_RMASK_SHIFT)
# define LCDC_HEOCFG11_RMASK(n) ((uint32_t)(n) << LCDC_HEOCFG11_RMASK_SHIFT)
#define LCDC_HEOCFG11_BMASK_SHIFT (0) /* Bits 0-7: B Color Component Chroma Key Mask */
#define LCDC_HEOCFG11_BMASK_MASK (0xff << LCDC_HEOCFG11_BMASK_SHIFT)
# define LCDC_HEOCFG11_BMASK(n) ((uint32_t)(n) << LCDC_HEOCFG11_BMASK_SHIFT)
#define LCDC_HEOCFG11_GMASK_SHIFT (8) /* Bits 8-15: G Color Component Chroma Key Mask */
#define LCDC_HEOCFG11_GMASK_MASK (0xff << LCDC_HEOCFG11_GMASK_SHIFT)
# define LCDC_HEOCFG11_GMASK(n) ((uint32_t)(n) << LCDC_HEOCFG11_GMASK_SHIFT)
#define LCDC_HEOCFG11_BMASK_SHIFT (16) /* Bits 16-23: B Color Component Chroma Key Mask */
#define LCDC_HEOCFG11_BMASK_MASK (0xff << LCDC_HEOCFG11_BMASK_SHIFT)
# define LCDC_HEOCFG11_BMASK(n) ((uint32_t)(n) << LCDC_HEOCFG11_BMASK_SHIFT)
#define LCDC_HEOCFG11_RMASK_SHIFT (16) /* Bits 16-23: R Color Component Chroma Key Mask */
#define LCDC_HEOCFG11_RMASK_MASK (0xff << LCDC_HEOCFG11_RMASK_SHIFT)
# define LCDC_HEOCFG11_RMASK(n) ((uint32_t)(n) << LCDC_HEOCFG11_RMASK_SHIFT)
/* High-End Overlay Configuration Register 12 */
@ -1653,39 +1653,39 @@
/* Hardware Cursor Configuration 6 Register */
#define LCDC_HCRCFG6_RDEF_SHIFT (0) /* Bits 0-7: R Default */
#define LCDC_HCRCFG6_RDEF_MASK (0xff << LCDC_HCRCFG6_RDEF_SHIFT)
# define LCDC_HCRCFG6_RDEF(n) ((uint32_t)(n) << LCDC_HCRCFG6_RDEF_SHIFT)
#define LCDC_HCRCFG6_BDEF_SHIFT (0) /* Bits 0-7: B Default */
#define LCDC_HCRCFG6_BDEF_MASK (0xff << LCDC_HCRCFG6_BDEF_SHIFT)
# define LCDC_HCRCFG6_BDEF(n) ((uint32_t)(n) << LCDC_HCRCFG6_BDEF_SHIFT)
#define LCDC_HCRCFG6_GDEF_SHIFT (8) /* Bits 8-15: G Default */
#define LCDC_HCRCFG6_GDEF_MASK (0xff << LCDC_HCRCFG6_GDEF_SHIFT)
# define LCDC_HCRCFG6_GDEF(n) ((uint32_t)(n) << LCDC_HCRCFG6_GDEF_SHIFT)
#define LCDC_HCRCFG6_BDEF_SHIFT (16) /* Bits 16-23: B Default */
#define LCDC_HCRCFG6_BDEF_MASK (0xff << LCDC_HCRCFG6_BDEF_SHIFT)
# define LCDC_HCRCFG6_BDEF(n) ((uint32_t)(n) << LCDC_HCRCFG6_BDEF_SHIFT)
#define LCDC_HCRCFG6_RDEF_SHIFT (16) /* Bits 16-23: R Default */
#define LCDC_HCRCFG6_RDEF_MASK (0xff << LCDC_HCRCFG6_RDEF_SHIFT)
# define LCDC_HCRCFG6_RDEF(n) ((uint32_t)(n) << LCDC_HCRCFG6_RDEF_SHIFT)
/* Hardware Cursor Configuration 7 Register */
#define LCDC_HCRCFG7_RKEY_SHIFT (0) /* Bits 0-7: R Color Component Chroma Key */
#define LCDC_HCRCFG7_RKEY_MASK (0xff << LCDC_HCRCFG7_RKEY_SHIFT)
# define LCDC_HCRCFG7_RKEY(n) ((uint32_t)(n) << LCDC_HCRCFG7_RKEY_SHIFT)
#define LCDC_HCRCFG7_BKEY_SHIFT (0) /* Bits 0-7: B Color Component Chroma Key */
#define LCDC_HCRCFG7_BKEY_MASK (0xff << LCDC_HCRCFG7_BKEY_SHIFT)
# define LCDC_HCRCFG7_BKEY(n) ((uint32_t)(n) << LCDC_HCRCFG7_BKEY_SHIFT)
#define LCDC_HCRCFG7_GKEY_SHIFT (8) /* Bits 8-15: G Color Component Chroma Key */
#define LCDC_HCRCFG7_GKEY_MASK (0xff << LCDC_HCRCFG7_GKEY_SHIFT)
# define LCDC_HCRCFG7_GKEY(n) ((uint32_t)(n) << LCDC_HCRCFG7_GKEY_SHIFT)
#define LCDC_HCRCFG7_BKEY_SHIFT (16) /* Bits 16-23: B Color Component Chroma Key */
#define LCDC_HCRCFG7_BKEY_MASK (0xff << LCDC_HCRCFG7_BKEY_SHIFT)
# define LCDC_HCRCFG7_BKEY(n) ((uint32_t)(n) << LCDC_HCRCFG7_BKEY_SHIFT)
#define LCDC_HCRCFG7_RKEY_SHIFT (16) /* Bits 16-23: R Color Component Chroma Key */
#define LCDC_HCRCFG7_RKEY_MASK (0xff << LCDC_HCRCFG7_RKEY_SHIFT)
# define LCDC_HCRCFG7_RKEY(n) ((uint32_t)(n) << LCDC_HCRCFG7_RKEY_SHIFT)
/* Hardware Cursor Configuration 8 Register */
#define LCDC_HCRCFG8_RMASK_SHIFT (0) /* Bits 0-7: R Color Component Chroma Key Mask */
#define LCDC_HCRCFG8_RMASK_MASK (0xff << LCDC_HCRCFG8_RMASK_SHIFT)
# define LCDC_HCRCFG8_RMASK(n) ((uint32_t)(n) << LCDC_HCRCFG8_RMASK_SHIFT)
#define LCDC_HCRCFG8_BMASK_SHIFT (0) /* Bits 0-7: B Color Component Chroma Key Mask */
#define LCDC_HCRCFG8_BMASK_MASK (0xff << LCDC_HCRCFG8_BMASK_SHIFT)
# define LCDC_HCRCFG8_BMASK(n) ((uint32_t)(n) << LCDC_HCRCFG8_BMASK_SHIFT)
#define LCDC_HCRCFG8_GMASK_SHIFT (8) /* Bits 8-15: G Color Component Chroma Key Mask */
#define LCDC_HCRCFG8_GMASK_MASK (0xff << LCDC_HCRCFG8_GMASK_SHIFT)
# define LCDC_HCRCFG8_GMASK(n) ((uint32_t)(n) << LCDC_HCRCFG8_GMASK_SHIFT)
#define LCDC_HCRCFG8_BMASK_SHIFT (16) /* Bits 16-23: B Color Component Chroma Key Mask */
#define LCDC_HCRCFG8_BMASK_MASK (0xff << LCDC_HCRCFG8_BMASK_SHIFT)
# define LCDC_HCRCFG8_BMASK(n) ((uint32_t)(n) << LCDC_HCRCFG8_BMASK_SHIFT)
#define LCDC_HCRCFG8_RMASK_SHIFT (16) /* Bits 16-23: R Color Component Chroma Key Mask */
#define LCDC_HCRCFG8_RMASK_MASK (0xff << LCDC_HCRCFG8_RMASK_SHIFT)
# define LCDC_HCRCFG8_RMASK(n) ((uint32_t)(n) << LCDC_HCRCFG8_RMASK_SHIFT)
/* Hardware Cursor Configuration 9 Register */

View File

@ -301,30 +301,38 @@
/* Framebuffer sizes in bytes */
#ifndef CONFIG_SAMA5_LCDC_BASE_WIDTH
# error CONFIG_SAMA5_LCDC_BASE_WIDTH must be defined
#ifndef BOARD_LCD_WIDTH
# error BOARD_LCD_WIDTH must be defined in the board.h header file
#endif
#ifndef CONFIG_SAMA5_LCDC_BASE_HEIGHT
# error CONFIG_SAMA5_LCDC_BASE_HEIGHT must be defined
#ifndef BOARD_LCD_HEIGHT
# error BOARD_LCD_HEIGHT must be defined in the board.h header file
#endif
#if SAMA5_LCDC_BASE_BPP == 16
# define SAMA5_BASE_STRIDE ((CONFIG_SAMA5_LCDC_BASE_WIDTH * 16 + 7) / 8)
# define SAMA5_BASE_STRIDE ((BOARD_LCD_WIDTH * 16 + 7) / 8)
#elif SAMA5_LCDC_BASE_BPP == 24
# define SAMA5_BASE_STRIDE ((CONFIG_SAMA5_LCDC_BASE_WIDTH * 24 + 7) / 8)
# define SAMA5_BASE_STRIDE ((BOARD_LCD_WIDTH * 24 + 7) / 8)
#elif SAMA5_LCDC_BASE_BPP == 32
# define SAMA5_BASE_STRIDE ((CONFIG_SAMA5_LCDC_BASE_WIDTH * 32 + 7) / 8)
# define SAMA5_BASE_STRIDE ((BOARD_LCD_WIDTH * 32 + 7) / 8)
#endif
#define SAMA5_BASE_FBSIZE (SAMA5_BASE_STRIDE * CONFIG_SAMA5_LCDC_BASE_HEIGHT)
#define SAMA5_BASE_FBSIZE (SAMA5_BASE_STRIDE * BOARD_LCD_HEIGHT)
#ifndef CONFIG_SAMA5_LCDC_OVR1_MAXWIDTH
# define CONFIG_SAMA5_LCDC_OVR1_MAXWIDTH CONFIG_SAMA5_LCDC_BASE_WIDTH
# define CONFIG_SAMA5_LCDC_OVR1_MAXWIDTH BOARD_LCD_WIDTH
#endif
#if CONFIG_SAMA5_LCDC_OVR1_MAXWIDTH > BOARD_LCD_WIDTH
# error Width of overlay 1 exceeds the width of the display
#endif
#ifndef CONFIG_SAMA5_LCDC_OVR1_MAXHEIGHT
# define CONFIG_SAMA5_LCDC_OVR1_MAXHEIGHT CONFIG_SAMA5_LCDC_BASE_HEIGHT
# define CONFIG_SAMA5_LCDC_OVR1_MAXHEIGHT BOARD_LCD_HEIGHT
#endif
#if CONFIG_SAMA5_LCDC_OVR1_MAXHEIGHT > BOARD_LCD_HEIGHT
# error Height of overlay 1 exceeds the height of the display
#endif
#if SAMA5_LCDC_OVR1_BPP == 16
@ -338,11 +346,19 @@
#define SAMA5_OVR1_FBSIZE (SAMA5_OVR1_STRIDE * CONFIG_SAMA5_LCDC_OVR1_MAXHEIGHT)
#ifndef CONFIG_SAMA5_LCDC_OVR2_MAXWIDTH
# define CONFIG_SAMA5_LCDC_OVR2_MAXWIDTH CONFIG_SAMA5_LCDC_BASE_WIDTH
# define CONFIG_SAMA5_LCDC_OVR2_MAXWIDTH BOARD_LCD_WIDTH
#endif
#if CONFIG_SAMA5_LCDC_OVR2_MAXWIDTH > BOARD_LCD_WIDTH
# error Width of overlay 2 exceeds the width of the display
#endif
#ifndef CONFIG_SAMA5_LCDC_OVR2_MAXHEIGHT
# define CONFIG_SAMA5_LCDC_OVR2_MAXHEIGHT CONFIG_SAMA5_LCDC_BASE_HEIGHT
# define CONFIG_SAMA5_LCDC_OVR2_MAXHEIGHT BOARD_LCD_HEIGHT
#endif
#if CONFIG_SAMA5_LCDC_OVR2_MAXHEIGHT > BOARD_LCD_HEIGHT
# error Height of overlay 2 exceeds the height of the display
#endif
#if SAMA5_LCDC_OVR2_BPP == 16
@ -356,11 +372,19 @@
#define SAMA5_OVR2_FBSIZE (SAMA5_OVR2_STRIDE * CONFIG_SAMA5_LCDC_OVR2_MAXHEIGHT)
#ifndef CONFIG_SAMA5_LCDC_HEO_MAXWIDTH
# define CONFIG_SAMA5_LCDC_HEO_MAXWIDTH CONFIG_SAMA5_LCDC_BASE_WIDTH
# define CONFIG_SAMA5_LCDC_HEO_MAXWIDTH BOARD_LCD_WIDTH
#endif
#if CONFIG_SAMA5_LCDC_HEO_MAXWIDTH > BOARD_LCD_WIDTH
# error Width of HEO exceeds the width of the display
#endif
#ifndef CONFIG_SAMA5_LCDC_HEO_MAXHEIGHT
# define CONFIG_SAMA5_LCDC_HEO_MAXHEIGHT CONFIG_SAMA5_LCDC_BASE_HEIGHT
# define CONFIG_SAMA5_LCDC_HEO_MAXHEIGHT BOARD_LCD_HEIGHT
#endif
#if CONFIG_SAMA5_LCDC_HEO_MAXHEIGHT > BOARD_LCD_HEIGHT
# error Height of HEO exceeds the height of the display
#endif
#if SAMA5_LCDC_HEO_BPP == 16
@ -374,11 +398,19 @@
#define SAMA5_HEO_FBSIZE (SAMA5_HEO_STRIDE * CONFIG_SAMA5_LCDC_HEO_MAXHEIGHT)
#ifndef CONFIG_SAMA5_LCDC_HCR_MAXWIDTH
# define CONFIG_SAMA5_LCDC_HCR_MAXWIDTH CONFIG_SAMA5_LCDC_BASE_WIDTH
# define CONFIG_SAMA5_LCDC_HCR_MAXWIDTH BOARD_LCD_WIDTH
#endif
#if CONFIG_SAMA5_LCDC_HCR_MAXWIDTH > BOARD_LCD_WIDTH
# error Width of the hardware cursor exceeds the width of the display
#endif
#ifndef CONFIG_SAMA5_LCDC_HCR_MAXHEIGHT
# define CONFIG_SAMA5_LCDC_HCR_MAXHEIGHT CONFIG_SAMA5_LCDC_BASE_HEIGHT
# define CONFIG_SAMA5_LCDC_HCR_MAXHEIGHT BOARD_LCD_HEIGHT
#endif
#if CONFIG_SAMA5_LCDC_HCR_MAXHEIGHT > BOARD_LCD_HEIGHT
# error Height of the hardware cursor exceeds the height of the display
#endif
#if SAMA5_LCDC_HCR_BPP == 16
@ -622,8 +654,8 @@ static void sam_show_hcr(void);
static const struct fb_videoinfo_s g_base_videoinfo =
{
.fmt = SAMA5_LCDC_BASE_COLOR_FMT,
.xres = CONFIG_SAMA5_LCDC_BASE_WIDTH,
.yres = CONFIG_SAMA5_LCDC_BASE_HEIGHT,
.xres = BOARD_LCD_WIDTH,
.yres = BOARD_LCD_HEIGHT,
.nplanes = 1,
};
@ -1163,14 +1195,14 @@ static void sam_setposition(int lid, uint32_t x, uint32_t y)
/* Clip the position so that the window lies on the physical display */
if (x + w >= CONFIG_SAMA5_LCDC_BASE_WIDTH)
if (x + w >= BOARD_LCD_WIDTH)
{
x = CONFIG_SAMA5_LCDC_BASE_WIDTH - w;
x = BOARD_LCD_WIDTH - w;
}
if (y + h >= CONFIG_SAMA5_LCDC_BASE_HEIGHT)
if (y + h >= BOARD_LCD_HEIGHT)
{
y = CONFIG_SAMA5_LCDC_BASE_HEIGHT - h;
y = BOARD_LCD_HEIGHT - h;
}
/* Set the new position of the layer */
@ -1450,7 +1482,7 @@ static void sam_base_disable(void)
* successfully disabled.
*/
while (sam_getreg(SAM_LCDC_BASECHSR & LCDC_BASECHSR_CH) != 0);
while ((sam_getreg(SAM_LCDC_BASECHSR) & LCDC_BASECHSR_CH) != 0);
}
/****************************************************************************
@ -1505,7 +1537,7 @@ static void sam_ovr1_disable(void)
* successfully disabled.
*/
while (sam_getreg(SAM_LCDC_OVR1CHSR & LCDC_OVR1CHSR_CH) != 0);
while ((sam_getreg(SAM_LCDC_OVR1CHSR) & LCDC_OVR1CHSR_CH) != 0);
}
/****************************************************************************
@ -1560,7 +1592,7 @@ static void sam_ovr2_disable(void)
* successfully disabled.
*/
while (sam_getreg(SAM_LCDC_OVR2CHSR & LCDC_OVR2CHSR_CH) != 0);
while ((sam_getreg(SAM_LCDC_OVR2CHSR) & LCDC_OVR2CHSR_CH) != 0);
}
/****************************************************************************
@ -1631,7 +1663,7 @@ static void sam_heo_disable(void)
* successfully disabled.
*/
while (sam_getreg(SAM_LCDC_HEOCHSR & LCDC_HEOCHSR_CH) != 0);
while ((sam_getreg(SAM_LCDC_HEOCHSR) & LCDC_HEOCHSR_CH) != 0);
}
/****************************************************************************
@ -1686,7 +1718,7 @@ static void sam_hcr_disable(void)
* successfully disabled.
*/
while (sam_getreg(SAM_LCDC_HCRCHSR & LCDC_HCRCHSR_CH) != 0);
while ((sam_getreg(SAM_LCDC_HCRCHSR) & LCDC_HCRCHSR_CH) != 0);
}
/****************************************************************************
@ -2002,40 +2034,41 @@ static void sam_lcd_enable(void)
/* 1. Configure LCD timing parameters, signal polarity and clock period. */
div = ((2 * BOARD_MCK_FREQUENCY) / BOARD_LCD_PIXELCLOCK) - 2;
regval = LCDC_LCDCFG0_CLKDIV(div) | LCDC_LCDCFG0_CGDISHCR |
LCDC_LCDCFG0_CGDISHEO | LCDC_LCDCFG0_CGDISOVR1 |
LCDC_LCDCFG0_CGDISOVR2 | LCDC_LCDCFG0_CGDISBASE |
LCDC_LCDCFG0_CLKPWMSEL | LCDC_LCDCFG0_CLKSEL |
LCDC_LCDCFG0_CLKPOL;
regval = LCDC_LCDCFG0_CLKPOL | LCDC_LCDCFG0_CLKSEL |
LCDC_LCDCFG0_CLKPWMSEL | LCDC_LCDCFG0_CGDISBASE |
LCDC_LCDCFG0_CGDISOVR1 | LCDC_LCDCFG0_CGDISOVR2 |
LCDC_LCDCFG0_CGDISHEO | LCDC_LCDCFG0_CGDISHCR |
LCDC_LCDCFG0_CLKDIV(div);
sam_putreg(SAM_LCDC_LCDCFG0, regval);
regval = LCDC_LCDCFG1_VSPW(BOARD_LCD_TIMING_VPW - 1) |
LCDC_LCDCFG1_HSPW(BOARD_LCD_TIMING_HPW - 1);
regval = LCDC_LCDCFG1_HSPW(BOARD_LCD_TIMING_HPW - 1) |
LCDC_LCDCFG1_VSPW(BOARD_LCD_TIMING_VPW - 1);
sam_putreg(SAM_LCDC_LCDCFG1, regval);
regval = LCDC_LCDCFG2_VBPW(BOARD_LCD_TIMING_VBP) |
LCDC_LCDCFG2_VFPW(BOARD_LCD_TIMING_VFP - 1);
regval = LCDC_LCDCFG2_VFPW(BOARD_LCD_TIMING_VFP - 1) |
LCDC_LCDCFG2_VBPW(BOARD_LCD_TIMING_VBP);
sam_putreg(SAM_LCDC_LCDCFG2, regval);
regval = LCDC_LCDCFG3_HBPW(BOARD_LCD_TIMING_HBP - 1) |
LCDC_LCDCFG3_HFPW(BOARD_LCD_TIMING_HFP - 1);
regval = LCDC_LCDCFG3_HFPW(BOARD_LCD_TIMING_HFP - 1) |
LCDC_LCDCFG3_HBPW(BOARD_LCD_TIMING_HBP - 1);
sam_putreg(SAM_LCDC_LCDCFG3, regval);
regval = LCDC_LCDCFG4_RPF(CONFIG_SAMA5_LCDC_BASE_HEIGHT - 1) |
LCDC_LCDCFG4_PPL(CONFIG_SAMA5_LCDC_BASE_WIDTH - 1);
regval = LCDC_LCDCFG4_PPL(BOARD_LCD_WIDTH - 1) |
LCDC_LCDCFG4_RPF(BOARD_LCD_HEIGHT - 1);
sam_putreg(SAM_LCDC_LCDCFG4, regval);
regval = LCDC_LCDCFG5_GUARDTIME(30) | LCDC_LCDCFG5_MODE_24BPP |
LCDC_LCDCFG5_DISPDLY | LCDC_LCDCFG5_VSPDLYS | LCDC_LCDCFG5_VSPOL |
LCDC_LCDCFG5_HSPOL;
regval = LCDC_LCDCFG5_HSPOL | LCDC_LCDCFG5_VSPOL |
LCDC_LCDCFG5_VSPDLYS | LCDC_LCDCFG5_DISPDLY |
LCDC_LCDCFG5_MODE_24BPP | LCDC_LCDCFG5_GUARDTIME(30);
sam_putreg(SAM_LCDC_LCDCFG5, regval);
regval = LCDC_LCDCFG6_PWMCVAL(0xf0) | LCDC_LCDCFG6_PWMPOL |
LCDC_LCDCFG6_PWMPS_DIV64;
regval = LCDC_LCDCFG6_PWMPS_DIV64 | LCDC_LCDCFG6_PWMPOL |
LCDC_LCDCFG6_PWMCVAL(CONFIG_SAMA5_LCDC_DEFBACKLIGHT);
sam_putreg(SAM_LCDC_LCDCFG6, regval);
/* 2. Enable the Pixel Clock by writing one to the CLKEN field of the
LCDC_LCDEN register. */
* LCDC_LCDEN register.
*/
sam_putreg(SAM_LCDC_LCDEN, LCDC_LCDEN_CLK);
@ -2253,14 +2286,14 @@ static void sam_show_layer(struct sam_layer_s *layer,
/* Windows position & size check */
if (dispx + dispw > CONFIG_SAMA5_LCDC_BASE_WIDTH)
if (dispx + dispw > BOARD_LCD_WIDTH)
{
dispw = CONFIG_SAMA5_LCDC_BASE_WIDTH - dispx;
dispw = BOARD_LCD_WIDTH - dispx;
}
if (dispy + disph > CONFIG_SAMA5_LCDC_BASE_HEIGHT)
if (dispy + disph > BOARD_LCD_HEIGHT)
{
disph = CONFIG_SAMA5_LCDC_BASE_HEIGHT - dispy;
disph = BOARD_LCD_HEIGHT - dispy;
}
if (dispw <= 0)
@ -2706,8 +2739,7 @@ static void sam_show_layer(struct sam_layer_s *layer,
static void sam_show_base(void)
{
sam_show_layer(&g_base.layer, 0, 0,
CONFIG_SAMA5_LCDC_BASE_WIDTH, CONFIG_SAMA5_LCDC_BASE_HEIGHT,
CONFIG_SAMA5_LCDC_BASE_WIDTH, CONFIG_SAMA5_LCDC_BASE_HEIGHT);
BOARD_LCD_WIDTH, BOARD_LCD_HEIGHT, BOARD_LCD_WIDTH, BOARD_LCD_HEIGHT);
}
/****************************************************************************
@ -2733,8 +2765,8 @@ static void sam_show_hcr(uint32_t x, uint32_t y)
/* And show the hardware cursor layer */
sam_show_layer(&g_hcr.layer,
(CONFIG_SAMA5_LCDC_BASE_WIDTH - CONFIG_SAMA5_LCDC_HCR_MAXWIDTH) / 2,
(CONFIG_SAMA5_LCDC_BASE_HEIGHT - CONFIG_SAMA5_LCDC_HCR_MAXHEIGHT) / 2,
(BOARD_LCD_WIDTH - CONFIG_SAMA5_LCDC_HCR_MAXWIDTH) / 2,
(BOARD_LCD_HEIGHT - CONFIG_SAMA5_LCDC_HCR_MAXHEIGHT) / 2,
CONFIG_SAMA5_LCDC_HCR_MAXWIDTH, CONFIG_SAMA5_LCDC_HCR_MAXHEIGHT,
CONFIG_SAMA5_LCDC_HCR_MAXWIDTH, CONFIG_SAMA5_LCDC_HCR_MAXHEIGHT);
}
@ -2914,14 +2946,47 @@ void fb_uninitialize(void)
void sam_lcdclear(nxgl_mxpixel_t color)
{
#if SAMA5_LCDC_BASE_BPP == 16
uint16_t *dest = (uint16_t*)g_base.layer.framebuffer;
int i;
gvdbg("Clearing display: BPP=16 color=%04x framebuffer=%08x size=%d\n",
color, g_base.layer.framebuffer, SAMA5_BASE_FBSIZE);
for (i = 0; i < SAMA5_BASE_FBSIZE; i += sizeof(uint16_t))
{
*dest++ = (uint16_t)color;
}
#elif SAMA5_LCDC_BASE_BPP == 24
uint8_t *dest = (uint8_t*)g_base.layer.framebuffer;
uint8_t r;
uint8_t g;
uint8_t b;
int i;
gvdbg("Clearing display: BPP=24 color=%06x framebuffer=%08x size=%d\n",
color, g_base.layer.framebuffer, SAMA5_BASE_FBSIZE);
b = color & 0xff;
g = (color >> 8) & 0xff;
r = (color >> 16) & 0xff;
for (i = 0; i < SAMA5_BASE_FBSIZE; i += 3*sizeof(uint8_t))
{
*dest++ = b;
*dest++ = r;
*dest++ = g;
}
#elif SAMA5_LCDC_BASE_BPP == 32
uint32_t *dest = (uint32_t*)g_base.layer.framebuffer;
int i;
gvdbg("Clearing display: color=%08x framebuffer=%08x size=%d\n",
gvdbg("Clearing display: BPP=32 color=%08x framebuffer=%08x size=%d\n",
color, g_base.layer.framebuffer, SAMA5_BASE_FBSIZE);
for (i = 0; i < SAMA5_BASE_FBSIZE; i += sizeof(uint32_t))
{
*dest++ = color;
*dest++ = (uint32_t)color;
}
#endif
}

View File

@ -124,7 +124,6 @@
#define BOARD_BLUE_BIT (1 << BOARD_BLUE)
#define BOARD_RED_BIT (1 << BOARD_RED)
/* These LEDs are not used by the board port unless CONFIG_ARCH_LEDS is
* defined. In that case, the usage by the board port is defined in
* include/board.h and src/sam_leds.c. The LEDs are used to encode OS-related

View File

@ -162,7 +162,7 @@ CONFIG_SAMA5_LCDC=y
# CONFIG_SAMA5_TRNG is not set
# CONFIG_SAMA5_ARM is not set
# CONFIG_SAMA5_FUSE is not set
# CONFIG_SAMA5_MPDDRC is not set
CONFIG_SAMA5_MPDDRC=y
# CONFIG_SAMA5_PIO_IRQ is not set
CONFIG_SAMA5_HAVE_LCDC=y
@ -171,7 +171,7 @@ CONFIG_SAMA5_HAVE_LCDC=y
#
CONFIG_SAMA5_LCDC_BACKLIGHT=y
CONFIG_SAMA5_LCDC_DEFBACKLIGHT=0xf0
CONFIG_SAMA5_LCDC_BACKCOLOR=0x0
CONFIG_SAMA5_LCDC_BACKCOLOR=0x007b68ee
CONFIG_SAMA5_LCDC_FBALLOCATED=y
# CONFIG_SAMA5_LCDC_FBFIXED is not set
# CONFIG_SAMA5_LCDC_FBPREALLOCATED is not set
@ -179,8 +179,6 @@ CONFIG_SAMA5_LCDC_FBALLOCATED=y
#
# Base layer configuration
#
CONFIG_SAMA5_LCDC_BASE_HEIGHT=480
CONFIG_SAMA5_LCDC_BASE_WIDTH=800
CONFIG_SAMA5_LCDC_BASE_ROT0=y
# CONFIG_SAMA5_LCDC_BASE_ROT90 is not set
# CONFIG_SAMA5_LCDC_BASE_ROT180 is not set
@ -205,6 +203,10 @@ CONFIG_SAMA5_HAVE_GMAC=y
#
# External Memory Configuration
#
CONFIG_SAMA5_DDRCS=y
CONFIG_SAMA5_DDRCS_SIZE=268435456
# CONFIG_SAMA5_DDRCS_LPDDR1 is not set
CONFIG_SAMA5_DDRCS_LPDDR2=y
CONFIG_SAMA5_EBICS0=y
CONFIG_SAMA5_EBICS0_SIZE=134217728
# CONFIG_SAMA5_EBICS0_SRAM is not set
@ -219,12 +221,14 @@ CONFIG_SAMA5_EBICS0_NOR=y
# CONFIG_SAMA5_EBICS2 is not set
# CONFIG_SAMA5_EBICS3 is not set
# CONFIG_SAMA5_BOOT_ISRAM is not set
# CONFIG_SAMA5_BOOT_SDRAM is not set
CONFIG_SAMA5_BOOT_CS0FLASH=y
#
# Heap Configuration
#
CONFIG_SAMA5_ISRAM_HEAP=y
CONFIG_SAMA5_DDRCS_HEAP=y
#
# Architecture Options
@ -288,6 +292,8 @@ CONFIG_ARCH_HAVE_IRQBUTTONS=y
#
# Board-Specific Options
#
CONFIG_SAMA5_MT47H128M16RT=y
# CONFIG_SAMA5_MT47H64M16HR is not set
#
# RTOS Features
@ -458,8 +464,8 @@ CONFIG_NX_DISABLE_2BPP=y
CONFIG_NX_DISABLE_4BPP=y
CONFIG_NX_DISABLE_8BPP=y
CONFIG_NX_DISABLE_16BPP=y
CONFIG_NX_DISABLE_24BPP=y
# CONFIG_NX_DISABLE_32BPP is not set
# CONFIG_NX_DISABLE_24BPP is not set
CONFIG_NX_DISABLE_32BPP=y
CONFIG_NX_PACKEDMSFIRST=y
#
@ -509,7 +515,7 @@ CONFIG_NXFONT_SERIF22X28B=y
#
# CONFIG_MM_MULTIHEAP is not set
# CONFIG_MM_SMALL is not set
CONFIG_MM_REGIONS=1
CONFIG_MM_REGIONS=2
# CONFIG_GRAN is not set
#