88#include <zephyr/drivers/spi/rtio.h>
99#include <zephyr/drivers/pinctrl.h>
1010#include <zephyr/drivers/clock_control.h>
11+ #include <zephyr/sys/__assert.h>
1112#include <zephyr/irq.h>
1213
1314#include "../spi_context.h"
1617#include <zephyr/drivers/mfd/nxp_lp_flexcomm.h>
1718#endif
1819
19- #include <fsl_lpspi.h>
20-
2120/* If any hardware revisions change this, make it into a DT property.
2221 * DONT'T make #ifdefs here by platform.
2322 */
3029#define DEV_CFG (_dev ) ((const struct spi_mcux_config *)(_dev)->config)
3130#define DEV_DATA (_dev ) ((struct spi_mcux_data *)(_dev)->data)
3231
33- /* flag for SDK API for master transfers */
34- #define LPSPI_MASTER_XFER_CFG_FLAGS (slave ) \
35- kLPSPI_MasterPcsContinuous | (slave << LPSPI_MASTER_PCS_SHIFT)
36-
3732struct spi_mcux_config {
3833 DEVICE_MMIO_NAMED_ROM (reg_base );
3934 const struct device * clock_dev ;
@@ -43,8 +38,8 @@ struct spi_mcux_config {
4338 uint32_t sck_pcs_delay ;
4439 uint32_t transfer_delay ;
4540 const struct pinctrl_dev_config * pincfg ;
46- lpspi_pin_config_t data_pin_config ;
47- bool output_config ;
41+ uint8_t data_pin_config ;
42+ bool tristate_output ;
4843 uint8_t tx_fifo_size ;
4944 uint8_t rx_fifo_size ;
5045 uint8_t irqn ;
@@ -58,7 +53,7 @@ struct spi_mcux_data {
5853 size_t transfer_len ;
5954};
6055
61- /* common configure function that verifies spi_cfg validity and set up configuration parameters */
56+ /* verifies spi_cfg validity and set up configuration of hardware for xfer */
6257int spi_mcux_configure (const struct device * dev , const struct spi_config * spi_cfg );
6358
6459/* Does these things:
@@ -75,9 +70,6 @@ int spi_mcux_release(const struct device *dev, const struct spi_config *spi_cfg)
7570
7671void lpspi_wait_tx_fifo_empty (const struct device * dev );
7772
78- /* Argument to MCUX SDK IRQ handler */
79- #define LPSPI_IRQ_HANDLE_ARG COND_CODE_1(CONFIG_NXP_LP_FLEXCOMM, (LPSPI_GetInstance(base)), (base))
80-
8173#define SPI_MCUX_LPSPI_IRQ_FUNC_LP_FLEXCOMM (n ) \
8274 nxp_lp_flexcomm_setirqhandler(DEVICE_DT_GET(DT_INST_PARENT(n)), DEVICE_DT_INST_GET(n), \
8375 LP_FLEXCOMM_PERIPH_LPSPI, lpspi_isr);
@@ -108,8 +100,8 @@ void lpspi_wait_tx_fifo_empty(const struct device *dev);
108100 .transfer_delay = UTIL_AND(DT_INST_NODE_HAS_PROP(n, transfer_delay), \
109101 DT_INST_PROP(n, transfer_delay)), \
110102 .pincfg = PINCTRL_DT_INST_DEV_CONFIG_GET(n), \
111- .data_pin_config = DT_INST_ENUM_IDX(n, data_pin_config), \
112- .output_config = DT_INST_PROP(n, tristate_output), \
103+ .data_pin_config = (uint8_t) DT_INST_ENUM_IDX(n, data_pin_config), \
104+ .tristate_output = DT_INST_PROP(n, tristate_output), \
113105 .rx_fifo_size = (uint8_t)DT_INST_PROP(n, rx_fifo_size), \
114106 .tx_fifo_size = (uint8_t)DT_INST_PROP(n, tx_fifo_size), \
115107 .irqn = (uint8_t)LPSPI_IRQN(n), \
0 commit comments