diff options
Diffstat (limited to 'drivers/gdisp/ED060SC4')
-rw-r--r-- | drivers/gdisp/ED060SC4/board_ED060SC4_template.h | 92 | ||||
-rw-r--r-- | drivers/gdisp/ED060SC4/gdisp_lld_ED060SC4.c | 43 |
2 files changed, 20 insertions, 115 deletions
diff --git a/drivers/gdisp/ED060SC4/board_ED060SC4_template.h b/drivers/gdisp/ED060SC4/board_ED060SC4_template.h index 6d71a986..69683cd0 100644 --- a/drivers/gdisp/ED060SC4/board_ED060SC4_template.h +++ b/drivers/gdisp/ED060SC4/board_ED060SC4_template.h @@ -5,18 +5,10 @@ * http://ugfx.org/license.html */ -/** - * @file drivers/gdisp/ST7565/board_ST7565_template.h - * @brief GDISP Graphic Driver subsystem board interface for the ST7565 display. - * - * @addtogroup GDISP - * @{ - */ - #ifndef _GDISP_LLD_BOARD_H #define _GDISP_LLD_BOARD_H -/** +/* * @brief Optional parameters that can be put in this file. * @note The values listed below are the defaults. * @@ -54,149 +46,67 @@ * #define EINK_WRITECOUNT 4 */ -/** - * @brief Initialise the board for the display. - * - * @param[in] g The GDisplay structure - * - * @note Set the g->board member to whatever is appropriate. For multiple - * displays this might be a pointer to the appropriate register set. - * - * @notapi - */ static inline void init_board(GDisplay *g) { (void) g; } -/** - * @brief Delay for display waveforms. Should be an accurate microsecond delay. - * - * @param[in] us The number of microseconds - */ static void eink_delay(int us) { (void) us; } -/** - * @brief Turn the E-ink panel Vdd supply (+3.3V) on or off. - * - * @param[in] g The GDisplay structure - * @param[in] on On or off - */ static inline void setpower_vdd(GDisplay *g, bool_t on) { (void) g; (void) on; } -/** - * @brief Turn the E-ink panel negative supplies (-15V, -20V) on or off. - * - * @param[in] g The GDisplay structure - * @param[in] on On or off - */ static inline void setpower_vneg(GDisplay *g, bool_t on) { (void) g; (void) on; } -/** - * @brief Turn the E-ink panel positive supplies (-15V, -20V) on or off. - * - * @param[in] g The GDisplay structure - * @param[in] on On or off - */ static inline void setpower_vpos(GDisplay *g, bool_t on) { (void) g; (void) on; } -/** - * @brief Set the state of the LE (source driver Latch Enable) pin. - * - * @param[in] g The GDisplay structure - * @param[in] on On or off - */ static inline void setpin_le(GDisplay *g, bool_t on) { (void) g; (void) on; } -/** - * @brief Set the state of the OE (source driver Output Enable) pin. - * - * @param[in] g The GDisplay structure - * @param[in] on On or off - */ static inline void setpin_oe(GDisplay *g, bool_t on) { (void) g; (void) on; } -/** - * @brief Set the state of the CL (source driver Clock) pin. - * - * @param[in] g The GDisplay structure - * @param[in] on On or off - */ static inline void setpin_cl(GDisplay *g, bool_t on) { (void) g; (void) on; } -/** - * @brief Set the state of the SPH (source driver Start Pulse Horizontal) pin. - * - * @param[in] g The GDisplay structure - * @param[in] on On or off - */ static inline void setpin_sph(GDisplay *g, bool_t on) { (void) g; (void) on; } -/** - * @brief Set the state of the D0-D7 (source driver Data) pins. - * - * @param[in] g The GDisplay structure - * @param[in] value The byte to write - */ static inline void setpins_data(GDisplay *g, uint8_t value) { (void) g; (void) value; } -/** - * @brief Set the state of the CKV (gate driver Clock Vertical) pin. - * - * @param[in] g The GDisplay structure - * @param[in] on On or off - */ static inline void setpin_ckv(GDisplay *g, bool_t on) { (void) g; (void) on; } -/** - * @brief Set the state of the GMODE (gate driver Gate Mode) pin. - * - * @param[in] g The GDisplay structure - * @param[in] on On or off - */ static inline void setpin_gmode(GDisplay *g, bool_t on) { (void) g; (void) on; } -/** - * @brief Set the state of the SPV (gate driver Start Pulse Vertical) pin. - * - * @param[in] g The GDisplay structure - * @param[in] on On or off - */ static inline void setpin_spv(GDisplay *g, bool_t on) { (void) g; (void) on; } #endif /* _GDISP_LLD_BOARD_H */ -/** @} */ diff --git a/drivers/gdisp/ED060SC4/gdisp_lld_ED060SC4.c b/drivers/gdisp/ED060SC4/gdisp_lld_ED060SC4.c index 1c61ee93..789053c8 100644 --- a/drivers/gdisp/ED060SC4/gdisp_lld_ED060SC4.c +++ b/drivers/gdisp/ED060SC4/gdisp_lld_ED060SC4.c @@ -5,11 +5,6 @@ * http://ugfx.org/license.html */ -/** - * @file drivers/gdisp/ED060SC4/gdisp_lld.c - * @brief GDISP Graphics Driver for the E-ink panel ED060SC4. - */ - #include "gfx.h" #if GFX_USE_GDISP @@ -83,7 +78,7 @@ #define PRIV(g) ((drvPriv *)g->priv) -/** Delay between signal changes, to give time for IO pins to change state. */ +/* Delay between signal changes, to give time for IO pins to change state. */ static inline void clockdelay(void) { #if EINK_CLOCKDELAY & 1 @@ -111,7 +106,7 @@ static inline void clockdelay(void) #endif } -/** Fast vertical clock pulse for gate driver, used during initializations */ +/* Fast vertical clock pulse for gate driver, used during initializations */ static void vclock_quick(GDisplay *g) { setpin_ckv(g, TRUE); @@ -120,7 +115,7 @@ static void vclock_quick(GDisplay *g) eink_delay(4); } -/** Horizontal clock pulse for clocking data into source driver */ +/* Horizontal clock pulse for clocking data into source driver */ static void hclock(GDisplay *g) { clockdelay(); @@ -129,7 +124,7 @@ static void hclock(GDisplay *g) setpin_cl(g, FALSE); } -/** Start a new vertical gate driver scan from top. +/* Start a new vertical gate driver scan from top. * Note: Does not clear any previous bits in the shift register, * so you should always scan through the whole display before * starting a new scan. @@ -144,7 +139,7 @@ static void vscan_start(GDisplay *g) vclock_quick(g); } -/** Waveform for strobing a row of data onto the display. +/* Waveform for strobing a row of data onto the display. * Attempts to minimize the leaking of color to other rows by having * a long idle period after a medium-length strobe period. */ @@ -158,7 +153,7 @@ static void vscan_write(GDisplay *g) eink_delay(200); } -/** Waveform used when clearing the display. Strobes a row of data to the +/* Waveform used when clearing the display. Strobes a row of data to the * screen, but does not mind some of it leaking to other rows. */ static void vscan_bulkwrite(GDisplay *g) @@ -169,7 +164,7 @@ static void vscan_bulkwrite(GDisplay *g) eink_delay(200); } -/** Waveform for skipping a vertical row without writing anything. +/* Waveform for skipping a vertical row without writing anything. * Attempts to minimize the amount of change in any row. */ static void vscan_skip(GDisplay *g) @@ -180,7 +175,7 @@ static void vscan_skip(GDisplay *g) eink_delay(100); } -/** Stop the vertical scan. The significance of this escapes me, but it seems +/* Stop the vertical scan. The significance of this escapes me, but it seems * necessary or the next vertical scan may be corrupted. */ static void vscan_stop(GDisplay *g) @@ -193,7 +188,7 @@ static void vscan_stop(GDisplay *g) vclock_quick(g); } -/** Start updating the source driver data (from left to right). */ +/* Start updating the source driver data (from left to right). */ static void hscan_start(GDisplay *g) { /* Disable latching and output enable while we are modifying the row. */ @@ -204,7 +199,7 @@ static void hscan_start(GDisplay *g) setpin_sph(g, FALSE); } -/** Write data to the horizontal row. */ +/* Write data to the horizontal row. */ static void hscan_write(GDisplay *g, const uint8_t *data, int count) { while (count--) @@ -217,7 +212,7 @@ static void hscan_write(GDisplay *g, const uint8_t *data, int count) } } -/** Finish and transfer the row to the source drivers. +/* Finish and transfer the row to the source drivers. * Does not set the output enable, so the drivers are not yet active. */ static void hscan_stop(GDisplay *g) { @@ -231,7 +226,7 @@ static void hscan_stop(GDisplay *g) setpin_le(g, FALSE); } -/** Turn on the power to the E-Ink panel, observing proper power sequencing. */ +/* Turn on the power to the E-Ink panel, observing proper power sequencing. */ static void power_on(GDisplay *g) { unsigned i; @@ -264,7 +259,7 @@ static void power_on(GDisplay *g) vscan_stop(g); } -/** Turn off the power, observing proper power sequencing. */ +/* Turn off the power, observing proper power sequencing. */ static void power_off(GDisplay *g) { /* First the high voltages */ @@ -289,7 +284,7 @@ static void power_off(GDisplay *g) /* ==================================== * Framebuffer emulation layer * ==================================== */ - + #if EINK_PPB == 4 #define PIXELMASK 3 #define PIXEL_WHITE 2 @@ -336,7 +331,7 @@ typedef struct drvPriv { uint8_t g_blockmap[BLOCKS_Y][BLOCKS_X]; } drvPriv; -/** Check if the row contains any allocated blocks. */ +/* Check if the row contains any allocated blocks. */ static bool_t blocks_on_row(GDisplay *g, unsigned by) { unsigned bx; @@ -350,7 +345,7 @@ static bool_t blocks_on_row(GDisplay *g, unsigned by) return FALSE; } -/** Write out a block row. */ +/* Write out a block row. */ static void write_block_row(GDisplay *g, unsigned by) { unsigned bx, dy, dx; @@ -379,7 +374,7 @@ static void write_block_row(GDisplay *g, unsigned by) } } -/** Clear the block map, i.e. deallocate all blocks */ +/* Clear the block map, i.e. deallocate all blocks */ static void clear_block_map(GDisplay *g) { unsigned bx, by; @@ -394,7 +389,7 @@ static void clear_block_map(GDisplay *g) PRIV(g)->g_next_block = 0; } -/** Initialize a newly allocated block. */ +/* Initialize a newly allocated block. */ static void zero_block(block_t *block) { unsigned dx, dy; @@ -407,7 +402,7 @@ static void zero_block(block_t *block) } } -/** Allocate a buffer +/* Allocate a buffer * Automatically flushes if all buffers are full. */ static block_t *alloc_buffer(GDisplay *g, unsigned bx, unsigned by) { |