soc: lpc55s3x: Enable VREF
Add node for VREF0 peripheral to LPC55S3X SOC DT Clock VREF peripheral if status = okay in DT Enable VREF on lpcxpresso55s36 Signed-off-by: Declan Snyder <declan.snyder@nxp.com>
This commit is contained in:
parent
b1d2a8a9b6
commit
15bc6a2389
3 changed files with 25 additions and 20 deletions
|
@ -176,6 +176,10 @@ zephyr_udc0: &usbfs {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
&vref0 {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
&dac0 {
|
&dac0 {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
pinctrl-0 = <&pinmux_dac0>;
|
pinctrl-0 = <&pinmux_dac0>;
|
||||||
|
|
|
@ -462,6 +462,15 @@
|
||||||
prescaler = <2>;
|
prescaler = <2>;
|
||||||
#pwm-cells = <3>;
|
#pwm-cells = <3>;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
vref0: vref@b5000 {
|
||||||
|
compatible = "nxp,vref";
|
||||||
|
regulator-name = "lpc55s36-vref";
|
||||||
|
reg = <0xb5000 0x30>;
|
||||||
|
status = "disabled";
|
||||||
|
nxp,buffer-startup-delay-us = <400>;
|
||||||
|
nxp,bandgap-startup-time-us = <20>;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
&nvic {
|
&nvic {
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
/*
|
/* Copyright 2017, 2019-2023 NXP
|
||||||
* Copyright 2017, 2019-2023 NXP
|
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: Apache-2.0
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
*/
|
*/
|
||||||
|
@ -323,15 +322,21 @@ DT_FOREACH_STATUS_OKAY(nxp_lpc_ctimer, CTIMER_CLOCK_SETUP)
|
||||||
#if defined(CONFIG_SOC_LPC55S36)
|
#if defined(CONFIG_SOC_LPC55S36)
|
||||||
CLOCK_SetClkDiv(kCLOCK_DivAdc0Clk, 2U, true);
|
CLOCK_SetClkDiv(kCLOCK_DivAdc0Clk, 2U, true);
|
||||||
CLOCK_AttachClk(kFRO_HF_to_ADC0);
|
CLOCK_AttachClk(kFRO_HF_to_ADC0);
|
||||||
#else
|
#else /* not LPC55s36 */
|
||||||
CLOCK_SetClkDiv(kCLOCK_DivAdcAsyncClk,
|
CLOCK_SetClkDiv(kCLOCK_DivAdcAsyncClk,
|
||||||
DT_PROP(DT_NODELABEL(adc0), clk_divider), true);
|
DT_PROP(DT_NODELABEL(adc0), clk_divider), true);
|
||||||
CLOCK_AttachClk(MUX_A(CM_ADCASYNCCLKSEL, DT_PROP(DT_NODELABEL(adc0), clk_source)));
|
CLOCK_AttachClk(MUX_A(CM_ADCASYNCCLKSEL, DT_PROP(DT_NODELABEL(adc0), clk_source)));
|
||||||
|
|
||||||
/* Power up the ADC */
|
/* Power up the ADC */
|
||||||
POWER_DisablePD(kPDRUNCFG_PD_LDOGPADC);
|
POWER_DisablePD(kPDRUNCFG_PD_LDOGPADC);
|
||||||
#endif
|
#endif /* SOC platform */
|
||||||
#endif
|
#endif /* ADC */
|
||||||
|
|
||||||
|
#if (DT_NODE_HAS_COMPAT_STATUS(DT_NODELABEL(vref0), nxp_vref, okay))
|
||||||
|
CLOCK_EnableClock(kCLOCK_Vref);
|
||||||
|
POWER_DisablePD(kPDRUNCFG_PD_VREF);
|
||||||
|
#endif /* vref0 */
|
||||||
|
|
||||||
#if DT_NODE_HAS_COMPAT_STATUS(DT_NODELABEL(dac0), nxp_lpdac, okay)
|
#if DT_NODE_HAS_COMPAT_STATUS(DT_NODELABEL(dac0), nxp_lpdac, okay)
|
||||||
#if defined(CONFIG_SOC_LPC55S36)
|
#if defined(CONFIG_SOC_LPC55S36)
|
||||||
CLOCK_SetClkDiv(kCLOCK_DivDac0Clk, 1U, true);
|
CLOCK_SetClkDiv(kCLOCK_DivDac0Clk, 1U, true);
|
||||||
|
@ -339,22 +344,9 @@ DT_FOREACH_STATUS_OKAY(nxp_lpc_ctimer, CTIMER_CLOCK_SETUP)
|
||||||
|
|
||||||
/* Disable DAC0 power down */
|
/* Disable DAC0 power down */
|
||||||
POWER_DisablePD(kPDRUNCFG_PD_DAC0);
|
POWER_DisablePD(kPDRUNCFG_PD_DAC0);
|
||||||
#endif
|
#endif /* SOC platform */
|
||||||
#endif
|
#endif /* DAC */
|
||||||
#if defined(CONFIG_SOC_LPC55S36)
|
|
||||||
#if (defined(CONFIG_ADC_MCUX_LPADC) || defined(CONFIG_DAC_MCUX_LPDAC))
|
|
||||||
/* Vref is required for LPADC reference */
|
|
||||||
POWER_DisablePD(kPDRUNCFG_PD_VREF);
|
|
||||||
|
|
||||||
vref_config_t vrefConfig;
|
|
||||||
|
|
||||||
VREF_GetDefaultConfig(&vrefConfig);
|
|
||||||
vrefConfig.bufferMode = kVREF_ModeHighPowerBuffer;
|
|
||||||
vrefConfig.enableInternalVoltageRegulator = true;
|
|
||||||
vrefConfig.enableVrefOut = true;
|
|
||||||
VREF_Init((VREF_Type *)VREF_BASE, &vrefConfig);
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue