drivers: serial: Enable pinctrl for kinetis lpsci driver
Enable pinctrl for kinetis lpsci uart driver Signed-off-by: Daniel DeGrasse <daniel.degrasse@nxp.com>
This commit is contained in:
parent
d0c535924f
commit
00793592eb
2 changed files with 11 additions and 1 deletions
|
@ -10,6 +10,7 @@
|
||||||
#include <device.h>
|
#include <device.h>
|
||||||
#include <drivers/uart.h>
|
#include <drivers/uart.h>
|
||||||
#include <drivers/clock_control.h>
|
#include <drivers/clock_control.h>
|
||||||
|
#include <drivers/pinctrl.h>
|
||||||
#include <fsl_lpsci.h>
|
#include <fsl_lpsci.h>
|
||||||
#include <soc.h>
|
#include <soc.h>
|
||||||
|
|
||||||
|
@ -21,6 +22,7 @@ struct mcux_lpsci_config {
|
||||||
#ifdef CONFIG_UART_INTERRUPT_DRIVEN
|
#ifdef CONFIG_UART_INTERRUPT_DRIVEN
|
||||||
void (*irq_config_func)(const struct device *dev);
|
void (*irq_config_func)(const struct device *dev);
|
||||||
#endif
|
#endif
|
||||||
|
const struct pinctrl_dev_config *pincfg;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct mcux_lpsci_data {
|
struct mcux_lpsci_data {
|
||||||
|
@ -237,6 +239,7 @@ static int mcux_lpsci_init(const struct device *dev)
|
||||||
const struct mcux_lpsci_config *config = dev->config;
|
const struct mcux_lpsci_config *config = dev->config;
|
||||||
lpsci_config_t uart_config;
|
lpsci_config_t uart_config;
|
||||||
uint32_t clock_freq;
|
uint32_t clock_freq;
|
||||||
|
int err;
|
||||||
|
|
||||||
if (clock_control_get_rate(config->clock_dev, config->clock_subsys,
|
if (clock_control_get_rate(config->clock_dev, config->clock_subsys,
|
||||||
&clock_freq)) {
|
&clock_freq)) {
|
||||||
|
@ -250,6 +253,11 @@ static int mcux_lpsci_init(const struct device *dev)
|
||||||
|
|
||||||
LPSCI_Init(config->base, &uart_config, clock_freq);
|
LPSCI_Init(config->base, &uart_config, clock_freq);
|
||||||
|
|
||||||
|
err = pinctrl_apply_state(config->pincfg, PINCTRL_STATE_DEFAULT);
|
||||||
|
if (err < 0) {
|
||||||
|
return err;
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_UART_INTERRUPT_DRIVEN
|
#ifdef CONFIG_UART_INTERRUPT_DRIVEN
|
||||||
config->irq_config_func(dev);
|
config->irq_config_func(dev);
|
||||||
#endif
|
#endif
|
||||||
|
@ -306,10 +314,12 @@ static const struct mcux_lpsci_config mcux_lpsci_##n##_config = { \
|
||||||
.clock_dev = DEVICE_DT_GET(DT_INST_CLOCKS_CTLR(n)), \
|
.clock_dev = DEVICE_DT_GET(DT_INST_CLOCKS_CTLR(n)), \
|
||||||
.clock_subsys = (clock_control_subsys_t)DT_INST_CLOCKS_CELL(n, name),\
|
.clock_subsys = (clock_control_subsys_t)DT_INST_CLOCKS_CELL(n, name),\
|
||||||
.baud_rate = DT_INST_PROP(n, current_speed), \
|
.baud_rate = DT_INST_PROP(n, current_speed), \
|
||||||
|
.pincfg = PINCTRL_DT_INST_DEV_CONFIG_GET(n), \
|
||||||
IRQ_FUNC_INIT \
|
IRQ_FUNC_INIT \
|
||||||
}
|
}
|
||||||
|
|
||||||
#define MCUX_LPSCI_INIT(n) \
|
#define MCUX_LPSCI_INIT(n) \
|
||||||
|
PINCTRL_DT_INST_DEFINE(n); \
|
||||||
\
|
\
|
||||||
static struct mcux_lpsci_data mcux_lpsci_##n##_data; \
|
static struct mcux_lpsci_data mcux_lpsci_##n##_data; \
|
||||||
\
|
\
|
||||||
|
|
|
@ -2,7 +2,7 @@ description: Kinetis LPSCI UART
|
||||||
|
|
||||||
compatible: "nxp,kinetis-lpsci"
|
compatible: "nxp,kinetis-lpsci"
|
||||||
|
|
||||||
include: uart-controller.yaml
|
include: [uart-controller.yaml, pinctrl-device.yaml]
|
||||||
|
|
||||||
properties:
|
properties:
|
||||||
reg:
|
reg:
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue