| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144 |
- /**
- * \file lidd.h
- *
- * \brief Definitions used for LIDD driver
- *
- * This file contains the LIDD Device Abstraction Layer API prototypes
- * and user interface macro definitions
- */
- /*
- * Copyright (C) 2010 Texas Instruments Incorporated - http://www.ti.com/
- */
- /*
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the
- * distribution.
- *
- * Neither the name of Texas Instruments Incorporated nor the names of
- * its contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- */
- #ifndef _LIDD_H_
- #define _LIDD_H_
- #include "hw_lcdc.h"
- #ifdef __cplusplus
- extern "C" {
- #endif
- /*******************************************************************************
- * MACRO DEFINTIONS
- ******************************************************************************/
- /* Disable/ enable LIDD Done interrupt */
- #define LIDD_DONE_INT_ENABLE (LCDC_LIDD_CTRL_DONE_INT_EN)
- #define LIDD_DONE_INT_DISABLE (0)
- /* Interrupt status definitions */
- #define LIDD_FRAME_DONE_INT_STAT LCDC_LCD_STAT_DONE
- #define LIDD_SYNC_LOST_INT_STAT LCDC_LCD_STAT_SYNC
- #define LIDD_ACBIAS_COUNT_INT_STAT LCDC_LCD_STAT_ABC
- #define LIDD_FIFO_UNDERFLOW_INT_STAT LCDC_LCD_STAT_FUF
- #define LIDD_PALETTE_LOADED_INT_STAT LCDC_LCD_STAT_PL
- #define LIDD_END_OF_FRAME0_INT_STAT LCDC_LCD_STAT_EOF0
- #define LIDD_END_OF_FRAME1_INT_STAT LCDC_LCD_STAT_EOF1
- /* LIDD DMA control */
- #define LIDD_DMA_ENABLE (LCDC_LIDD_CTRL_LIDD_DMA_EN)
- #define LIDD_DMA_DISABLE (0)
- /* LIDD CSn polarity control */
- #define LIDD_CS0_ACTIVE_LOW (0)
- #define LIDD_CS0_ACTIVE_HIGH (1 << LCDC_LIDD_CTRL_CS0_E0_POL_SHIFT)
- #define LIDD_CS1_ACTIVE_LOW (0)
- #define LIDD_CS1_ACTIVE_HIGH (1 << LCDC_LIDD_CTRL_CS1_E1_POL_SHIFT)
- /* LIDD Strobe polarity control */
- #define LIDD_WSTROBE_ACTIVE_LOW (0)
- #define LIDD_WSTROBE_ACTIVE_HIGH (1 << LCDC_LIDD_CTRL_WS_DIR_POL_SHIFT)
- #define LIDD_RSTROBE_ACTIVE_LOW (0)
- #define LIDD_RSTROBE_ACTIVE_HIGH (1 << LCDC_LIDD_CTRL_RS_EN_POL_SHIFT)
- /* LIDD ALE polarity control */
- #define LIDD_ALE_ACTIVE_LOW (0)
- #define LIDD_ALE_ACTIVE_HIGH (1 << LCDC_LIDD_CTRL_ALEPOL_SHIFT)
- /* LIDD Mode Selection */
- #define LIDD_MODE_SYNC_MPU68 (LCDC_LIDD_CTRL_LIDD_MODE_SEL_SYNC_MPU68 \
- << LCDC_LIDD_CTRL_LIDD_MODE_SEL_SHIFT)
- #define LIDD_MODE_ASYNC_MPU68 (LCDC_LIDD_CTRL_LIDD_MODE_SEL_ASYNC_MPU68 \
- << LCDC_LIDD_CTRL_LIDD_MODE_SEL_SHIFT)
- #define LIDD_MODE_SYNC_MPU80 (LCDC_LIDD_CTRL_LIDD_MODE_SEL_SYNC_MPU80 \
- << LCDC_LIDD_CTRL_LIDD_MODE_SEL_SHIFT)
- #define LIDD_MODE_ASYNC_MPU80 (LCDC_LIDD_CTRL_LIDD_MODE_SEL_ASYNC_MPU80 \
- << LCDC_LIDD_CTRL_LIDD_MODE_SEL_SHIFT)
- #define LIDD_MODE_HITACHI (LCDC_LIDD_CTRL_LIDD_MODE_SEL_HITACHI \
- << LCDC_LIDD_CTRL_LIDD_MODE_SEL_SHIFT)
- /* LIDD CS/Strobe/Enable Polarity control */
- #define LIDD_CS_STROBE_POLARITY(cs1, cs0, ws, rs, ale) ((unsigned int) \
- (cs1 | cs0 | ws | rs | ale))
- /* LIDD CSn Timing configuration */
- #define LIDD_CS_CONF(wsu, ws, wh, rsu, rs, rh, ta) ((unsigned int) \
- (((wsu & 0x1F) << LCDC_LIDD_CS0_CONF_W_SU_SHIFT) | \
- ((ws & 0x3F) << LCDC_LIDD_CS0_CONF_W_STROBE_SHIFT) | \
- ((wh & 0xF) << LCDC_LIDD_CS0_CONF_W_HOLD_SHIFT) | \
- ((rsu & 0x1F) << LCDC_LIDD_CS0_CONF_R_SU_SHIFT) | \
- ((rs & 0x3F) << LCDC_LIDD_CS0_CONF_R_STROBE_SHIFT) | \
- ((rh & 0xF) << LCDC_LIDD_CS0_CONF_R_HOLD_SHIFT) | \
- ((ta & 0x3) << LCDC_LIDD_CS0_CONF_TA_SHIFT)))
- /* LIDD DMA configuration */
- #define LIDD_DMA_CONFIG(thres, burst, endian) ((unsigned int) \
- (((thres & 0x7) << LCDC_LCDDMA_CTRL_TH_FIFO_READY_SHIFT) | \
- ((burst & 0x7) << LCDC_LCDDMA_CTRL_BURST_SIZE_SHIFT) | \
- ((endian & 0x1) << LCDC_LCDDMA_CTRL_BIGENDIAN_SHIFT)))
- /* Function prototypes */
- void LIDDStringWrite(unsigned int baseAddr, unsigned int cs, unsigned int start, char *data, unsigned int len);
- void LIDDDMAConfigSet(unsigned int baseAddr, unsigned int dmaEnable, unsigned int doneEnable);
- void LIDDClkConfig(unsigned int baseAddr, unsigned int freq, unsigned int moduleFreq);
- void LIDDCSTimingConfig(unsigned int baseAddr, unsigned int cs, unsigned int conf);
- void LIDDAddrIndexSet(unsigned int baseAddr, unsigned int cs, unsigned int index);
- void LIDDDataWrite(unsigned int baseAddr, unsigned int cs, unsigned int data);
- void LIDDPolaritySet(unsigned int baseAddr, unsigned int polarity);
- void LIDDModeSet(unsigned int baseAddr, unsigned int mode);
- void LIDDDMACSSet(unsigned int baseAddr, unsigned int cs);
- unsigned int LIDDStatusGet(unsigned int baseAddr);
- #ifdef __cplusplus
- }
- #endif
- #endif
|