33 * SPDX-License-Identifier: Apache-2.0
44 */
55
6- #define DT_DRV_COMPAT nordic_npm1300_regulator
7-
86#include <errno.h>
97#include <string.h>
108
@@ -689,9 +687,6 @@ int regulator_npm13xx_init(const struct device *dev)
689687 }
690688
691689 ret = regulator_npm13xx_set_pin_ctrl (dev , & config -> pwm_gpios , NPM13XX_GPIO_TYPE_PWM );
692- if (ret != 0 ) {
693- return ret ;
694- }
695690
696691 return ret ;
697692}
@@ -712,13 +707,13 @@ static DEVICE_API(regulator, api) = {
712707 !!(DT_PROP_BY_IDX(node_id, prop, 1) & GPIO_ACTIVE_LOW)}), \
713708 ({NPM13XX_GPIO_UNUSED, false}))
714709
715- #define REGULATOR_NPM13XX_DEFINE (node_id , id , _source ) \
710+ #define REGULATOR_NPM13XX_DEFINE (partno , node_id , id , _source ) \
716711 BUILD_ASSERT(DT_PROP_LEN_OR(node_id, enable_gpio_config, 2) == 2); \
717712 BUILD_ASSERT(DT_PROP_LEN_OR(node_id, retention_gpio_config, 2) == 2); \
718713 BUILD_ASSERT(DT_PROP_LEN_OR(node_id, pwm_gpio_config, 2) == 2); \
719- static struct regulator_npm13xx_data data_## id; \
714+ static struct regulator_npm13xx_data regulator_##partno##_data_## id; \
720715 \
721- static const struct regulator_npm13xx_config config_## id = { \
716+ static const struct regulator_npm13xx_config regulator_##partno##_config_## id = { \
722717 .common = REGULATOR_DT_COMMON_CONFIG_INIT(node_id), \
723718 .mfd = DEVICE_DT_GET(DT_GPARENT(node_id)), \
724719 .source = _source, \
@@ -730,30 +725,39 @@ static DEVICE_API(regulator, api) = {
730725 .active_discharge = DT_PROP(node_id, active_discharge), \
731726 .ldo_disable_workaround = DT_PROP(node_id, nordic_anomaly38_disable_workaround)}; \
732727 \
733- DEVICE_DT_DEFINE(node_id, regulator_npm13xx_init, NULL, &data_##id, &config_##id, \
734- POST_KERNEL, CONFIG_REGULATOR_NPM13XX_INIT_PRIORITY, &api);
728+ DEVICE_DT_DEFINE(node_id, regulator_npm13xx_init, NULL, ®ulator_##partno##_data_##id, \
729+ ®ulator_##partno##_config_##id, POST_KERNEL, \
730+ CONFIG_REGULATOR_NPM13XX_INIT_PRIORITY, &api);
735731
736- #define REGULATOR_NPM13XX_DEFINE_COND (inst , child , source ) \
737- COND_CODE_1(DT_NODE_EXISTS(DT_INST_CHILD(inst , child)), \
738- (REGULATOR_NPM13XX_DEFINE(DT_INST_CHILD(inst , child), child##inst , source)), \
732+ #define REGULATOR_NPM13XX_DEFINE_COND (partno , n , child , source ) \
733+ COND_CODE_1(DT_NODE_EXISTS(DT_INST_CHILD(n , child)), \
734+ (REGULATOR_NPM13XX_DEFINE(partno, DT_INST_CHILD(n , child), child##n , source)), \
739735 ())
740736
741- #define REGULATOR_NPM13XX_DEFINE_ALL (inst ) \
742- static const struct regulator_npm13xx_pconfig config_##inst = { \
743- .mfd = DEVICE_DT_GET(DT_INST_PARENT(inst )), \
744- .dvs_state_pins = {GPIO_DT_SPEC_INST_GET_BY_IDX_OR(inst , dvs_gpios, 0, {0}), \
745- GPIO_DT_SPEC_INST_GET_BY_IDX_OR(inst , dvs_gpios, 1, {0}), \
746- GPIO_DT_SPEC_INST_GET_BY_IDX_OR(inst , dvs_gpios, 2, {0}), \
747- GPIO_DT_SPEC_INST_GET_BY_IDX_OR(inst , dvs_gpios, 3, {0}), \
748- GPIO_DT_SPEC_INST_GET_BY_IDX_OR(inst , dvs_gpios, 4, {0})}}; \
737+ #define REGULATOR_NPM13XX_DEFINE_ALL (partno , n ) \
738+ static const struct regulator_npm13xx_pconfig regulator_##partno##_config##n = { \
739+ .mfd = DEVICE_DT_GET(DT_INST_PARENT(n )), \
740+ .dvs_state_pins = {GPIO_DT_SPEC_INST_GET_BY_IDX_OR(n , dvs_gpios, 0, {0}), \
741+ GPIO_DT_SPEC_INST_GET_BY_IDX_OR(n , dvs_gpios, 1, {0}), \
742+ GPIO_DT_SPEC_INST_GET_BY_IDX_OR(n , dvs_gpios, 2, {0}), \
743+ GPIO_DT_SPEC_INST_GET_BY_IDX_OR(n , dvs_gpios, 3, {0}), \
744+ GPIO_DT_SPEC_INST_GET_BY_IDX_OR(n , dvs_gpios, 4, {0})}}; \
749745 \
750- DEVICE_DT_INST_DEFINE(inst, regulator_npm13xx_common_init, NULL, NULL, &config_##inst, \
751- POST_KERNEL, CONFIG_REGULATOR_NPM13XX_COMMON_INIT_PRIORITY, \
746+ DEVICE_DT_INST_DEFINE(n, regulator_npm13xx_common_init, NULL, NULL, \
747+ ®ulator_##partno##_config##n, POST_KERNEL, \
748+ CONFIG_REGULATOR_NPM13XX_COMMON_INIT_PRIORITY, \
752749 &parent_api); \
753750 \
754- REGULATOR_NPM13XX_DEFINE_COND(inst, buck1, NPM13XX_SOURCE_BUCK1) \
755- REGULATOR_NPM13XX_DEFINE_COND(inst, buck2, NPM13XX_SOURCE_BUCK2) \
756- REGULATOR_NPM13XX_DEFINE_COND(inst, ldo1, NPM13XX_SOURCE_LDO1) \
757- REGULATOR_NPM13XX_DEFINE_COND(inst, ldo2, NPM13XX_SOURCE_LDO2)
751+ REGULATOR_NPM13XX_DEFINE_COND(partno, n, buck1, NPM13XX_SOURCE_BUCK1) \
752+ REGULATOR_NPM13XX_DEFINE_COND(partno, n, buck2, NPM13XX_SOURCE_BUCK2) \
753+ REGULATOR_NPM13XX_DEFINE_COND(partno, n, ldo1, NPM13XX_SOURCE_LDO1) \
754+ REGULATOR_NPM13XX_DEFINE_COND(partno, n, ldo2, NPM13XX_SOURCE_LDO2)
755+
756+ #define DT_DRV_COMPAT nordic_npm1300_regulator
757+ #define REGULATOR_NPM1300_DEFINE_ALL (n ) REGULATOR_NPM13XX_DEFINE_ALL(npm1300, n)
758+ DT_INST_FOREACH_STATUS_OKAY (REGULATOR_NPM1300_DEFINE_ALL )
758759
759- DT_INST_FOREACH_STATUS_OKAY (REGULATOR_NPM13XX_DEFINE_ALL )
760+ #undef DT_DRV_COMPAT
761+ #define DT_DRV_COMPAT nordic_npm1304_regulator
762+ #define REGULATOR_NPM1304_DEFINE_ALL (n ) REGULATOR_NPM13XX_DEFINE_ALL(npm1304, n)
763+ DT_INST_FOREACH_STATUS_OKAY (REGULATOR_NPM1304_DEFINE_ALL )
0 commit comments