/ * @brief * Configure and initialize TFT Direct Drive * * @param[in] ebiTFTInit * TFT Initialization structure ******************************************************************************/
| 564 | * TFT Initialization structure |
| 565 | ******************************************************************************/ |
| 566 | void EBI_TFTInit(const EBI_TFTInit_TypeDef *ebiTFTInit) |
| 567 | { |
| 568 | uint32_t ctrl; |
| 569 | |
| 570 | /* Configure base address for frame buffer offset to EBI bank */ |
| 571 | EBI_TFTFrameBaseSet(ebiTFTInit->addressOffset); |
| 572 | |
| 573 | /* Configure display size and porch areas */ |
| 574 | EBI_TFTSizeSet(ebiTFTInit->hsize, |
| 575 | ebiTFTInit->vsize); |
| 576 | EBI_TFTHPorchSet(ebiTFTInit->hPorchFront, |
| 577 | ebiTFTInit->hPorchBack, |
| 578 | ebiTFTInit->hPulseWidth); |
| 579 | EBI_TFTVPorchSet(ebiTFTInit->vPorchFront, |
| 580 | ebiTFTInit->vPorchBack, |
| 581 | ebiTFTInit->vPulseWidth); |
| 582 | |
| 583 | /* Configure timing settings */ |
| 584 | EBI_TFTTimingSet(ebiTFTInit->dclkPeriod, |
| 585 | ebiTFTInit->startPosition, |
| 586 | ebiTFTInit->setupCycles, |
| 587 | ebiTFTInit->holdCycles); |
| 588 | |
| 589 | /* Configure line polarity settings */ |
| 590 | EBI_PolaritySet(ebiLineTFTCS, ebiTFTInit->csPolarity); |
| 591 | EBI_PolaritySet(ebiLineTFTDClk, ebiTFTInit->dclkPolarity); |
| 592 | EBI_PolaritySet(ebiLineTFTDataEn, ebiTFTInit->dataenPolarity); |
| 593 | EBI_PolaritySet(ebiLineTFTVSync, ebiTFTInit->vsyncPolarity); |
| 594 | EBI_PolaritySet(ebiLineTFTHSync, ebiTFTInit->hsyncPolarity); |
| 595 | |
| 596 | /* Main control, EBI bank select, mask and blending configuration */ |
| 597 | ctrl = |
| 598 | (uint32_t)(ebiTFTInit->bank) | |
| 599 | (uint32_t)(ebiTFTInit->width) | |
| 600 | (uint32_t)(ebiTFTInit->colSrc) | |
| 601 | (uint32_t)(ebiTFTInit->interleave) | |
| 602 | (uint32_t)(ebiTFTInit->fbTrigger) | |
| 603 | (uint32_t)(ebiTFTInit->shiftDClk == true ? (1 << _EBI_TFTCTRL_SHIFTDCLKEN_SHIFT) : 0) | |
| 604 | (uint32_t)(ebiTFTInit->maskBlend) | |
| 605 | (uint32_t)(ebiTFTInit->driveMode); |
| 606 | |
| 607 | EBI->TFTCTRL = ctrl; |
| 608 | |
| 609 | /* Enable TFT pins */ |
| 610 | if (ebiTFTInit->driveMode != ebiTFTDDModeDisabled) |
| 611 | { |
| 612 | EBI->ROUTE |= (EBI_ROUTE_TFTPEN); |
| 613 | } |
| 614 | } |
| 615 | |
| 616 | |
| 617 | /***************************************************************************//** |
no test coverage detected