Lines Matching +full:syscon +full:- +full:reboot +full:- +full:mode

1 // SPDX-License-Identifier: GPL-2.0
3 // Copyright (c) 2011-2014 Samsung Electronics Co., Ltd.
6 // Exynos - CPU PMU(Power Management Unit) support
11 #include <linux/mfd/syscon.h>
15 #include <linux/soc/samsung/exynos-regs-pmu.h>
16 #include <linux/soc/samsung/exynos-pmu.h>
18 #include "exynos-pmu.h"
38 void exynos_sys_powerdown_conf(enum sys_powerdown mode) in exynos_sys_powerdown_conf() argument
43 if (!pmu_context || !pmu_context->pmu_data) in exynos_sys_powerdown_conf()
46 pmu_data = pmu_context->pmu_data; in exynos_sys_powerdown_conf()
48 if (pmu_data->powerdown_conf) in exynos_sys_powerdown_conf()
49 pmu_data->powerdown_conf(mode); in exynos_sys_powerdown_conf()
51 if (pmu_data->pmu_config) { in exynos_sys_powerdown_conf()
52 for (i = 0; (pmu_data->pmu_config[i].offset != PMU_TABLE_END); i++) in exynos_sys_powerdown_conf()
53 pmu_raw_writel(pmu_data->pmu_config[i].val[mode], in exynos_sys_powerdown_conf()
54 pmu_data->pmu_config[i].offset); in exynos_sys_powerdown_conf()
57 if (pmu_data->powerdown_conf_extra) in exynos_sys_powerdown_conf()
58 pmu_data->powerdown_conf_extra(mode); in exynos_sys_powerdown_conf()
76 .compatible = "samsung,exynos3250-pmu",
79 .compatible = "samsung,exynos4210-pmu",
82 .compatible = "samsung,exynos4412-pmu",
85 .compatible = "samsung,exynos5250-pmu",
88 .compatible = "samsung,exynos5410-pmu",
90 .compatible = "samsung,exynos5420-pmu",
93 .compatible = "samsung,exynos5433-pmu",
95 .compatible = "samsung,exynos7-pmu",
106 return ERR_PTR(-ENODEV); in exynos_get_pmu_regmap()
112 struct device *dev = &pdev->dev; in exynos_pmu_probe()
118 pmu_context = devm_kzalloc(&pdev->dev, in exynos_pmu_probe()
122 return -ENOMEM; in exynos_pmu_probe()
123 pmu_context->dev = dev; in exynos_pmu_probe()
124 pmu_context->pmu_data = of_device_get_match_data(dev); in exynos_pmu_probe()
126 if (pmu_context->pmu_data && pmu_context->pmu_data->pmu_init) in exynos_pmu_probe()
127 pmu_context->pmu_data->pmu_init(); in exynos_pmu_probe()
132 dev_err(dev, "Error populating children, reboot and poweroff might not work properly\n"); in exynos_pmu_probe()
140 .name = "exynos-pmu",