From 544da706959ca4cbcc38f7e2c811297e67ba9ffd Mon Sep 17 00:00:00 2001 From: "mason.huo" Date: Tue, 7 Jun 2022 11:51:34 +0800 Subject: [PATCH] soc: starfive: Remove pmic driver The pmic driver should employ regulator framework, rather than a driver in soc. Signed-off-by: mason.huo --- arch/riscv/boot/dts/starfive/jh7110-common.dtsi | 5 - drivers/gpu/drm/verisilicon/inno_hdmi.c | 5 - .../platform/starfive/v4l2_driver/stf_csi_hw_ops.c | 4 - drivers/soc/starfive/Kconfig | 6 -- drivers/soc/starfive/Makefile | 1 - drivers/soc/starfive/jh7110_pmic.c | 111 --------------------- include/soc/starfive/jh7110_pmic.h | 41 -------- 7 files changed, 173 deletions(-) delete mode 100644 drivers/soc/starfive/jh7110_pmic.c delete mode 100644 include/soc/starfive/jh7110_pmic.h diff --git a/arch/riscv/boot/dts/starfive/jh7110-common.dtsi b/arch/riscv/boot/dts/starfive/jh7110-common.dtsi index 1cafa59c..67c7b98 100755 --- a/arch/riscv/boot/dts/starfive/jh7110-common.dtsi +++ b/arch/riscv/boot/dts/starfive/jh7110-common.dtsi @@ -217,11 +217,6 @@ pinctrl-names = "default"; pinctrl-0 = <&i2c5_pins>; status = "okay"; - - pmic@50 { - compatible = "starfive,pmic"; - reg = <0x50>; - }; }; &i2c6 { diff --git a/drivers/gpu/drm/verisilicon/inno_hdmi.c b/drivers/gpu/drm/verisilicon/inno_hdmi.c index 2ab105d..69acf2b 100644 --- a/drivers/gpu/drm/verisilicon/inno_hdmi.c +++ b/drivers/gpu/drm/verisilicon/inno_hdmi.c @@ -22,7 +22,6 @@ #include #include #include -#include //20220520 pmic support #include "vs_clock.h" #include "vs_drv.h" @@ -1108,9 +1107,7 @@ static int inno_hdmi_bind(struct device *dev, struct device *master, return PTR_ERR(hdmi->regs); //pmic turn on - pmic_set_domain(POWER_SW_0_REG, POWER_SW_0_VDD18_HDMI, 1); udelay(100); - pmic_set_domain(POWER_SW_0_REG, POWER_SW_0_VDD09_HDMI, 1); udelay(100); //20220531 clk rst interface support @@ -1197,9 +1194,7 @@ static void inno_hdmi_unbind(struct device *dev, struct device *master, //pmic turn off #if 1 - pmic_set_domain(POWER_SW_0_REG, POWER_SW_0_VDD18_HDMI, 0); udelay(100); - pmic_set_domain(POWER_SW_0_REG, POWER_SW_0_VDD09_HDMI, 0); #endif //pmic turn off diff --git a/drivers/media/platform/starfive/v4l2_driver/stf_csi_hw_ops.c b/drivers/media/platform/starfive/v4l2_driver/stf_csi_hw_ops.c index 2b9ea12..f49528a 100755 --- a/drivers/media/platform/starfive/v4l2_driver/stf_csi_hw_ops.c +++ b/drivers/media/platform/starfive/v4l2_driver/stf_csi_hw_ops.c @@ -7,7 +7,6 @@ */ #include "stfcamss.h" #include -#include #define CSI2RX_DEVICE_CFG_REG 0x000 @@ -41,9 +40,6 @@ static int stf_csi_power_on(struct stf_csi_dev *csi_dev, u8 on) { void __iomem *aon_syscon; - pmic_set_domain(POWER_SW_0_REG, POWER_SW_0_VDD18_MIPIRX, on); - pmic_set_domain(POWER_SW_0_REG, POWER_SW_0_VDD09_MIPIRX, on); - aon_syscon = ioremap(0x17010000, 0x4); reg_write(aon_syscon, 0x00, 0x80000000); diff --git a/drivers/soc/starfive/Kconfig b/drivers/soc/starfive/Kconfig index b76a9ac..d4b0454 100644 --- a/drivers/soc/starfive/Kconfig +++ b/drivers/soc/starfive/Kconfig @@ -7,9 +7,3 @@ config STARFIVE_PMU help Support PMU for StarFive Soc. -config STARFIVE_PMIC - bool "Support PMIC for StarFive Soc" - depends on SOC_STARFIVE || COMPILE_TEST - default SOC_STARFIVE_JH7110 - help - Support PMIC for StarFive Soc. \ No newline at end of file diff --git a/drivers/soc/starfive/Makefile b/drivers/soc/starfive/Makefile index acc48b7..296eb75 100644 --- a/drivers/soc/starfive/Makefile +++ b/drivers/soc/starfive/Makefile @@ -1,4 +1,3 @@ # SPDX-License-Identifier: GPL-2.0 obj-$(CONFIG_STARFIVE_PMU) += jh7110_pmu.o -obj-$(CONFIG_STARFIVE_PMIC) += jh7110_pmic.o diff --git a/drivers/soc/starfive/jh7110_pmic.c b/drivers/soc/starfive/jh7110_pmic.c deleted file mode 100644 index 126a487..0000000 --- a/drivers/soc/starfive/jh7110_pmic.c +++ /dev/null @@ -1,111 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0-or-later -/* - * PMIC driver for the StarFive JH7110 SoC - * - * Copyright (C) 2022 changhuang - */ - -#include -#include -#include -#include -#include - -static struct pmic_dev *pmic_dev; - -static int pmic_read_reg(struct pmic_dev *pmic_dev, u8 reg) -{ - struct i2c_client *client = pmic_dev->i2c_client; - int ret = i2c_smbus_read_byte_data(client, reg); - - if (ret < 0) - dev_err(&client->dev, "Read Error\n"); - - return ret; -} - -static int pmic_write_reg(struct pmic_dev *pmic_dev, u8 reg, u8 val) -{ - struct i2c_client *client = pmic_dev->i2c_client; - int ret = i2c_smbus_write_byte_data(client, reg, val); - - if (ret < 0) - dev_err(&client->dev, "Write Error\n"); - - return ret; -} - -static void pmic_set_bit(struct pmic_dev *pmic_dev, u8 reg, u8 mask, u8 val) -{ - u8 value; - - value = pmic_read_reg(pmic_dev, reg) & ~mask; - val &= mask; - val |= value; - pmic_write_reg(pmic_dev, reg, val); -} - -void pmic_set_domain(u8 reg, u8 domain, u8 on) -{ - pmic_set_bit(pmic_dev, reg, BIT(domain), on<dev; - - pmic_dev = devm_kzalloc(dev, sizeof(*pmic_dev), GFP_KERNEL); - if (!pmic_dev) - return -ENOMEM; - - pmic_dev->i2c_client = client; - - dev_info(dev, "pmic init success!"); - - return 0; -} - -static int pmic_remove(struct i2c_client *client) -{ - return 0; -} - -static const struct i2c_device_id pmic_id[] = { - {"pmic", 0}, - {}, -}; -MODULE_DEVICE_TABLE(i2c, pmic_id); - -static const struct of_device_id pmic_dt_ids[] = { - { .compatible = "starfive,pmic" }, - { /* sentinel */ } -}; -MODULE_DEVICE_TABLE(of, pmic_dt_ids); - -static struct i2c_driver pmic_i2c_driver = { - .driver = { - .name = "pmic", - .of_match_table = pmic_dt_ids, - }, - .id_table = pmic_id, - .probe_new = pmic_probe, - .remove = pmic_remove, -}; - -static __init int pmic_init(void) -{ - return i2c_add_driver(&pmic_i2c_driver); -} - -static __exit void pmic_exit(void) -{ - i2c_del_driver(&pmic_i2c_driver); -} - -fs_initcall(pmic_init); -module_exit(pmic_exit); - -MODULE_AUTHOR("changhuang "); -MODULE_DESCRIPTION("StarFive JH7110 PMIC Device Driver"); -MODULE_LICENSE("GPL v2"); diff --git a/include/soc/starfive/jh7110_pmic.h b/include/soc/starfive/jh7110_pmic.h deleted file mode 100644 index 304927e..0000000 --- a/include/soc/starfive/jh7110_pmic.h +++ /dev/null @@ -1,41 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0-or-later */ -/* - * PMIC driver for the StarFive JH7110 SoC - * - * Copyright (C) 2022 changhuang - */ - -#ifndef __SOC_STARFIVE_JH7110_PMIC_H__ -#define __SOC_STARFIVE_JH7110_PMIC_H__ - -#include -#include - -#define PMIC_REG_BASE 0x80 - -enum pmic_reg { - POWER_SW_0_REG = PMIC_REG_BASE+0x00, - POWER_SW_1_REG = PMIC_REG_BASE+0x01, -}; - -enum pmic_power_domian { - POWER_SW_0_VDD18_HDMI = 0, - POWER_SW_0_VDD18_MIPITX, - POWER_SW_0_VDD18_MIPIRX, - POWER_SW_0_VDD09_HDMI, - POWER_SW_0_VDD09_MIPITX, - POWER_SW_0_VDD09_MIPIRX, -}; - -struct pmic_dev { - struct i2c_client *i2c_client; -}; - -/** - * @reg: see enum pmic_reg. - * @domian: see enum pmic_power_domian. - * @on: power swtich, 1 or 0. - */ -void pmic_set_domain(u8 reg, u8 domain, u8 on); - -#endif -- 2.7.4