This is an automated email from the ASF dual-hosted git repository.

acassis pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nuttx.git


The following commit(s) were added to refs/heads/master by this push:
     new 903f3935467 arch/nrf53: add DCDC regulator support
903f3935467 is described below

commit 903f393546789dee276a261f1dc618dffa668a8f
Author: raiden00pl <[email protected]>
AuthorDate: Sun Mar 22 10:51:33 2026 +0100

    arch/nrf53: add DCDC regulator support
    
    add DCDC regulator support
    
    Signed-off-by: raiden00pl <[email protected]>
---
 arch/arm/src/nrf53/Kconfig                     |  7 +++
 arch/arm/src/nrf53/hardware/nrf53_regulators.h | 59 ++++++++++++++++++++++++++
 arch/arm/src/nrf53/nrf53_clockconfig.c         |  7 +++
 3 files changed, 73 insertions(+)

diff --git a/arch/arm/src/nrf53/Kconfig b/arch/arm/src/nrf53/Kconfig
index b951cd9bde1..501bb2d375f 100644
--- a/arch/arm/src/nrf53/Kconfig
+++ b/arch/arm/src/nrf53/Kconfig
@@ -424,6 +424,13 @@ config NRF53_SYSTIMER_RTC
 
 endchoice # System Timer Source
 
+config NRF53_DCDC
+       bool "Enable DC/DC regulator"
+       default n
+       ---help---
+               This option enables the DC/DC regulator, which reduces
+               current consumption. This requires extra circuitry (inductors).
+
 if NRF53_SYSTIMER_RTC
 
 config NRF53_SYSTIMER_RTC_INSTANCE
diff --git a/arch/arm/src/nrf53/hardware/nrf53_regulators.h 
b/arch/arm/src/nrf53/hardware/nrf53_regulators.h
new file mode 100644
index 00000000000..c9704792334
--- /dev/null
+++ b/arch/arm/src/nrf53/hardware/nrf53_regulators.h
@@ -0,0 +1,59 @@
+/****************************************************************************
+ * arch/arm/src/nrf53/hardware/nrf53_regulators.h
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.  The
+ * ASF licenses this file to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the
+ * License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
+ * License for the specific language governing permissions and limitations
+ * under the License.
+ *
+ ****************************************************************************/
+
+#ifndef __ARCH_ARM_SRC_NRF53_HARDWARE_NRF53_REGULATORS_H
+#define __ARCH_ARM_SRC_NRF53_HARDWARE_NRF53_REGULATORS_H
+
+/****************************************************************************
+ * Included Files
+ ****************************************************************************/
+
+#include <nuttx/config.h>
+#include "nrf53_memorymap.h"
+
+/****************************************************************************
+ * Pre-processor Definitions
+ ****************************************************************************/
+
+/* Register offsets *********************************************************/
+
+#define NRF53_REGULATORS_MAINREGSTATUS_OFFSET 0x428  /* Main supply status */
+#define NRF53_REGULATORS_SYSTEMOFF_OFFSET     0x500  /* System OFF register */
+#define NRF53_REGULATORS_POFCON_OFFSET        0x510  /* Power-fail comparator 
configuration */
+#define NRF53_REGULATORS_MAINDCDCEN_OFFSET    0x704  /* DC/DC enable register 
for VREGMAIN */
+#define NRF53_REGULATORS_RADIODCDCEN_OFFSET   0x904  /* DC/DC enable register 
for VREGRADIO */
+#define NRF53_REGULATORS_HDCDCEN_OFFSET       0xb00  /* DC/DC enable register 
for VREGH */
+
+/* Register definitions *****************************************************/
+
+#define NRF53_REGULATORS_MAINREGSTATUS        (NRF53_REGULATORS_BASE + 
NRF53_REGULATORS_MAINREGSTATUS_OFFSET)
+#define NRF53_REGULATORS_SYSTEMOFF            (NRF53_REGULATORS_BASE + 
NRF53_REGULATORS_SYSTEMOFF_OFFSET)
+#define NRF53_REGULATORS_POFCON               (NRF53_REGULATORS_BASE + 
NRF53_REGULATORS_POFCON_OFFSET)
+#define NRF53_REGULATORS_MAINDCDCEN           (NRF53_REGULATORS_BASE + 
NRF53_REGULATORS_MAINDCDCEN_OFFSET)
+#define NRF53_REGULATORS_RADIODCDCEN          (NRF53_REGULATORS_BASE + 
NRF53_REGULATORS_RADIODCDCEN_OFFSET)
+#define NRF53_REGULATORS_HDCDCEN              (NRF53_REGULATORS_BASE + 
NRF53_REGULATORS_HDCDCEN_OFFSET)
+
+/* Register bit definitions *************************************************/
+
+#define REGULATORS_DCDCEN_ENABLE              (1 << 0)
+
+#endif /* __ARCH_ARM_SRC_NRF53_HARDWARE_NRF53_REGULATORS_H */
diff --git a/arch/arm/src/nrf53/nrf53_clockconfig.c 
b/arch/arm/src/nrf53/nrf53_clockconfig.c
index c0135eaa65a..89de67eff7d 100644
--- a/arch/arm/src/nrf53/nrf53_clockconfig.c
+++ b/arch/arm/src/nrf53/nrf53_clockconfig.c
@@ -36,6 +36,7 @@
 #include "nrf53_clockconfig.h"
 #include "hardware/nrf53_clock.h"
 #include "hardware/nrf53_power.h"
+#include "hardware/nrf53_regulators.h"
 #include "hardware/nrf53_gpio.h"
 
 #ifdef CONFIG_NRF53_APPCORE
@@ -130,4 +131,10 @@ void nrf53_clockconfig(void)
       /* Wait for HFCLK192M to be running */
     }
 #endif
+
+#ifdef CONFIG_NRF53_DCDC
+  /* Enable DC/DC regulator */
+
+  putreg32(1, NRF53_REGULATORS_MAINDCDCEN);
+#endif
 }

Reply via email to