Commit Graph

53 Commits

Author SHA1 Message Date
Maureen Helm 6043c74fd3 gpio: Introduce mcux igpio shim driver
Adds a new gpio driver for the NXP i.MX family of SoCs. Read, write,
configure, and callback API functions are all implemented.

Signed-off-by: Maureen Helm <maureen.helm@nxp.com>
2017-11-15 09:09:58 -06:00
Maureen Helm 0f3b490905 clock_control: Introduce mcux ccm driver
Adds a new clock control driver for i.MX SoCs that have the clock
control module (CCM).

Signed-off-by: Maureen Helm <maureen.helm@nxp.com>
2017-11-15 09:09:58 -06:00
Maureen Helm 8a1d3b5b11 ext: mcux: Add mcux 2.3.0 for mimxrt1051 and mimxrt1052
Adds mcux 2.3.0 drivers and device header files for the mimxrt1051 and
mimxrt1052. Updates several drivers that were already imported for other
SoCs but also apply to the mimxrt1051 and mimxrt1052.

Origin: NXP MCUXpresso SDK 2.3.0
URL: mcux.nxp.com
Maintained-by: External

Signed-off-by: Maureen Helm <maureen.helm@nxp.com>
2017-11-15 09:09:58 -06:00
Johann Fischer a14dd6309e cmake: fix build of the entropy drivers
Signed-off-by: Johann Fischer <j.fischer@phytec.de>
2017-11-11 19:01:42 -05:00
Sebastian Bøe 0829ddfe9a kbuild: Removed KBuild
Signed-off-by: Sebastian Boe <sebastian.boe@nordicsemi.no>
2017-11-08 20:00:22 -05:00
Sebastian Bøe 12f8f76165 Introduce cmake-based rewrite of KBuild
Introducing CMake is an important step in a larger effort to make
Zephyr easy to use for application developers working on different
platforms with different development environment needs.

Simplified, this change retains Kconfig as-is, and replaces all
Makefiles with CMakeLists.txt. The DSL-like Make language that KBuild
offers is replaced by a set of CMake extentions. These extentions have
either provided simple one-to-one translations of KBuild features or
introduced new concepts that replace KBuild concepts.

This is a breaking change for existing test infrastructure and build
scripts that are maintained out-of-tree. But for FW itself, no porting
should be necessary.

For users that just want to continue their work with minimal
disruption the following should suffice:

Install CMake 3.8.2+

Port any out-of-tree Makefiles to CMake.

Learn the absolute minimum about the new command line interface:

$ cd samples/hello_world
$ mkdir build && cd build
$ cmake -DBOARD=nrf52_pca10040 ..

$ cd build
$ make

PR: zephyrproject-rtos#4692
docs: http://docs.zephyrproject.org/getting_started/getting_started.html

Signed-off-by: Sebastian Boe <sebastian.boe@nordicsemi.no>
2017-11-08 20:00:22 -05:00
Leandro Pereira da9b0ddf5b drivers: Rename `random` to `entropy`
This should clear up some of the confusion with random number
generators and drivers that obtain entropy from the hardware.  Also,
many hardware number generators have limited bandwidth, so it's natural
for their output to be only used for seeding a random number generator.

Signed-off-by: Leandro Pereira <leandro.pereira@intel.com>
2017-11-01 08:26:29 -04:00
Maureen Helm 7a60782f67 clock_control: Introduce mcux sim driver
Adds a new clock control driver for Kinetis SoCs that have the system
integration (SIM) module. This will allow mcux shim drivers, such as
uart and i2c, to abstract the call to CLOCK_GetFreq() behind the
clock_control interface and thus be reused for SoCs with different clock
architectures.

Signed-off-by: Maureen Helm <maureen.helm@nxp.com>
2017-10-20 12:28:11 -05:00
Johann Fischer 24a4bc25cc ext: mcux: import mcux device headers for MKW22D5 and MKW24D5 SiP
Origin: NXP MCUXpresso KSDK 2.2
URL: https://mcuxpresso.nxp.com/
Maintained-by: External

Signed-off-by: Johann Fischer <j.fischer@phytec.de>
2017-10-10 11:56:47 -05:00
Maureen Helm f0d50979e8 mcux: nxp_kinetis: Move HAS_TRNG config to ext
SoCs outside the Kinetis family can have the TRNG module, so move the
HAS_TRNG config from arch/arm/soc/nxp_kinetis to ext/hal/nxp/mcux

Signed-off-by: Maureen Helm <maureen.helm@nxp.com>
2017-09-25 12:31:59 -05:00
Maureen Helm 5ba9f26b46 mcux: nxp_kinetis: Move HAS_RNGA config to ext
SoCs outside the Kinetis family can have the RNGA module, so move the
HAS_RNGA config from arch/arm/soc/nxp_kinetis to ext/hal/nxp/mcux

Signed-off-by: Maureen Helm <maureen.helm@nxp.com>
2017-09-25 12:31:59 -05:00
Maureen Helm 694c7f5ca4 mcux: nxp_kinetis: Move HAS_FTM config to ext
SoCs outside the Kinetis family can have the FTM module, so move the
HAS_FTM config from arch/arm/soc/nxp_kinetis to ext/hal/nxp/mcux

Note that 'select HAS_FTM' was previously missing from Kconfig.soc and
is now fixed.

Signed-off-by: Maureen Helm <maureen.helm@nxp.com>
2017-09-25 12:31:59 -05:00
Maureen Helm f7a37cea8d mcux: nxp_kinetis: Move HAS_ADC16 config to ext
SoCs outside the Kinetis family can have the ADC16 module, so move the
HAS_ADC16 config from arch/arm/soc/nxp_kinetis to ext/hal/nxp/mcux

Signed-off-by: Maureen Helm <maureen.helm@nxp.com>
2017-09-25 12:31:59 -05:00
Maureen Helm fe4c3aacba mcux: nxp_kinetis: Move HAS_LPSCI config to ext
SoCs outside the Kinetis family can have the LPSCI module, so move the
HAS_LPSCI config from arch/arm/soc/nxp_kinetis to ext/hal/nxp/mcux

Signed-off-by: Maureen Helm <maureen.helm@nxp.com>
2017-09-25 12:31:59 -05:00
Maureen Helm bbafc833db mcux: nxp_kinetis: Move HAS_LPUART config to ext
SoCs outside the Kinetis family can have the LPUART module, so move the
HAS_LPUART config from arch/arm/soc/nxp_kinetis to ext/hal/nxp/mcux

Signed-off-by: Maureen Helm <maureen.helm@nxp.com>
2017-09-25 12:31:59 -05:00
Maureen Helm 060bf8ea6a pwm: Introduce new mcux ftm shim driver
Adds a shim layer around the mcux ftm driver to adapt it to the Zephyr
pwm interface.

Jira: ZEP-2025

Signed-off-by: Maureen Helm <maureen.helm@nxp.com>
2017-08-09 18:13:29 -04:00
Maureen Helm 8ff51559da adc: Introduce new mcux adc16 driver
Adds a shim layer around the mcux adc16 driver to adapt it to the Zephyr
adc interface.

Jira: ZEP-1396

Signed-off-by: Maureen Helm <maureen.helm@nxp.com>
2017-07-19 14:28:08 -05:00
Bogdan Davidoaia af98f0a806 ext: mcux: add minimal v2.2 interface for KW40Z XCVR driver
Add minimal interface for the KW40Z XCVR driver to match the one offered
in MCUX v2.2 by the KW41Z XCVR driver.

This is needed to reuse the KW41Z IEEE 802.15.4 driver on KW40Z.

Signed-off-by: Bogdan Davidoaia <bogdan.davidoaia@linaro.org>
2017-07-06 14:20:32 -05:00
Bogdan Davidoaia 9a0ed96ccc ext: mcux: add makefiles for building KW40Z XCVR driver
Add and update makefiles in order to build either the KW41Z or KW40Z
XCVR driver based on soc name.

Signed-off-by: Bogdan Davidoaia <bogdan.davidoaia@linaro.org>
2017-07-06 14:20:32 -05:00
Bogdan Davidoaia 2bb0cbab34 ext: mcux: update KW40Z files for building XCVR driver
Update KW40Z files for building XCVR driver by adding the required
includes, removing unneeded ones and replacing OSA_EnterCritical/
OSA_ExitCritical with OSA_InterruptDisable/OSA_InterruptEnable.

Signed-off-by: Bogdan Davidoaia <bogdan.davidoaia@linaro.org>
2017-07-06 14:20:32 -05:00
Bogdan Davidoaia d74ddcc41d ext: mcux: import additional KW40Z header files
Import from Kinetis SDK v1.3 MKW40Z4_extension.h and fsl_bitaccess.h
which are needed to build the XCVR driver for KW40Z.

Origin: NXP Kinetis KW40Z Connectivity Software
Maintained-by: External

Signed-off-by: Bogdan Davidoaia <bogdan.davidoaia@linaro.org>
2017-07-06 14:20:32 -05:00
Bogdan Davidoaia 8feab141de ext: mcux: import XCVR driver for KW40Z
Import the KW40Z XCVR driver from Kinetis SDK v1.3, which is needed
to setup the radio on the hexiwear_kw40z board.

Origin: NXP Kinetis KW40Z Connectivity Software
Maintained-by: External

Signed-off-by: Bogdan Davidoaia <bogdan.davidoaia@linaro.org>
2017-07-06 14:20:32 -05:00
Bogdan Davidoaia 79ea8685a5 ext: mcux: update MK64F12.svd to MK64F12.xml
The MK64F12.svd file was changed to MK64F12.xml in MCUX 2.2.

Origin: NXP MCUXpresso SDK 2.2
URL: mcux.nxp.com
Maintained-by: External

Signed-off-by: Bogdan Davidoaia <bogdan.davidoaia@linaro.org>
2017-05-06 10:35:16 -05:00
Bogdan Davidoaia 970320f4c7 ext: mcux: update to MCUX 2.2 for MKW21Z4
Updates the MCUX device header files for MKW21Z4 to MCUX 2.2.

Origin: NXP MCUXpresso SDK 2.2
URL: mcux.nxp.com
Maintained-by: External

Signed-off-by: Bogdan Davidoaia <bogdan.davidoaia@linaro.org>
2017-05-06 10:35:16 -05:00
Bogdan Davidoaia e86ccaf5ce ext: mcux: update to MCUX 2.2 for MKW31Z4
Updates the MCUX device header files for MKW31Z4 to MCUX 2.2.

Origin: NXP MCUXpresso SDK 2.2
URL: mcux.nxp.com
Maintained-by: External

Signed-off-by: Bogdan Davidoaia <bogdan.davidoaia@linaro.org>
2017-05-06 10:35:16 -05:00
Bogdan Davidoaia 50e5daff97 ext: mcux: update XCVR driver to MCUX 2.2
Update the XCVR driver for KW41Z to MCUX 2.2.

Origin: NXP MCUXpresso SDK 2.2
URL: mcux.nxp.com
Maintained-by: External

Signed-off-by: Bogdan Davidoaia <bogdan.davidoaia@linaro.org>
2017-05-06 10:35:16 -05:00
Bogdan Davidoaia ab6e354843 ext: mcux: update to MCUX 2.2 for KW41Z
Updates the MCUX drivers and device header files for KW41Z to
MCUX 2.2.

Origin: NXP MCUXpresso SDK 2.2
URL: mcux.nxp.com
Maintained-by: External

Signed-off-by: Bogdan Davidoaia <bogdan.davidoaia@linaro.org>
2017-05-06 10:35:16 -05:00
Kumar Gala ed467a695a serial: mcux: Shim driver for LPSCI UART on KL25Z
Adds a shim layer around the mcux lpsci driver to adapt it to the Zephyr
serial interface.

Change-Id: I024f1605e3194f34bb57e8a121900e05b3085a82
Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
2017-04-28 15:26:38 -05:00
Bogdan Davidoaia 4dabe7d50e ext: mcux: add Makefiles for building the XCVR driver
Jira: ZEP-2026
Change-Id: Iec6d133309b96b89bcd066e3f9254180ad0f7fb8
Signed-off-by: Bogdan Davidoaia <bogdan.davidoaia@linaro.org>
2017-04-28 15:01:10 +03:00
Bogdan Davidoaia 7dbfc0121d ext: mcux: add OSAbstraction layer for Zephyr
Implement just the OSA_InterruptEnable and OSA_InterruptDisable functions
as only these two are needed to build the XCVR driver.

Jira: ZEP-2026
Change-Id: I49e0cedd3a2553a59b667a2b9945db6b8d0be0d2
Signed-off-by: Bogdan Davidoaia <bogdan.davidoaia@linaro.org>
2017-04-28 15:01:10 +03:00
Bogdan Davidoaia 6ff81ab857 ext: mcux: import XCVR driver for KW41Z
Import the XCVR driver from Kinetis SDK, which is needed to setup the radio
on the FRDM-KW41Z board. Also import EmbeddedTypes.h and the OSAbstraction
interface, as they are needed to build the XCVR driver.

Origin: https://www.nxp.com/webapp/sps/download/license.jsp?colCode=KW41Z-CONNECTIVITY-SOFTWARE-LIN
Maintained-by: External

Jira: ZEP-2026
Change-Id: Iee0acb2320f7bec887d8d2342772dde18b11b12f
Signed-off-by: Bogdan Davidoaia <bogdan.davidoaia@linaro.org>
2017-04-28 15:01:10 +03:00
Maureen Helm b9e209e4fc ext: mcux: Adapt ksdk 1.3 for kw40z to work with mcux 2.x drivers
Reuses the kw41z clock driver for kw40z via preprocessor includes.
Copies the kw41z fsl_device_registers.h to kw40z and subset devices with
minor modifications for each device.

Jira: ZEP-1388
Change-Id: Ifae16eb9b7e7d18fc13c22dc51887fc1d8a5e21d
Signed-off-by: Maureen Helm <maureen.helm@nxp.com>
2017-04-14 05:56:53 -05:00
Maureen Helm 4c24c8343d ext: mcux: Import ksdk 1.3 device header files for kw40z
Imports device header files for the kw40z and its subset devices (kw30z,
kw20z) from the Kinetis SDK 1.3. The kw40z has all the same peripherals
as the kw41z but less flash and ram, therefore we can use the MCUXpresso
SDK 2.x drivers for kw41z with the KSDK device header files for the
kw40z.

Origin: https://www.nxp.com/webapp/Download?colCode=KW40Z-CONNECTIVITY-SOFTWARE&appType=license&Parent_
Maintained-by: External

Jira: ZEP-1388
Change-Id: I30b283a0c9dd4f88b8c21c03814dcdff76b684c4
Signed-off-by: Maureen Helm <maureen.helm@nxp.com>
2017-04-14 05:56:53 -05:00
Maureen Helm 93785da544 ext: mcux: Add mcux 2.2 for kl25z
Adds mcux 2.2 drivers and device header files for the kl25z. Updates
several drivers that were already imported for the kw41z but also apply
to kl25z.

Origin: NXP MCUXpresso SDK 2.2
URL: mcux.nxp.com
Maintained-by: External

Change-Id: Ifc9d70b79f25d8ba0c595a7ceb5881ff2fc0fbf7
Signed-off-by: Maureen Helm <maureen.helm@nxp.com>
2017-04-04 17:55:10 -05:00
Maureen Helm aa9c14667b ext: mcux: Update to mcux 2.2 for k64
Updates the mcux drivers and device header files for the k64 from mcux
2.1 to mcux 2.2. Updates the k6x soc init and ethernet shim driver to
reflect mcux interface changes.

Origin: NXP MCUXpresso SDK 2.2
URL: mcux.nxp.com
Maintained-by: External

Change-Id: Icb578dddbe84c190e990b756193bef621010a898
Signed-off-by: Maureen Helm <maureen.helm@nxp.com>
2017-03-27 09:05:58 -05:00
Maureen Helm e0b56a7076 ext: mcux: Update to mcux 2.1 for k64
Updates the mcux drivers and device header files for the k64 from mcux
2.0 to mcux 2.1.

Origin: NXP MCUXpresso SDK 2.1
URL: mcux.nxp.com
Maintained-by: External

Change-Id: Ic83acfa91b575550c92ccc124d94ecd8fdac1f57
Signed-off-by: Maureen Helm <maureen.helm@nxp.com>
2017-03-27 09:05:58 -05:00
Kumar Gala 83d8ffb2a0 spi: mcux: Rename spi driver to DSPI to match naming convention
In prep for supporting the older KL2x SoCs that use a different SPI
block, rename the current SPI driver to DSPI to match what the MCUX HAL
defines it as.

Change-Id: I9097580df5fca649ab6fd9a38212fced0b1ea6ed
Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
2017-03-27 09:05:57 -05:00
Bogdan Davidoaia 5473906993 random: add MCUX TRNG driver
Provide a random driver wrapped around the MCUX TRNG driver.

Change-Id: Icbd7ab587aa18ecbd7eae52290aaa5d8ee504cf2
Origin: Original
Signed-off-by: Bogdan Davidoaia <bogdan.davidoaia@linaro.org>
2017-03-02 14:13:27 +00:00
Bogdan Davidoaia 50cb5a6bd3 random: mcux: rename random_mcux to random_mcux_rnga
MCUX contains more than one type of random number generator,
so refrect this in config and file names.

Change-Id: Iba4482a1ae41f35d471686f8b159c113147c4df8
Signed-off-by: Bogdan Davidoaia <bogdan.davidoaia@linaro.org>
2017-03-02 14:13:25 +00:00
Wojciech Bober 573774a9bf drivers/net/ieee802154: Change configuration prefix
This commit changes Kconfig prefix for ieee802154 drivers to
IEEE802154_*. This is done for consistency with config prefixes
used in other subsystems.

Change-Id: Ibbb4d96d2b748f4f13135bde85304ec34c5a90a6
Signed-off-by: Wojciech Bober <wojciech.bober@nordicsemi.no>
2017-02-08 10:12:35 +02:00
Maureen Helm e290006144 serial: Introduce new mcux lpuart shim driver
Adds a shim layer around the mcux lpuart driver to adapt it to the Zephyr
serial interface.

NXP has multiple uart hardware blocks that implement different features
and have different register maps. The k64 has a uart block called
'uart', while the kw41 has a uart block called 'lpuart' (low power
uart). The MCUXpresso SDK provides separate drivers for each type of
uart block but with similar software interfaces. As a result, there are
also separate shim drivers in Zephyr. There is a 1:1:1 relationship
between hardware block, mcux driver, and mcux shim driver.

Because we now have two mcux shim drivers for the uart interface, a new
naming convention is created:

	<interface>_mcux_<hw block>

Where <interface> is the name of the Zephyr interface, in this case
'uart'. This convention is not new.

<hw block> is the name of the NXP hardware block, in this case 'lpuart'.
This is the new part, and distinguishes different hardware blocks
for the same interface.

Change-Id: I3a80b9bffa116bbb2b02ee950d4bdd79a19a4edc
Signed-off-by: Maureen Helm <maureen.helm@nxp.com>
2017-01-30 11:02:35 -06:00
Maureen Helm 27cfd1248c mcux: Import mcux for kw41z
Imports the mcux device header files and peripheral drivers for the
kw41z and its subset devices (kw31z, kw21z). The subset devices are
included since they are released together with the kw41z by nxp, and to
avoid them getting out of sync in Zephyr if they were added later.

The kw41z shares several peripheral drivers with the k64f, so those
drivers are updated to the newer version released with the kw41z.

Origin: NXP Kinetis KW41Z Connectivity Software Linux(REV 1.0.2)
URL: https://www.nxp.com/webapp/Download?colCode=KW41Z-CONNECTIVITY-SOFTWARE-LIN&appType=license&Parent_nodeId=1441226359347708902175&Parent_pageType=product
Maintained-by: External

Jira: ZEP-1389
Change-Id: Id8e87f32b7afe01605e1e05b88addc547b2f5e21
Signed-off-by: Maureen Helm <maureen.helm@nxp.com>
2017-01-30 11:02:35 -06:00
Johann Fischer fa8d9c9d10 drivers: ieee802154: add MCR20A driver
Add driver and configuration for the MCR20A 802.15.4
transceiver.

Jira: ZEP-1429

Change-Id: I0b17b688220a47c2f0e5cde269064bbd0dec824a
Signed-off-by: Johann Fischer <j.fischer@phytec.de>
2017-01-27 12:35:51 +02:00
Johann F d4e5113461 ext: mcux: add MCR20Overwrites.h
Add overwrites header file for MCR20 Register values.

Overwrite values are non-default register values that
configure the transceiver device to a more optimally
performing posture.
(Excerpt from the documentation part of MCR20Overwrites.h)

Origin: Kinetis MKW2xD and MCR20A Connectivity Software
URL: https://www.nxp.com/
(The complete URL can be found in the ext/hal/nxp/mcux/README)
Revision: (REV 1.0.0)
Maintained-by: External

Change-Id: Id96db2ad70279c0b11d749d65e9148244d8fdc2f
Signed-off-by: Johann Fischer <j.fischer@phytec.de>
2017-01-27 12:35:51 +02:00
Maureen Helm d138a4fad1 spi: Introduce new mcux shim driver
Adds a shim layer around the mcux dspi driver to adapt it to the Zephyr
spi interface. Unlike the existing k64 spi driver, this driver can be
used for other Kinetis SoCs that contain the dspi module.

Jira: ZEP-1374
Change-Id: I9417c1513565dfcc47ccda098492f60e840f4f84
Signed-off-by: Maureen Helm <maureen.helm@nxp.com>
2017-01-23 15:15:54 -06:00
Maureen Helm 38f812828e serial: Introduce new mcux shim driver
Adds a shim layer around the mcux uart driver to adapt it to the Zephyr
serial interface. Unlike the existing (and confusingly-named) uart_k20
driver, this driver can be used for k64 and other Kinetis SoCs.

Implements polling and interrupt-driven serial interface functions that
are logically equivalent to the uart_k20 driver. Adds an extra instance,
irq_tx_empty(), and err_check() that aren't implemented in the uart_k20
driver.

Jira: ZEP-719
Change-Id: Iab99542e7ec921ef4f361437768113fee01e5fe8
Signed-off-by: Maureen Helm <maureen.helm@nxp.com>
2017-01-23 15:15:53 -06:00
Anas Nashif 594992f7b2 license: use SPDX identifier for files in ext/
Change-Id: I32cb4211056046ca28a81aa97aca5d3c0b9b8303
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2017-01-20 20:22:57 -05:00
Maureen Helm 2e6350bfe3 ksdk: mcux: Remove config HAS_KSDK
Now that all the ksdk/mcux shim drivers use the config HAS_MCUX, we can
remove the config HAS_KSDK.

Change-Id: I94b7db41efae10c9234681aeb57f94e67a33c262
Signed-off-by: Maureen Helm <maureen.helm@nxp.com>
2017-01-12 09:46:27 -06:00
Maureen Helm e17adf377b flash: Rename ksdk to mcux
Renames the ksdk soc flash driver to mcux.

Change-Id: I835e36f25d8bc3e3aa6286718452528174378907
Signed-off-by: Maureen Helm <maureen.helm@nxp.com>
2017-01-12 09:46:26 -06:00
Maureen Helm aa995f8d2f random: Rename ksdk to mcux
Renames the ksdk random generator shim driver to mcux.

Change-Id: I8bc376937fed3024c809782139a0a72c7332f89a
Signed-off-by: Maureen Helm <maureen.helm@nxp.com>
2017-01-12 09:46:26 -06:00