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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
Provide a random driver wrapped around the MCUX TRNG driver.
Change-Id: Icbd7ab587aa18ecbd7eae52290aaa5d8ee504cf2
Origin: Original
Signed-off-by: Bogdan Davidoaia <bogdan.davidoaia@linaro.org>
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>
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>
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>
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>
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>
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>
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>
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>
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>
Renames the ksdk random generator shim driver to mcux.
Change-Id: I8bc376937fed3024c809782139a0a72c7332f89a
Signed-off-by: Maureen Helm <maureen.helm@nxp.com>