summaryrefslogtreecommitdiff
path: root/nuttx/arch
Commit message (Collapse)AuthorAgeFilesLines
...
* TM4C129G Ethernet: Add Ethernet register addresses. Header files still ↵Gregory Nutt2014-12-301-3/+378
| | | | incomplete
* Tiva: Add framework to support the uniqueu TM4C Ethernet register definitionsGregory Nutt2014-12-303-156/+285
|
* stm32: update description and code documentation. Also fixes a few code ↵Gregory Nutt2014-12-291-19/+20
| | | | | | formattings. Signed-off-by: Marco Krahl <ocram.lhark@gmail.com>
* stm32: fix wait upon vertical blank. This should never have occurred before.Gregory Nutt2014-12-291-1/+1
| | | | Signed-off-by: Marco Krahl <ocram.lhark@gmail.com>
* stm32: fix faulty access to non existing layer. This disables operation ↵Gregory Nutt2014-12-291-0/+8
| | | | | | that requires double layer support, when configured for single layer only. Signed-off-by: Marco Krahl <ocram.lhark@gmail.com>
* C5471: choice has a default value. It should notGregory Nutt2014-12-281-1/+0
|
* Tiva SSI: Fix oversight in last commit. Would only fixe the case where the ↵Gregory Nutt2014-12-281-3/+3
| | | | single SSI enabled was SSI0
* Tiva SSI: Fix some recent breakage to the Tiva SSI driver for the case where ↵Gregory Nutt2014-12-281-0/+20
| | | | only one SSI modules is enabled
* STM32 Serial: PX4 HW workarround for flaky STM32 RTS. From David SidraneGregory Nutt2014-12-272-3/+46
|
* Remove STM32-specific RX flow control logic from the upper level serial ↵Gregory Nutt2014-12-271-15/+31
| | | | driver to the lower level STM32 serial driver
* Serial Upper Half: Add watermarks to RX flow control logicGregory Nutt2014-12-271-4/+8
|
* STM32: Fix some incorrectly placed conditional logicGregory Nutt2014-12-261-4/+3
|
* EFM32 Timer/PWM: Add support for timer/PWM EFM32GG. From Pierre-noel ↵Gregory Nutt2014-12-267-1/+1567
| | | | Bouteville
* ARMv7M: More runtine stack checking logic. From David SidraneGregory Nutt2014-12-261-0/+112
|
* STM32 I2C: Add strings to decode trace events. From David SidraneGregory Nutt2014-12-261-3/+24
|
* Add support for run time stack checking for the STM32. From David SidraneGregory Nutt2014-12-264-2/+44
|
* Tiva: Update UART header file for TM4C129XGregory Nutt2014-12-221-106/+495
|
* Tiva: Upate GPIO header file for TM4C129XGregory Nutt2014-12-222-136/+558
|
* TM4C129X: Simplify be removing unnecessary temporary variableGregory Nutt2014-12-221-19/+19
|
* TM4C129X: Simplify be removing unnecessary temporary variableGregory Nutt2014-12-221-8/+4
|
* TM4C129X: First cut at new Tiva clock configuration logicGregory Nutt2014-12-222-66/+273
|
* TM4C129X: A small step toward understanding new Tiva clockingGregory Nutt2014-12-222-5/+74
|
* Tiva: Rename TIVA_CRC_BASE to TIVA_CCM_BASEGregory Nutt2014-12-213-3/+3
|
* Tiva: Add support for I2C6-9Gregory Nutt2014-12-212-2/+285
|
* Tiva SSI and board configurations: hange negative Tiva logic ↵Gregory Nutt2014-12-212-43/+195
| | | | CONFIG_SSIx_DISABLE to positive logic CONFIG_TIVA_SSIx. Add support for SSI2 and SSI3
* Improved commentsGregory Nutt2014-12-214-16/+58
|
* TM4C129X: Increated power/clocking macros into I2C driverGregory Nutt2014-12-214-12/+16
|
* TM4C129X: Add macros to enable/disable peripheral powerGregory Nutt2014-12-215-97/+536
|
* Tiva SSI: Use portable macros to enable peripheral clockingGregory Nutt2014-12-212-10/+10
|
* Tiva: More run mode clock enable macrosGregory Nutt2014-12-211-36/+362
|
* TM4C129X: Framework for new Tiva clocking logic (details not yet implemented)Gregory Nutt2014-12-216-42/+311
|
* Tiva: Completes first cut at system control header fileGregory Nutt2014-12-201-108/+360
|
* Tiva: More TM4C129 system control register definitionsGregory Nutt2014-12-202-96/+496
|
* Tiva: More TM4C129 system control register definitionsGregory Nutt2014-12-202-63/+357
|
* Tiva: Add a configuration setting to better distinguish TM4C123 and 129 ↵Gregory Nutt2014-12-204-22/+35
| | | | families. Reanem tm4c_syscontrol.h to tm4c123_syscontrol.h; rename tm4c129x_syscontrol.h to tm4c129_syscontrol.h
* Tiva: Updates to system control regiser definitionsGregory Nutt2014-12-202-32/+291
|
* STM32 LTDC: Move ltdc.h from include/nuttx/video to arch/arm/include/stm32; ↵Gregory Nutt2014-12-195-118/+651
| | | | Trivial updates after general review
* stm32: Add configuration option for ltdcGregory Nutt2014-12-191-0/+43
| | | | | | | | | This adds the following ltdc configuration options: - dither support - cmap support, is this the right place for CONFIG_FB_CMAP? - support for extended ltdc interface Signed-off-by: Marco Krahl <ocram.lhark@gmail.com>
* stm32: implements ltdc frambuffer and support for ltdc layer operationGregory Nutt2014-12-191-265/+2714
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This implements the framebuffer support for the generic nuttx framebuffer interface, (see nuttx/video/fb.h) This also implements the interface to perform hardware accelerated layer operation by the ltdc controller and dma2d controller later (see nuttx/video/ltdc.h). The following methods are supported by the ltdc interface: - getvideoinfo Get video information of the layer - getplaneinfo Get plane information of the layer - getlid Handle specific layer identifier. This allows to detect to current layer state (e.g. important for layer flipping) - setclut Set the layer color lookup table. Up to 256 color entries supported. - getclut Get the layer color lookup table - setcolor Set the default layer color. In the context of the ltdc layer this means set the default color outside the active area or if the layer is disabled. - getcolor Get the default layer color - setcolorkey Set the layer colorkey (chromakey). Colorkey is enabled by blendmode LTDC_BLEND_COLORKEY - getcolorkey Get the layer colorkey - setalpha Set the constant alpha value. If blend mode LTDC_BLEND_SRCPIXELALPHA or LTDC_BLEND_DESTPIXELALPHA is defined than the blended color is calculated by the formel: Cdest = Pixelalpha * Constalpha * Csrc. Otherwise: Cest = Constalpha * Csrc - getalpha get the alpha value - setblendmode Set the layer blendmode. Supported blendmodes: non blendmode (do not perform blend operation independent on the layers alpha and colorkey) alpha alpha blending (transparency) destpixelalpha use pixel alpha value for the top layer (Layer2) srcpixelalpha use pixel alpha value for the subjacent layer (Layer1) colorkey enable colorkey - getblendmode Get the layer blendmode - setarea Set the active layer area, the visible rectangle inside the whole layer. This also allows to change the position of the whole layer which is visible in the selected area independent on the area position. - getarea Get the active layer area - update Reload the layer shadow register and make changes visible. Also supports layer flipping. Note! Dithering and background color are static parameter and can only changed at build time. Implementation details: The implementation of ltdc interface was inspired by SDL and DirectFB. All layer settings are shadowed before they become active (except setclut). They are still inactive until the layer is updated. This is done by the update method. Should clut only active after an update or not? Clut is used for drawing while the other settings usually used for blend or blit operations. So i think this should be the right way. The implementation of ltdc interface was inspired by SDL and DirectFB. All layer settings shadowed before they become active (except clut). They are still inactive until the layer is updated. This is done by the update call. Should clut only activated after an update or not? Clut is used for draw operation while the other settings usually used for blend or blit operations. So i think this should be the right way. Deviations from the ltdc hardware implementation: - Shadow register update of both layer (Layer1 or Layer2) is independent as long LTDC_UPDATE_SIM is not set. This flag allows to update both layer simultaneous. Otherwise only the desired layer is updated. Layer operation: Keep in mind, both layer are allways active (of course if both enabled by the configuration). First the Layer 1 is blended with the background color and the result is blended with the Layer2. To avoid blend effects, set the Layer2 in non blend mode. This is equal to blend with alpha = 255. Enable blending of Layer2 with the background color by enable blending of Layer1 and disable the opacity by setting the alpha value to 0. Layer flip: A layer flip usual mean swapping two framebuffer. So the current inactive buffer can refreshed with data while the active framebuffer is visible. A flip operation changes the inactive layer to the active one and vice versa. The ltdc implementation supports layer flip. This can be done by the update call and the flag LTDC_UPDATE_FLIP. In this case ltdc makes the inactive layer invisible. In detail, the inactive layer is disabled and the blendmode reset. Detection of the current layer state (e.g. active or inactive) is supported by the getlid method combined with one of the LTDC_LAYER_* flags. Maybe an additional method "flip" for flip operation should be added to the ltdc interface? But this make no sence from my view if the layer is a non LTDC layer, e.g. playing with dma2d only. Supported and tested nuttx pixel formats: Single Layer without LTDC interface support: - FB_FMT_RGB8 (cmap support required) - FB_FMT_RGB16_565 - FB_FMT_RGB24 Single Layer with LTDC interface support: - FB_FMT_RGB8 (cmap support required) - FB_FMT_RGB16_565 - FB_FMT_RGB24 Dual Layer with LTDC interface support: - FB_FMT_RGB8 (cmap support required) - FB_FMT_RGB16_565 - FB_FMT_RGB24 Why is FB_FMT_ARGB8888 missing? Changes: - Remove unused register debug method. Todo: - Add support for backlight, currently not neccessary Did i forgot something? Take a look in the ltdc example or the interface description (see nuttx/include/video/ltdc.h). Thanks to Ken for the base layout. ;) Signed-off-by: Marco Krahl <ocram.lhark@gmail.com>
* stm32: Add infrastructure for dma2d supportGregory Nutt2014-12-194-0/+392
| | | | Signed-off-by: Marco Krahl <ocram.lhark@gmail.com>
* stm32: Add common stm32 layer description. This defines a common layer ↵Gregory Nutt2014-12-191-14/+69
| | | | | | description for the ltdc and dma2d controller. Signed-off-by: Marco Krahl <ocram.lhark@gmail.com>
* stm32: configure PLLSAI clock to enable ltdc register accessGregory Nutt2014-12-191-0/+26
| | | | Signed-off-by: Marco Krahl <ocram.lhark@gmail.com>
* stm32: Add missing clut register definitionGregory Nutt2014-12-191-0/+2
| | | | Signed-off-by: Marco Krahl <ocram.lhark@gmail.com>
* stm32: rename CFBLR register name to the name used in the reference manualGregory Nutt2014-12-191-6/+6
| | | | Signed-off-by: Marco Krahl <ocram.lhark@gmail.com>
* stm32: rename PLLSAI register name to this one in the reference manualGregory Nutt2014-12-191-5/+5
| | | | Signed-off-by: Marco Krahl <ocram.lhark@gmail.com>
* TM4C129X: Add custom system control header file (incomplete)Gregory Nutt2014-12-193-1/+886
|
* Tiva: Fix configuration logic for IRQ interrupts. The various parts ↵Gregory Nutt2014-12-181-9/+112
| | | | support varying numbers of GPIO blocks and with varying capabilities to support interrupts on the pins of different GPIO blocks
* Tiva: Change negative logic CONFIG_TIVA_DISABLE_GPIOx_IRQS to positive logic ↵Gregory Nutt2014-12-184-176/+224
| | | | CONFIG_TIVA_GPIOx_IRQS
* Tiva: Add GPIO interrupt support for the TMS4C129XGregory Nutt2014-12-184-14/+261
|
* DK-TM4C129X: Fixes to get clean build. Logic is still not complete, howeverGregory Nutt2014-12-185-7/+30
|