hc
2024-02-20 102a0743326a03cd1a1202ceda21e175b7d3575c
kernel/drivers/mfd/intel_soc_pmic_crc.c
....@@ -1,25 +1,18 @@
1
+// SPDX-License-Identifier: GPL-2.0
12 /*
2
- * intel_soc_pmic_crc.c - Device access for Crystal Cove PMIC
3
+ * Device access for Crystal Cove PMIC
34 *
45 * Copyright (C) 2013, 2014 Intel Corporation. All rights reserved.
5
- *
6
- * This program is free software; you can redistribute it and/or
7
- * modify it under the terms of the GNU General Public License version
8
- * 2 as published by the Free Software Foundation.
9
- *
10
- * This program is distributed in the hope that it will be useful,
11
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
- * GNU General Public License for more details.
146 *
157 * Author: Yang, Bin <bin.yang@intel.com>
168 * Author: Zhu, Lejun <lejun.zhu@linux.intel.com>
179 */
1810
19
-#include <linux/mfd/core.h>
2011 #include <linux/interrupt.h>
2112 #include <linux/regmap.h>
13
+#include <linux/mfd/core.h>
2214 #include <linux/mfd/intel_soc_pmic.h>
15
+
2316 #include "intel_soc_pmic_core.h"
2417
2518 #define CRYSTAL_COVE_MAX_REGISTER 0xC6
....@@ -36,48 +29,23 @@
3629 #define CRYSTAL_COVE_IRQ_VHDMIOCP 6
3730
3831 static struct resource gpio_resources[] = {
39
- {
40
- .name = "GPIO",
41
- .start = CRYSTAL_COVE_IRQ_GPIO,
42
- .end = CRYSTAL_COVE_IRQ_GPIO,
43
- .flags = IORESOURCE_IRQ,
44
- },
32
+ DEFINE_RES_IRQ_NAMED(CRYSTAL_COVE_IRQ_GPIO, "GPIO"),
4533 };
4634
4735 static struct resource pwrsrc_resources[] = {
48
- {
49
- .name = "PWRSRC",
50
- .start = CRYSTAL_COVE_IRQ_PWRSRC,
51
- .end = CRYSTAL_COVE_IRQ_PWRSRC,
52
- .flags = IORESOURCE_IRQ,
53
- },
36
+ DEFINE_RES_IRQ_NAMED(CRYSTAL_COVE_IRQ_PWRSRC, "PWRSRC"),
5437 };
5538
5639 static struct resource adc_resources[] = {
57
- {
58
- .name = "ADC",
59
- .start = CRYSTAL_COVE_IRQ_ADC,
60
- .end = CRYSTAL_COVE_IRQ_ADC,
61
- .flags = IORESOURCE_IRQ,
62
- },
40
+ DEFINE_RES_IRQ_NAMED(CRYSTAL_COVE_IRQ_ADC, "ADC"),
6341 };
6442
6543 static struct resource thermal_resources[] = {
66
- {
67
- .name = "THERMAL",
68
- .start = CRYSTAL_COVE_IRQ_THRM,
69
- .end = CRYSTAL_COVE_IRQ_THRM,
70
- .flags = IORESOURCE_IRQ,
71
- },
44
+ DEFINE_RES_IRQ_NAMED(CRYSTAL_COVE_IRQ_THRM, "THERMAL"),
7245 };
7346
7447 static struct resource bcu_resources[] = {
75
- {
76
- .name = "BCU",
77
- .start = CRYSTAL_COVE_IRQ_BCU,
78
- .end = CRYSTAL_COVE_IRQ_BCU,
79
- .flags = IORESOURCE_IRQ,
80
- },
48
+ DEFINE_RES_IRQ_NAMED(CRYSTAL_COVE_IRQ_BCU, "BCU"),
8149 };
8250
8351 static struct mfd_cell crystal_cove_byt_dev[] = {
....@@ -107,7 +75,7 @@
10775 .resources = gpio_resources,
10876 },
10977 {
110
- .name = "crystal_cove_pmic",
78
+ .name = "byt_crystal_cove_pmic",
11179 },
11280 {
11381 .name = "crystal_cove_pwm",
....@@ -119,6 +87,9 @@
11987 .name = "crystal_cove_gpio",
12088 .num_resources = ARRAY_SIZE(gpio_resources),
12189 .resources = gpio_resources,
90
+ },
91
+ {
92
+ .name = "cht_crystal_cove_pmic",
12293 },
12394 {
12495 .name = "crystal_cove_pwm",
....@@ -134,27 +105,13 @@
134105 };
135106
136107 static const struct regmap_irq crystal_cove_irqs[] = {
137
- [CRYSTAL_COVE_IRQ_PWRSRC] = {
138
- .mask = BIT(CRYSTAL_COVE_IRQ_PWRSRC),
139
- },
140
- [CRYSTAL_COVE_IRQ_THRM] = {
141
- .mask = BIT(CRYSTAL_COVE_IRQ_THRM),
142
- },
143
- [CRYSTAL_COVE_IRQ_BCU] = {
144
- .mask = BIT(CRYSTAL_COVE_IRQ_BCU),
145
- },
146
- [CRYSTAL_COVE_IRQ_ADC] = {
147
- .mask = BIT(CRYSTAL_COVE_IRQ_ADC),
148
- },
149
- [CRYSTAL_COVE_IRQ_CHGR] = {
150
- .mask = BIT(CRYSTAL_COVE_IRQ_CHGR),
151
- },
152
- [CRYSTAL_COVE_IRQ_GPIO] = {
153
- .mask = BIT(CRYSTAL_COVE_IRQ_GPIO),
154
- },
155
- [CRYSTAL_COVE_IRQ_VHDMIOCP] = {
156
- .mask = BIT(CRYSTAL_COVE_IRQ_VHDMIOCP),
157
- },
108
+ REGMAP_IRQ_REG(CRYSTAL_COVE_IRQ_PWRSRC, 0, BIT(CRYSTAL_COVE_IRQ_PWRSRC)),
109
+ REGMAP_IRQ_REG(CRYSTAL_COVE_IRQ_THRM, 0, BIT(CRYSTAL_COVE_IRQ_THRM)),
110
+ REGMAP_IRQ_REG(CRYSTAL_COVE_IRQ_BCU, 0, BIT(CRYSTAL_COVE_IRQ_BCU)),
111
+ REGMAP_IRQ_REG(CRYSTAL_COVE_IRQ_ADC, 0, BIT(CRYSTAL_COVE_IRQ_ADC)),
112
+ REGMAP_IRQ_REG(CRYSTAL_COVE_IRQ_CHGR, 0, BIT(CRYSTAL_COVE_IRQ_CHGR)),
113
+ REGMAP_IRQ_REG(CRYSTAL_COVE_IRQ_GPIO, 0, BIT(CRYSTAL_COVE_IRQ_GPIO)),
114
+ REGMAP_IRQ_REG(CRYSTAL_COVE_IRQ_VHDMIOCP, 0, BIT(CRYSTAL_COVE_IRQ_VHDMIOCP)),
158115 };
159116
160117 static const struct regmap_irq_chip crystal_cove_irq_chip = {