Commit 40a3a0f2 authored by Linus Walleij's avatar Linus Walleij Committed by Lee Jones

mfd: qcom-pm8xxx: Clean up PM8XXX namespace

The Kconfig and file naming for the PM8xxx driver is totally
confusing:

- Kconfig options MFD_PM8XXX and MFD_PM8921_CORE, some in-kernel
  users depending on or selecting either at random.
- A driver file named pm8921-core.c even if it is indeed
  used by the whole PM8xxx family of chips.
- An irqchip named pm8xxx since it was (I guess) realized that
  the driver was generic for all pm8xxx PMICs.

As I may want to add support for PM8901 this is starting to get
really messy. Fix this situation by:

- Remove the MFD_PM8921_CORE symbol and rely solely on MFD_PM8XXX
  and convert all users, including LEDs Kconfig and ARM defconfigs
  for qcom and multi_v7 to use that single symbol.
- Renaming the driver to qcom-pm8xxx.c to fit along the two
  other qcom* prefixed drivers.
- Rename functions withing the driver from 8921 to 8xxx to
  indicate it is generic.
- Just drop the =m config from the pxa_defconfig, I have no clue
  why it is even there, it is not a Qualcomm platform. (Possibly
  older Kconfig noise from saveconfig.)

Cc: Stephen Boyd <sboyd@codeaurora.org>
Cc: Neil Armstrong <narmstrong@baylibre.com>
Cc: Abhijeet Dharmapurikar <adharmap@codeaurora.org>
Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
Reviewed-by: default avatarAndy Gross <andy.gross@linaro.org>
Acked-by: default avatarBjorn Andersson <bjorn.andersson@linaro.org>
Acked-by: default avatarJacek Anaszewski <j.anaszewski@samsung.com>
Acked-by: default avatarArnd Bergmann <arnd@arndb.de>
Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
parent 1001354c
...@@ -489,7 +489,7 @@ CONFIG_MFD_MAX8907=y ...@@ -489,7 +489,7 @@ CONFIG_MFD_MAX8907=y
CONFIG_MFD_MAX8997=y CONFIG_MFD_MAX8997=y
CONFIG_MFD_MAX8998=y CONFIG_MFD_MAX8998=y
CONFIG_MFD_RK808=y CONFIG_MFD_RK808=y
CONFIG_MFD_PM8921_CORE=y CONFIG_MFD_PM8XXX=y
CONFIG_MFD_QCOM_RPM=y CONFIG_MFD_QCOM_RPM=y
CONFIG_MFD_SPMI_PMIC=y CONFIG_MFD_SPMI_PMIC=y
CONFIG_MFD_SEC_CORE=y CONFIG_MFD_SEC_CORE=y
......
...@@ -411,7 +411,6 @@ CONFIG_MFD_MAX77693=y ...@@ -411,7 +411,6 @@ CONFIG_MFD_MAX77693=y
CONFIG_MFD_MAX8907=m CONFIG_MFD_MAX8907=m
CONFIG_EZX_PCAP=y CONFIG_EZX_PCAP=y
CONFIG_UCB1400_CORE=m CONFIG_UCB1400_CORE=m
CONFIG_MFD_PM8921_CORE=m
CONFIG_MFD_SEC_CORE=y CONFIG_MFD_SEC_CORE=y
CONFIG_MFD_PALMAS=y CONFIG_MFD_PALMAS=y
CONFIG_MFD_TPS65090=y CONFIG_MFD_TPS65090=y
......
...@@ -119,7 +119,6 @@ CONFIG_POWER_RESET=y ...@@ -119,7 +119,6 @@ CONFIG_POWER_RESET=y
CONFIG_POWER_RESET_MSM=y CONFIG_POWER_RESET_MSM=y
CONFIG_THERMAL=y CONFIG_THERMAL=y
CONFIG_MFD_PM8XXX=y CONFIG_MFD_PM8XXX=y
CONFIG_MFD_PM8921_CORE=y
CONFIG_MFD_QCOM_RPM=y CONFIG_MFD_QCOM_RPM=y
CONFIG_MFD_SPMI_PMIC=y CONFIG_MFD_SPMI_PMIC=y
CONFIG_REGULATOR=y CONFIG_REGULATOR=y
......
...@@ -645,7 +645,7 @@ config LEDS_VERSATILE ...@@ -645,7 +645,7 @@ config LEDS_VERSATILE
config LEDS_PM8058 config LEDS_PM8058
tristate "LED Support for the Qualcomm PM8058 PMIC" tristate "LED Support for the Qualcomm PM8058 PMIC"
depends on MFD_PM8921_CORE depends on MFD_PM8XXX
depends on LEDS_CLASS depends on LEDS_CLASS
help help
Choose this option if you want to use the LED drivers in Choose this option if you want to use the LED drivers in
......
...@@ -756,24 +756,20 @@ config UCB1400_CORE ...@@ -756,24 +756,20 @@ config UCB1400_CORE
module will be called ucb1400_core. module will be called ucb1400_core.
config MFD_PM8XXX config MFD_PM8XXX
tristate tristate "Qualcomm PM8xxx PMIC chips driver"
config MFD_PM8921_CORE
tristate "Qualcomm PM8921 PMIC chip"
depends on (ARM || HEXAGON) depends on (ARM || HEXAGON)
select IRQ_DOMAIN select IRQ_DOMAIN
select MFD_CORE select MFD_CORE
select MFD_PM8XXX
select REGMAP select REGMAP
help help
If you say yes to this option, support will be included for the If you say yes to this option, support will be included for the
built-in PM8921 PMIC chip. built-in PM8xxx PMIC chips.
This is required if your board has a PM8921 and uses its features, This is required if your board has a PM8xxx and uses its features,
such as: MPPs, GPIOs, regulators, interrupts, and PWM. such as: MPPs, GPIOs, regulators, interrupts, and PWM.
Say M here if you want to include support for PM8921 chip as a module. Say M here if you want to include support for PM8xxx chips as a
This will build a module called "pm8921-core". module. This will build a module called "pm8xxx-core".
config MFD_QCOM_RPM config MFD_QCOM_RPM
tristate "Qualcomm Resource Power Manager (RPM)" tristate "Qualcomm Resource Power Manager (RPM)"
......
...@@ -172,7 +172,7 @@ obj-$(CONFIG_MFD_SI476X_CORE) += si476x-core.o ...@@ -172,7 +172,7 @@ obj-$(CONFIG_MFD_SI476X_CORE) += si476x-core.o
obj-$(CONFIG_MFD_CS5535) += cs5535-mfd.o obj-$(CONFIG_MFD_CS5535) += cs5535-mfd.o
obj-$(CONFIG_MFD_OMAP_USB_HOST) += omap-usb-host.o omap-usb-tll.o obj-$(CONFIG_MFD_OMAP_USB_HOST) += omap-usb-host.o omap-usb-tll.o
obj-$(CONFIG_MFD_PM8921_CORE) += pm8921-core.o ssbi.o obj-$(CONFIG_MFD_PM8XXX) += qcom-pm8xxx.o ssbi.o
obj-$(CONFIG_MFD_QCOM_RPM) += qcom_rpm.o obj-$(CONFIG_MFD_QCOM_RPM) += qcom_rpm.o
obj-$(CONFIG_MFD_SPMI_PMIC) += qcom-spmi-pmic.o obj-$(CONFIG_MFD_SPMI_PMIC) += qcom-spmi-pmic.o
obj-$(CONFIG_TPS65911_COMPARATOR) += tps65911-comparator.o obj-$(CONFIG_TPS65911_COMPARATOR) += tps65911-comparator.o
......
...@@ -53,7 +53,7 @@ ...@@ -53,7 +53,7 @@
#define REG_HWREV 0x002 /* PMIC4 revision */ #define REG_HWREV 0x002 /* PMIC4 revision */
#define REG_HWREV_2 0x0E8 /* PMIC4 revision 2 */ #define REG_HWREV_2 0x0E8 /* PMIC4 revision 2 */
#define PM8921_NR_IRQS 256 #define PM8XXX_NR_IRQS 256
struct pm_irq_chip { struct pm_irq_chip {
struct regmap *regmap; struct regmap *regmap;
...@@ -308,22 +308,22 @@ static const struct regmap_config ssbi_regmap_config = { ...@@ -308,22 +308,22 @@ static const struct regmap_config ssbi_regmap_config = {
.reg_write = ssbi_reg_write .reg_write = ssbi_reg_write
}; };
static const struct of_device_id pm8921_id_table[] = { static const struct of_device_id pm8xxx_id_table[] = {
{ .compatible = "qcom,pm8018", }, { .compatible = "qcom,pm8018", },
{ .compatible = "qcom,pm8058", }, { .compatible = "qcom,pm8058", },
{ .compatible = "qcom,pm8921", }, { .compatible = "qcom,pm8921", },
{ } { }
}; };
MODULE_DEVICE_TABLE(of, pm8921_id_table); MODULE_DEVICE_TABLE(of, pm8xxx_id_table);
static int pm8921_probe(struct platform_device *pdev) static int pm8xxx_probe(struct platform_device *pdev)
{ {
struct regmap *regmap; struct regmap *regmap;
int irq, rc; int irq, rc;
unsigned int val; unsigned int val;
u32 rev; u32 rev;
struct pm_irq_chip *chip; struct pm_irq_chip *chip;
unsigned int nirqs = PM8921_NR_IRQS; unsigned int nirqs = PM8XXX_NR_IRQS;
irq = platform_get_irq(pdev, 0); irq = platform_get_irq(pdev, 0);
if (irq < 0) if (irq < 0)
...@@ -384,46 +384,46 @@ static int pm8921_probe(struct platform_device *pdev) ...@@ -384,46 +384,46 @@ static int pm8921_probe(struct platform_device *pdev)
return rc; return rc;
} }
static int pm8921_remove_child(struct device *dev, void *unused) static int pm8xxx_remove_child(struct device *dev, void *unused)
{ {
platform_device_unregister(to_platform_device(dev)); platform_device_unregister(to_platform_device(dev));
return 0; return 0;
} }
static int pm8921_remove(struct platform_device *pdev) static int pm8xxx_remove(struct platform_device *pdev)
{ {
int irq = platform_get_irq(pdev, 0); int irq = platform_get_irq(pdev, 0);
struct pm_irq_chip *chip = platform_get_drvdata(pdev); struct pm_irq_chip *chip = platform_get_drvdata(pdev);
device_for_each_child(&pdev->dev, NULL, pm8921_remove_child); device_for_each_child(&pdev->dev, NULL, pm8xxx_remove_child);
irq_set_chained_handler_and_data(irq, NULL, NULL); irq_set_chained_handler_and_data(irq, NULL, NULL);
irq_domain_remove(chip->irqdomain); irq_domain_remove(chip->irqdomain);
return 0; return 0;
} }
static struct platform_driver pm8921_driver = { static struct platform_driver pm8xxx_driver = {
.probe = pm8921_probe, .probe = pm8xxx_probe,
.remove = pm8921_remove, .remove = pm8xxx_remove,
.driver = { .driver = {
.name = "pm8921-core", .name = "pm8xxx-core",
.of_match_table = pm8921_id_table, .of_match_table = pm8xxx_id_table,
}, },
}; };
static int __init pm8921_init(void) static int __init pm8xxx_init(void)
{ {
return platform_driver_register(&pm8921_driver); return platform_driver_register(&pm8xxx_driver);
} }
subsys_initcall(pm8921_init); subsys_initcall(pm8xxx_init);
static void __exit pm8921_exit(void) static void __exit pm8xxx_exit(void)
{ {
platform_driver_unregister(&pm8921_driver); platform_driver_unregister(&pm8xxx_driver);
} }
module_exit(pm8921_exit); module_exit(pm8xxx_exit);
MODULE_LICENSE("GPL v2"); MODULE_LICENSE("GPL v2");
MODULE_DESCRIPTION("PMIC 8921 core driver"); MODULE_DESCRIPTION("PMIC 8xxx core driver");
MODULE_VERSION("1.0"); MODULE_VERSION("1.0");
MODULE_ALIAS("platform:pm8921-core"); MODULE_ALIAS("platform:pm8xxx-core");
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment