From be149593c9dbd07840b766f136ebe268ba164d2b Mon Sep 17 00:00:00 2001 From: Mateusz Sierszulski Date: Wed, 5 Jul 2023 13:00:28 +0200 Subject: [PATCH] drivers: pinctrl: Add more config options for Ambiq Apollo4 This commits add more configuration options for Ambiq Apollo4 pinctrl driver. Signed-off-by: Mateusz Sierszulski --- drivers/pinctrl/pinctrl_ambiq_apollo4.c | 1 + dts/bindings/pinctrl/ambiq,apollo4-pinctrl.yaml | 5 +++++ soc/arm/ambiq/apollo4x/pinctrl_soc.h | 3 +++ 3 files changed, 9 insertions(+) diff --git a/drivers/pinctrl/pinctrl_ambiq_apollo4.c b/drivers/pinctrl/pinctrl_ambiq_apollo4.c index e318af5693f..6247838738e 100644 --- a/drivers/pinctrl/pinctrl_ambiq_apollo4.c +++ b/drivers/pinctrl/pinctrl_ambiq_apollo4.c @@ -22,6 +22,7 @@ static void pinctrl_configure_pin(const pinctrl_soc_pin_t *pin) : AM_HAL_GPIO_PIN_OUTCFG_DISABLE; pin_config.GP.cfg_b.eDriveStrength = pin->drive_strength; pin_config.GP.cfg_b.uSlewRate = pin->slew_rate; + pin_config.GP.cfg_b.uNCE = pin->iom_nce; if (pin->bias_pull_up) { pin_config.GP.cfg_b.ePullup = pin->ambiq_pull_up_ohms + AM_HAL_GPIO_PIN_PULLUP_1_5K; diff --git a/dts/bindings/pinctrl/ambiq,apollo4-pinctrl.yaml b/dts/bindings/pinctrl/ambiq,apollo4-pinctrl.yaml index 6599f334a08..4487952077e 100644 --- a/dts/bindings/pinctrl/ambiq,apollo4-pinctrl.yaml +++ b/dts/bindings/pinctrl/ambiq,apollo4-pinctrl.yaml @@ -104,3 +104,8 @@ child-binding: default: 1500 description: | The pullup resistor value. The default value is 1500 ohms. + ambiq,iom-nce-module: + type: int + default: 0 + description: | + IOM nCE module select. The default value is reset value. diff --git a/soc/arm/ambiq/apollo4x/pinctrl_soc.h b/soc/arm/ambiq/apollo4x/pinctrl_soc.h index 93e4bf4e641..b42f17171e7 100644 --- a/soc/arm/ambiq/apollo4x/pinctrl_soc.h +++ b/soc/arm/ambiq/apollo4x/pinctrl_soc.h @@ -35,6 +35,8 @@ struct apollo4_pinctrl_soc_pin { uint32_t bias_pull_down : 1; /** pullup resistor value */ uint32_t ambiq_pull_up_ohms : 3; + /** IOM nCE module select */ + uint32_t iom_nce : 6; }; typedef struct apollo4_pinctrl_soc_pin pinctrl_soc_pin_t; @@ -59,6 +61,7 @@ typedef struct apollo4_pinctrl_soc_pin pinctrl_soc_pin_t; DT_PROP(node_id, bias_pull_up), \ DT_PROP(node_id, bias_pull_down), \ DT_ENUM_IDX(node_id, ambiq_pull_up_ohms), \ + DT_PROP(node_id, ambiq_iom_nce_module), \ }, /**