From 3a940cea79332a446209dc4cc370e46baad38bcc Mon Sep 17 00:00:00 2001 From: Gerson Fernando Budke Date: Sun, 13 Mar 2022 14:39:09 -0300 Subject: [PATCH] drivers: dac: Add sam support to pinctrl This add support to pinctrl at Atmel sam dac driver. Signed-off-by: Gerson Fernando Budke --- drivers/dac/dac_sam.c | 11 +++++++++++ dts/bindings/dac/atmel,sam-dac.yaml | 4 +++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/drivers/dac/dac_sam.c b/drivers/dac/dac_sam.c index 650f651dff2..67bd3d53ac5 100644 --- a/drivers/dac/dac_sam.c +++ b/drivers/dac/dac_sam.c @@ -18,6 +18,7 @@ #include #include #include +#include #include LOG_MODULE_REGISTER(dac_sam, CONFIG_DAC_LOG_LEVEL); @@ -31,6 +32,7 @@ BUILD_ASSERT(IS_ENABLED(CONFIG_SOC_SERIES_SAME70) || /* Device constant configuration parameters */ struct dac_sam_dev_cfg { Dacc *regs; + const struct pinctrl_dev_config *pcfg; void (*irq_config)(void); uint8_t irq_id; uint8_t periph_id; @@ -119,6 +121,7 @@ static int dac_sam_init(const struct device *dev) const struct dac_sam_dev_cfg *const dev_cfg = dev->config; struct dac_sam_dev_data *const dev_data = dev->data; Dacc *const dac = dev_cfg->regs; + int retval; /* Configure interrupts */ dev_cfg->irq_config(); @@ -131,6 +134,11 @@ static int dac_sam_init(const struct device *dev) /* Enable DAC clock in PMC */ soc_pmc_peripheral_enable(dev_cfg->periph_id); + retval = pinctrl_apply_state(dev_cfg->pcfg, PINCTRL_STATE_DEFAULT); + if (retval < 0) { + return retval; + } + /* Set Mode Register */ dac->DACC_MR = DACC_MR_PRESCALER(dev_cfg->prescaler); @@ -155,8 +163,11 @@ static void dacc_irq_config(void) DEVICE_DT_INST_GET(0), 0); } +PINCTRL_DT_INST_DEFINE(0); + static const struct dac_sam_dev_cfg dacc_sam_config = { .regs = (Dacc *)DT_INST_REG_ADDR(0), + .pcfg = PINCTRL_DT_INST_DEV_CONFIG_GET(0), .irq_id = DT_INST_IRQN(0), .irq_config = dacc_irq_config, .periph_id = DT_INST_PROP(0, peripheral_id), diff --git a/dts/bindings/dac/atmel,sam-dac.yaml b/dts/bindings/dac/atmel,sam-dac.yaml index 0de27718080..632deab4aec 100644 --- a/dts/bindings/dac/atmel,sam-dac.yaml +++ b/dts/bindings/dac/atmel,sam-dac.yaml @@ -5,7 +5,9 @@ description: Atmel SAM family DAC compatible: "atmel,sam-dac" -include: dac-controller.yaml +include: + - name: dac-controller.yaml + - name: pinctrl-device.yaml properties: reg: