Commit Graph

30 Commits

Author SHA1 Message Date
Gregory Nutt
aff4c9cfd0 stm32f429i-disco: change ltdc initializing during boot up. This moves initializing of the ili9341 lcd and ltdc driver to the board specific initializing routine.
Signed-off-by: Marco Krahl <ocram.lhark@gmail.com>
2014-12-29 09:50:36 -06:00
Gregory Nutt
868d4b7afc STM32F429i-Disco USB: Strangeness: Conditioned on OTGHS but called otgfs initialize routines. Must be something broken 2014-12-29 07:02:32 -06:00
Gregory Nutt
217f3fec70 STM32F429i-Disco USBMC configuration: SPI1 should not be enabled. It is not supported 2014-12-29 07:01:36 -06:00
Gregory Nutt
56340ae971 STM32 LTDC: Move ltdc.h from include/nuttx/video to arch/arm/include/stm32; Trivial updates after general review 2014-12-19 14:52:17 -06:00
Gregory Nutt
78ff2450cb stm32f429i-disco: initialize ltdc during bootup
Signed-off-by: Marco Krahl <ocram.lhark@gmail.com>
2014-12-19 14:05:19 -06:00
Gregory Nutt
9853b62e73 stm32f429i-disco: enable configuration of framebuffer support for the ltdc controller
Signed-off-by: Marco Krahl <ocram.lhark@gmail.com>
2014-12-19 14:02:26 -06:00
Gregory Nutt
a5a8349226 stm32f429i-disco: Add support for initializing ltdc framebuffer and the configured lcd display
This adds support for initializing of the ltdc controller and the lcd device connected on the stm32f429i-disco. The following methods are provided for the generic fb interface:

- up_fbinitialize
- up_fbgetvplane
- fb_uninitialize

The following methods are provided for the ltdc interface:

- up_ltdcgetlayer

Signed-off-by: Marco Krahl <ocram.lhark@gmail.com>
2014-12-19 13:54:27 -06:00
Gregory Nutt
13332e41d2 STM32 F4 OTGHS device controller driver from Brennan Ashton 2014-11-20 07:19:04 -06:00
Gregory Nutt
c688cda22a stm32f429i-disco: add wrapper for spi5 evice
initializing

As long as the method up_spiinitialize recognized the initialized state of the
spi device by the spi enable flag of the cr1 register, it isn't safe to disable
the spi device outside of the nuttx spi interface structure. But this has to be
done as long as the nuttx spi interface doesn't support bidirectional data
transfer for multiple devices share one spi bus. This wrapper store the
initialized state of the spi device after the first initializing and should be
used by each driver who shares the spi5 bus.

Note! Understand this as temporary workaround.

Signed-off-by: Marco Krahl <ocram.lhark@gmail.com>
2014-10-20 15:36:11 -06:00
Gregory Nutt
bf4ad09e6e stm32f429i-disco: enable usage of ili93414ws
This enables build and configuration of the ili94314ws sub driver.

Signed-off-by: Marco Krahl <ocram.lhark@gmail.com>
2014-10-20 15:24:24 -06:00
Gregory Nutt
e597d07d42 stm32f429i-disco: implements lcd initializing
This enables the initializing of the lcd device connected on the
stm32f429i-disco. The following methods are provided:
- up_lcdinitialize
- up_lcduninitialize
- up_lcdgetdev

The corresponding ili9341 lcd device in the nuttx driver section can be
configured by Kconfig. Interface 0 is used by default.

Signed-off-by: Marco Krahl <ocram.lhark@gmail.com>
2014-10-20 15:21:48 -06:00
Gregory Nutt
f02de7c7ec stm32f429i-disco: implements ili9341 interface
This add a new sub driver ili93414ws which implements the ili9341
interface. This allows to control the ili9341 lcd display of the
stm32f429i-disco board. This also modifies the board specific header to
make the entry point to the sub driver known.

Generally the display supports two different ways to drawing pixel data. This
can be done by RGB interface or MCU interface. Second one is supported by this
driver.

The configuration of the MCU interface is fixed by the hardware pinout.
In the case of the stm32f429i-disco board it is a 4-wire serial (spi)
interface. The display is connected on spi5 and acts as a slave device.
It supports half duplex bidirectional mode for transmitting and receiving data.

Nuttx spi interface only support full duplex so the interface can not be used
for the driver in conventional way. Therefore the driver has its own logic for
the communication with the spi5 device.

But if multiple devices share the same spi5 bus, e.g. if MEMS support enabled
the spi bus must be locked to avoid inconsistency. This is done by enable
CONFIG_STM32_SPI5 in the nuttx configuration. In this case the driver uses the
spi_dev_s instance for the spi5 port to interact with the nuttx spi interface,
e.g. using method SPI_LOCK to lock the bus for the current usage. So it is safe
to share the spi bus. Keep in mind this is a possible workaround.
I would be happy if nuttx spi interface supports different spi modes other
than full duplex only. Are there any plans?

Futhermore the driver supports a few configurable settings:

1. SPI Frequency.

This allows to configure the spi frequency for the communication with the
display. As a result of the spi devices of the stm32f429 only allow fixed
frequency by divider depending on PCLK1, it is not possible to configure each
spi clock we want. A divider of 4, what means ~10Mhz spi clock, gives me the
best results and should be near the upper limit.

2. SPI 16-bit mode.

This allows to setup the spi hardware to 16-bit mode for read or write
operations when receiving or transmitting pixel data from or to the gram of the
display. This is not documented in the ili9341 reference manual but this trick
works just fine because we use only one read or write operation for each pixel,
instead two. This gives a small performance boost.

The driver implements all functions described in the header (see
include/nuttx/lcd/ili9341.h).
Note! Using the backlight function has no effect, because the board
doesn't support controlling of the backlight in the current hardware
layout.

Todo: Add support for dma transfer for writing pixel data to the displays gram.

Signed-off-by: Marco Krahl <ocram.lhark@gmail.com>
2014-10-20 15:17:56 -06:00
Gregory Nutt
3035f1a88f stm32f429i-disco: Fix obsolete SPI5 dependency. From Marco Krahl 2014-10-20 15:10:50 -06:00
Gregory Nutt
4d851b150d All NSH-related files under nuttx/configs changed to use the corrected syslog interfaces 2014-10-08 14:28:55 -06:00
Gregory Nutt
6a178608fb Remove non-functional vestiges of OTGHS in FS mode (including OTGFS2); try to convert the stm32f429i-disco configuration to use OTGHS instead of OTFHS in FS mode (OTGFS2). But I don't have the boards and can't test 2014-10-07 15:25:31 -06:00
Gregory Nutt
3dd8c08714 Remove final traces of the 8015 from the NuttX source tree 2014-09-01 13:21:15 -06:00
Gregory Nutt
591a9c85d2 Rename kmalloc to kmm_malloc for consistency 2014-08-31 17:26:36 -06:00
Gregory Nutt
ab5b37189b More trailing whilespace removal 2014-04-13 16:22:22 -06:00
Gregory Nutt
fb4fa33cae Cosmetic changes for coding style; removal of dangling spaces at the end of lines 2014-04-13 13:18:06 -06:00
Gregory Nutt
dd0a0258d9 configs/stm32f4discovery/pm: Configuration converted to use the kconfig-frontends tools 2014-03-04 08:58:01 -06:00
Gregory Nutt
6c35737dbd STM32F429 Discovery: All src/ files renamed to make consistent with current naming conventions 2014-02-18 12:24:21 -06:00
Gregory Nutt
298b061b5c STM32F429 Discovery: Add support for FPU in OS test 2014-02-18 12:04:19 -06:00
Gregory Nutt
42a86a9cba rename up_led*() functions to board_led_*() 2014-01-24 14:28:49 -06:00
Gregory Nutt
f797601f19 Rename up_irqbutton() to board_button_irq() 2014-01-24 14:04:07 -06:00
Gregory Nutt
f4d84ecd7e Rename up_buttons() to board_buttons() 2014-01-24 13:59:24 -06:00
Gregory Nutt
e5bfdcf36c Rename up_buttoninit to board_button_intialize 2014-01-24 13:50:23 -06:00
Gregory Nutt
89b8a312ab STM32F429I-Discovery: Andd procfs MTD partition names 2013-12-12 09:23:54 -06:00
Gregory Nutt
946e927609 STM32F429I-Discovery: Add support for external SST25 FLASH. From Ken Pettit 2013-11-28 08:21:15 -06:00
Gregory Nutt
8ab882f49b STM32F429I-Discovery: Add support for the usbnsh and usbmsc configurations using the OTG HS peripheral in FS mode. From Ken Pettit. 2013-11-10 07:30:34 -06:00
Gregory Nutt
14ca86741c Add support for the STM32F429I-Discovery board from Ken Pettit 2013-11-07 16:55:45 -06:00