So far only GPIO pin number of registered DIO line was compared with
arguments passed to GPIO callback. This is not enough when multiple gpio
controllers are used for DIO lines. As an example when DIO0 is on PA1
and DIO1 is on PB1, then DIO0 handler is called all the time.
Compare GPIO controller (in addition to pin number) of DIO lines with
the argument passed to gpio callback, so proper DIO handler is used.
Signed-off-by: Marcin Niestroj <m.niestroj@grinn-global.com>
This information is filled during build time from device-tree. This is
not supposed to change in runtime, so make it const.
Signed-off-by: Marcin Niestroj <m.niestroj@grinn-global.com>
Part of sx1276 driver which is in loramac-node module passes to Zephyr
irqHandlers with callbacks. Some of those callbacks can be NULL and this
is true now (with the current version of loramac-node) for DIO5. If we
define all 0-5 DIOs in dts, then this results in interrupts which are
unwanted. As we do not check that loramac-node callback is NULL, then we
crash trying to call it.
Check every handler during initialization and just skip initialization
of GPIO if it is NULL. This also prevents crashes, because there is no
way GPIO interrupt to be triggered in runtime for this DIO.
Signed-off-by: Marcin Niestroj <m.niestroj@grinn-global.com>
The PORCTRL setting command is in 'bank2' and so might not be changed on
the controller unless bank2 is enabled first.
Signed-off-by: Marc Reilly <marc@cpdesign.com.au>
Make use of DT_NODELABEL macros to get device instances
information to configure drivers I2C instances.
This allows to remove I2C related lines in fixup.h files
Signed-off-by: Erwan Gouriou <erwan.gouriou@linaro.org>
Use compatible information to configure i2c stm32.
With this, driver version selection is done thanks to compatible
and it is not needed anymore to do this via Kconfig symbol
selection under soc/
Signed-off-by: Erwan Gouriou <erwan.gouriou@linaro.org>
Convert the LMP90xxx ADC driver from using k_sleep() to using
k_msleep() in order to resolve a compilation error caused by passing
an int to k_sleep().
Signed-off-by: Henrik Brix Andersen <hebad@vestas.com>
Convert driver from DT_FLASH_BASE_ADDRESS and DT_FLASH_DEV_NAME to use
DT_REG_ADDR and DT_INST_LABEL.
Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
For a flash driver DT_DRV_COMPAT should be the compatible for the flash
controller and not the soc-nv-flash. Change to driver to use the flash
controllers compatible and get the soc-nv-flash properties as a child of
that controller.
Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
For a flash driver DT_DRV_COMPAT should be the compatible for the flash
controller and not the soc-nv-flash. Change to driver to use the flash
controllers compatible and get the soc-nv-flash properties as a child of
that controller.
Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
For a flash driver DT_DRV_COMPAT should be the compatible for the flash
controller and not the soc-nv-flash. Change to driver to use the flash
controllers compatible and get the soc-nv-flash properties as a child of
that controller.
The soc_flash_mcux supports several possible compatible so handle that
as part of how we set DT_DRV_COMPAT.
Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
For a flash driver DT_DRV_COMPAT should be the compatible for the flash
controller and not the soc-nv-flash. Change to driver to use the flash
controllers compatible and get the soc-nv-flash properties as a child of
that controller.
Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
Convert driver to use new DT_INST macros throughout. Removed per
instance Kconfig symbols and replaced with DT_NODELABEL references where
needed.
Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
The 32 KiBy bulk erase command was being invoked without respecting
the flag that indicates it's supported. Make the invocation
conditional.
Signed-off-by: Peter Bigot <peter.bigot@nordicsemi.no>
Use the new devicetree API. Remove per-board enabling of ADC_0 by
setting ADC_0 to default y when the 'adc' node label points at an
enabled node of the expected compatible (depending on SoC).
Signed-off-by: Martí Bolívar <marti.bolivar@nordicsemi.no>
Now that all entropy drivers use DTS we can remove HAS_DTS_ENTROPY being
set everywhere as well as Kconfig ENTROPY_NAME since that is now coming
from DT_ENTROPY_NAME.
Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
Use the UNALIGNED_GET() macro instead of the
flash_sam0_read_unaigned_u32() function to ensure
word alignment of the source address.
Signed-off-by: Steven Slupsky <sslupsky@gmail.com>
drivers: flash: sam0: fix whitespace
Fix checkpass whitespace error.
Signed-off-by: Steven Slupsky <sslupsky@gmail.com>
Replace DT_I2C_._NAME macro with DT_LABEL(DT_NODELABEL()) instead. This
will allow us to remove all references to DT_I2C_._NAME.
Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
Replace DT_I2C_._NAME macro with DT_LABEL(DT_NODELABEL()) instead. This
will allow us to remove all references to DT_I2C_._NAME.
Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
Replace DT_I2C_._NAME macro with DT_LABEL(DT_NODELABEL()) instead. This
will allow us to remove all references to DT_I2C_._NAME.
Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
Convert driver to use DT_INST macros and remove related board per
instance Kconfig symbol usage.
Updated the openisa,rv32m1_vega-pinmux binding to require the label
property and updated the rv32m1.dtsi to add label properties for the
pinmux nodes.
Also update gpio_basic_api test to use DT_NODELABEL.
Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
When configuring the I2S peripheral as a master, the DMA channel
direction must be configured to transfer data from memory to the
peripheral.
Currently the configuration of channel direction is always set for
peripheral to memory regardless of whether it is the TX or the RX
channel.
Signed-off-by: Abe Kohandel <abe@electronshepherds.com>
HWINFO drivers should be responsible for ensuring that
the data structure is a sequence of bytes. That is not
what the current sam0 and nordic drivers do. The drivers
read the data as u32_t and then memcpy the data to a
buffer. This ensures the data has the endianness of the
underlying MCU, which in this case is Cortex M0 which
is little endian.
This commit fixes the endianness so the data can be
interpreted as a "left to right sequence of bytes".
This commit updates the API doc to provide clarification
of the data structure.
Add to 2.3 release notes.
Fixes#23444, #24103
Signed-off-by: Steven Slupsky <sslupsky@gmail.com>
Obtain RX time from the radio driver. Fill the `net_pkt` with
a timestamp if `NET_PKT_TIMESTAMP` is enabled.
Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
nRF radio driver will call `nrf_802154_transmit_failed` callback in case
no ACK is received, so we do not need to set timeout at the shim layer
anymore.
Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
Update `flash` shell commands to take an optional device argument,
instead of using the chosen flash device.
Signed-off-by: Ivo Clarysse <ivo@bcdevices.com>
Adds a shim layer around the mcux lpc flexcomm driver to adapt it to the
zephyr i2c interface. It leverages heavily from the existing mcux lpi2c
shim driver.
Signed-off-by: Maureen Helm <maureen.helm@nxp.com>
Replace DT_FLASH_DEV_BASE_ADDRESS with new DT_REG_ADDR/DT_INST macro as
we phase out DT_FLASH define usage.
Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
Replace DT_FLASH_WRITE_BLOCK_SIZE with new DT_INST_NODE_HAS_PROP and
DT_INST_PROP macro as we phase out DT_FLASH define usage.
Signed-off-by: Kumar Gala <kumar.gala@linaro.org>