All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3 0/6] add support for pf1550 PMIC MFD-based drivers
@ 2025-05-27 22:25 ` Samuel Kayode via B4 Relay
  0 siblings, 0 replies; 26+ messages in thread
From: Samuel Kayode @ 2025-05-27 22:25 UTC (permalink / raw)
  To: Lee Jones, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Liam Girdwood, Mark Brown, Dmitry Torokhov, Sebastian Reichel
  Cc: devicetree, linux-kernel, linux-input, linux-pm, Samuel Kayode,
	eballetbo, abelvesa, b38343, yibin.gong, Abel Vesa

This series adds support for pf1550 PMIC. It provides the core mfd driver and a
set of three sub-drivers for the regulator, power supply and input subsystems.

Patch 1 adds the DT binding document for the PMIC. Patches 2-5 adds the
pertinent drivers. Last patch adds a MAINTAINERS entry for the drivers.

Changes since v1:
   - DT bindings for all devices included
   - Add onkey driver
   - Add driver for the regulators
   - Ensure charger is activated as some variants have it off by default
   - Update mfd and charger driver per feedback from eballetbo@gmail.com
   - Add myself as maintainer for these drivers
   - Link to v1: https://lore.kernel.org/1523974819-8711-1-git-send-email-abel.vesa@nxp.com/

Changes since v2:
   - Rebase on recent mainline kernel v6.15
   - Single yaml file containing dt bindings for all pf1550 devices
   - irq mapping done in MFD driver as suggested by Dmitry Torokhov
   - Drop unnecessary includes in drivers
   - Replace dev_err with dev_err_probe in probe method of drivers
   - Drop compatible string from drivers of the sub-devices
   - Remove dependency on OF from drivers of the sub-devices
   - onkey: move driver from input/keyboard into input/misc
   - onkey: remove dependency on OF
   - onkey: use onkey virqs instead of central irq
   - onkey: fix integer overflow for regmap_write when unmasking
     interrupts during pf1550_onkey_resume
   - charger: add support for monitored-battery which is used in setting
     a constant voltage for the charger.
   - Address other feedback from Dmitry Torokhov and Krzysztof Kozlowski
   - Link to v2: https://lore.kernel.org/cover.1747409892.git.samuel.kayode@savoirfairelinux.com/

Signed-off-by: Samuel Kayode <samuel.kayode@savoirfairelinux.com>
---
Samuel Kayode (6):
      dt-bindings: mfd: add pf1550
      mfd: pf1550: add core mfd driver
      regulator: pf1550: add support for regulator
      input: pf1550: add onkey support
      power: supply: pf1550: add battery charger support
      MAINTAINERS: add an entry for pf1550 mfd driver

 Documentation/devicetree/bindings/mfd/pf1550.yaml | 139 +++++
 MAINTAINERS                                       |  10 +
 drivers/input/misc/Kconfig                        |  11 +
 drivers/input/misc/Makefile                       |   1 +
 drivers/input/misc/pf1550-onkey.c                 | 202 +++++++
 drivers/mfd/Kconfig                               |  14 +
 drivers/mfd/Makefile                              |   2 +
 drivers/mfd/pf1550.c                              | 277 ++++++++++
 drivers/power/supply/Kconfig                      |  11 +
 drivers/power/supply/Makefile                     |   1 +
 drivers/power/supply/pf1550-charger.c             | 639 ++++++++++++++++++++++
 drivers/regulator/Kconfig                         |   9 +
 drivers/regulator/Makefile                        |   1 +
 drivers/regulator/pf1550-regulator.c              | 353 ++++++++++++
 include/linux/mfd/pf1550.h                        | 241 ++++++++
 15 files changed, 1911 insertions(+)
---
base-commit: 0a4b866d08c6adaea2f4592d31edac6deeb4dcbd
change-id: 20250527-pf1550-d401f0d07b80

Best regards,
-- 
Samuel Kayode <samuel.kayode@savoirfairelinux.com>


^ permalink raw reply	[flat|nested] 26+ messages in thread
* Re: [PATCH v3 2/6] mfd: pf1550: add core mfd driver
  2025-05-27 22:25   ` Samuel Kayode via B4 Relay
@ 2025-06-02  6:08 ` Dan Carpenter
  -1 siblings, 0 replies; 26+ messages in thread
From: kernel test robot @ 2025-05-29  0:10 UTC (permalink / raw)
  To: oe-kbuild; +Cc: lkp, Dan Carpenter

BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
In-Reply-To: <20250527-pf1550-v3-2-45f69453cd51@savoirfairelinux.com>
References: <20250527-pf1550-v3-2-45f69453cd51@savoirfairelinux.com>
TO: Samuel Kayode via B4 Relay <devnull+samuel.kayode.savoirfairelinux.com@kernel.org>
TO: Lee Jones <lee@kernel.org>
TO: Rob Herring <robh@kernel.org>
TO: Krzysztof Kozlowski <krzk@kernel.org>
TO: Conor Dooley <conor+dt@kernel.org>
TO: Liam Girdwood <lgirdwood@gmail.com>
TO: Mark Brown <broonie@kernel.org>
TO: Dmitry Torokhov <dmitry.torokhov@gmail.com>
TO: Sebastian Reichel <sre@kernel.org>
CC: devicetree@vger.kernel.org
CC: linux-kernel@vger.kernel.org
CC: linux-input@vger.kernel.org
CC: linux-pm@vger.kernel.org
CC: Samuel Kayode <samuel.kayode@savoirfairelinux.com>
CC: eballetbo@gmail.com
CC: abelvesa@linux.com
CC: b38343@freescale.com
CC: yibin.gong@nxp.com
CC: Abel Vesa <abelvesa@kernel.org>

Hi Samuel,

kernel test robot noticed the following build warnings:

[auto build test WARNING on 0a4b866d08c6adaea2f4592d31edac6deeb4dcbd]

url:    https://github.com/intel-lab-lkp/linux/commits/Samuel-Kayode-via-B4-Relay/dt-bindings-mfd-add-pf1550/20250528-062840
base:   0a4b866d08c6adaea2f4592d31edac6deeb4dcbd
patch link:    https://lore.kernel.org/r/20250527-pf1550-v3-2-45f69453cd51%40savoirfairelinux.com
patch subject: [PATCH v3 2/6] mfd: pf1550: add core mfd driver
:::::: branch date: 26 hours ago
:::::: commit date: 26 hours ago
config: nios2-randconfig-r072-20250529 (https://download.01.org/0day-ci/archive/20250529/202505290859.CKZrTkZu-lkp@intel.com/config)
compiler: nios2-linux-gcc (GCC) 10.5.0

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Reported-by: Dan Carpenter <error27@gmail.com>
| Closes: https://lore.kernel.org/r/202505290859.CKZrTkZu-lkp@intel.com/

smatch warnings:
drivers/mfd/pf1550.c:162 pf1550_i2c_probe() warn: passing zero to 'dev_err_probe'

vim +/dev_err_probe +162 drivers/mfd/pf1550.c

fc62e32ad9eb64 Samuel Kayode 2025-05-27  139  
fc62e32ad9eb64 Samuel Kayode 2025-05-27  140  static int pf1550_i2c_probe(struct i2c_client *i2c)
fc62e32ad9eb64 Samuel Kayode 2025-05-27  141  {
fc62e32ad9eb64 Samuel Kayode 2025-05-27  142  	struct pf1550_dev *pf1550;
fc62e32ad9eb64 Samuel Kayode 2025-05-27  143  	unsigned int reg_data = 0;
fc62e32ad9eb64 Samuel Kayode 2025-05-27  144  	int ret = 0;
fc62e32ad9eb64 Samuel Kayode 2025-05-27  145  
fc62e32ad9eb64 Samuel Kayode 2025-05-27  146  	pf1550 = devm_kzalloc(&i2c->dev, sizeof(*pf1550), GFP_KERNEL);
fc62e32ad9eb64 Samuel Kayode 2025-05-27  147  	if (!pf1550)
fc62e32ad9eb64 Samuel Kayode 2025-05-27  148  		return -ENOMEM;
fc62e32ad9eb64 Samuel Kayode 2025-05-27  149  
fc62e32ad9eb64 Samuel Kayode 2025-05-27  150  	i2c_set_clientdata(i2c, pf1550);
fc62e32ad9eb64 Samuel Kayode 2025-05-27  151  	pf1550->dev = &i2c->dev;
fc62e32ad9eb64 Samuel Kayode 2025-05-27  152  	pf1550->i2c = i2c;
fc62e32ad9eb64 Samuel Kayode 2025-05-27  153  	pf1550->irq = i2c->irq;
fc62e32ad9eb64 Samuel Kayode 2025-05-27  154  
fc62e32ad9eb64 Samuel Kayode 2025-05-27  155  	pf1550->regmap = devm_regmap_init_i2c(i2c, &pf1550_regmap_config);
fc62e32ad9eb64 Samuel Kayode 2025-05-27  156  	if (IS_ERR(pf1550->regmap))
fc62e32ad9eb64 Samuel Kayode 2025-05-27  157  		return dev_err_probe(pf1550->dev, PTR_ERR(pf1550->regmap),
fc62e32ad9eb64 Samuel Kayode 2025-05-27  158  				     "failed to allocate register map\n");
fc62e32ad9eb64 Samuel Kayode 2025-05-27  159  
fc62e32ad9eb64 Samuel Kayode 2025-05-27  160  	ret = regmap_read(pf1550->regmap, PF1550_PMIC_REG_DEVICE_ID, &reg_data);
fc62e32ad9eb64 Samuel Kayode 2025-05-27  161  	if (ret < 0 || reg_data != PF1550_DEVICE_ID)
fc62e32ad9eb64 Samuel Kayode 2025-05-27 @162  		return dev_err_probe(pf1550->dev, ret, "device not found!\n");
fc62e32ad9eb64 Samuel Kayode 2025-05-27  163  
fc62e32ad9eb64 Samuel Kayode 2025-05-27  164  	pf1550->type = PF1550;
fc62e32ad9eb64 Samuel Kayode 2025-05-27  165  
fc62e32ad9eb64 Samuel Kayode 2025-05-27  166  	ret = devm_regmap_add_irq_chip(pf1550->dev, pf1550->regmap,
fc62e32ad9eb64 Samuel Kayode 2025-05-27  167  				       pf1550->irq,
fc62e32ad9eb64 Samuel Kayode 2025-05-27  168  				       IRQF_ONESHOT | IRQF_SHARED |
fc62e32ad9eb64 Samuel Kayode 2025-05-27  169  				       IRQF_TRIGGER_FALLING, 0,
fc62e32ad9eb64 Samuel Kayode 2025-05-27  170  				       &pf1550_regulator_irq_chip,
fc62e32ad9eb64 Samuel Kayode 2025-05-27  171  				       &pf1550->irq_data_regulator);
fc62e32ad9eb64 Samuel Kayode 2025-05-27  172  	if (ret)
fc62e32ad9eb64 Samuel Kayode 2025-05-27  173  		return dev_err_probe(pf1550->dev, ret,
fc62e32ad9eb64 Samuel Kayode 2025-05-27  174  				     "failed to add regulator irq chip\n");
fc62e32ad9eb64 Samuel Kayode 2025-05-27  175  
fc62e32ad9eb64 Samuel Kayode 2025-05-27  176  	ret = pf1550_map_chip_irqs(&pf1550_regulator_irq_chip,
fc62e32ad9eb64 Samuel Kayode 2025-05-27  177  				   pf1550->irq_data_regulator);
fc62e32ad9eb64 Samuel Kayode 2025-05-27  178  
fc62e32ad9eb64 Samuel Kayode 2025-05-27  179  	if (ret)
fc62e32ad9eb64 Samuel Kayode 2025-05-27  180  		return dev_err_probe(pf1550->dev, ret,
fc62e32ad9eb64 Samuel Kayode 2025-05-27  181  				     "Failed to get parent vIRQ for chip %s\n",
fc62e32ad9eb64 Samuel Kayode 2025-05-27  182  				     pf1550_regulator_irq_chip.name);
fc62e32ad9eb64 Samuel Kayode 2025-05-27  183  
fc62e32ad9eb64 Samuel Kayode 2025-05-27  184  	ret = devm_regmap_add_irq_chip(pf1550->dev, pf1550->regmap,
fc62e32ad9eb64 Samuel Kayode 2025-05-27  185  				       pf1550->irq,
fc62e32ad9eb64 Samuel Kayode 2025-05-27  186  				       IRQF_ONESHOT | IRQF_SHARED |
fc62e32ad9eb64 Samuel Kayode 2025-05-27  187  				       IRQF_TRIGGER_FALLING, 0,
fc62e32ad9eb64 Samuel Kayode 2025-05-27  188  				       &pf1550_onkey_irq_chip,
fc62e32ad9eb64 Samuel Kayode 2025-05-27  189  				       &pf1550->irq_data_onkey);
fc62e32ad9eb64 Samuel Kayode 2025-05-27  190  	if (ret)
fc62e32ad9eb64 Samuel Kayode 2025-05-27  191  		return dev_err_probe(pf1550->dev, ret,
fc62e32ad9eb64 Samuel Kayode 2025-05-27  192  				     "failed to add onkey irq chip\n");
fc62e32ad9eb64 Samuel Kayode 2025-05-27  193  
fc62e32ad9eb64 Samuel Kayode 2025-05-27  194  	ret = pf1550_map_chip_irqs(&pf1550_onkey_irq_chip,
fc62e32ad9eb64 Samuel Kayode 2025-05-27  195  				   pf1550->irq_data_onkey);
fc62e32ad9eb64 Samuel Kayode 2025-05-27  196  
fc62e32ad9eb64 Samuel Kayode 2025-05-27  197  	if (ret)
fc62e32ad9eb64 Samuel Kayode 2025-05-27  198  		return dev_err_probe(pf1550->dev, ret,
fc62e32ad9eb64 Samuel Kayode 2025-05-27  199  				     "Failed to get parent vIRQ for chip %s\n",
fc62e32ad9eb64 Samuel Kayode 2025-05-27  200  				     pf1550_onkey_irq_chip.name);
fc62e32ad9eb64 Samuel Kayode 2025-05-27  201  
fc62e32ad9eb64 Samuel Kayode 2025-05-27  202  	ret = devm_regmap_add_irq_chip(pf1550->dev, pf1550->regmap,
fc62e32ad9eb64 Samuel Kayode 2025-05-27  203  				       pf1550->irq,
fc62e32ad9eb64 Samuel Kayode 2025-05-27  204  				       IRQF_ONESHOT | IRQF_SHARED |
fc62e32ad9eb64 Samuel Kayode 2025-05-27  205  				       IRQF_TRIGGER_FALLING, 0,
fc62e32ad9eb64 Samuel Kayode 2025-05-27  206  				       &pf1550_charger_irq_chip,
fc62e32ad9eb64 Samuel Kayode 2025-05-27  207  				       &pf1550->irq_data_charger);
fc62e32ad9eb64 Samuel Kayode 2025-05-27  208  	if (ret)
fc62e32ad9eb64 Samuel Kayode 2025-05-27  209  		return dev_err_probe(pf1550->dev, ret,
fc62e32ad9eb64 Samuel Kayode 2025-05-27  210  				     "failed to add charger irq chip\n");
fc62e32ad9eb64 Samuel Kayode 2025-05-27  211  
fc62e32ad9eb64 Samuel Kayode 2025-05-27  212  	ret = pf1550_map_chip_irqs(&pf1550_charger_irq_chip,
fc62e32ad9eb64 Samuel Kayode 2025-05-27  213  				   pf1550->irq_data_charger);
fc62e32ad9eb64 Samuel Kayode 2025-05-27  214  
fc62e32ad9eb64 Samuel Kayode 2025-05-27  215  	if (ret)
fc62e32ad9eb64 Samuel Kayode 2025-05-27  216  		return dev_err_probe(pf1550->dev, ret,
fc62e32ad9eb64 Samuel Kayode 2025-05-27  217  				     "Failed to get parent vIRQ for chip %s\n",
fc62e32ad9eb64 Samuel Kayode 2025-05-27  218  				     pf1550_charger_irq_chip.name);
fc62e32ad9eb64 Samuel Kayode 2025-05-27  219  
fc62e32ad9eb64 Samuel Kayode 2025-05-27  220  	return devm_mfd_add_devices(pf1550->dev, -1, pf1550_devs,
fc62e32ad9eb64 Samuel Kayode 2025-05-27  221  				    ARRAY_SIZE(pf1550_devs), NULL, 0, NULL);
fc62e32ad9eb64 Samuel Kayode 2025-05-27  222  }
fc62e32ad9eb64 Samuel Kayode 2025-05-27  223  

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

^ permalink raw reply	[flat|nested] 26+ messages in thread

end of thread, other threads:[~2025-06-04 14:08 UTC | newest]

Thread overview: 26+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-05-27 22:25 [PATCH v3 0/6] add support for pf1550 PMIC MFD-based drivers Samuel Kayode
2025-05-27 22:25 ` Samuel Kayode via B4 Relay
2025-05-27 22:25 ` [PATCH v3 1/6] dt-bindings: mfd: add pf1550 Samuel Kayode
2025-05-27 22:25   ` Samuel Kayode via B4 Relay
2025-05-28  6:08   ` Krzysztof Kozlowski
2025-05-28 17:48     ` Samuel Kayode
2025-05-27 22:25 ` [PATCH v3 2/6] mfd: pf1550: add core mfd driver Samuel Kayode
2025-05-27 22:25   ` Samuel Kayode via B4 Relay
2025-05-27 22:25 ` [PATCH v3 3/6] regulator: pf1550: add support for regulator Samuel Kayode
2025-05-27 22:25   ` Samuel Kayode via B4 Relay
2025-05-28 10:58   ` Mark Brown
2025-05-29  1:44   ` kernel test robot
2025-05-27 22:25 ` [PATCH v3 4/6] input: pf1550: add onkey support Samuel Kayode
2025-05-27 22:25   ` Samuel Kayode via B4 Relay
2025-05-28  0:20   ` Dmitry Torokhov
2025-06-02  0:42     ` Samuel Kayode
2025-05-28 16:22   ` kernel test robot
2025-05-27 22:25 ` [PATCH v3 5/6] power: supply: pf1550: add battery charger support Samuel Kayode
2025-05-27 22:25   ` Samuel Kayode via B4 Relay
2025-06-02 18:44   ` Markus Elfring
2025-06-04 14:08     ` Samuel Kayode
2025-05-27 22:25 ` [PATCH v3 6/6] MAINTAINERS: add an entry for pf1550 mfd driver Samuel Kayode
2025-05-27 22:25   ` Samuel Kayode via B4 Relay
2025-05-28  6:10   ` Krzysztof Kozlowski
  -- strict thread matches above, loose matches on Subject: below --
2025-05-29  0:10 [PATCH v3 2/6] mfd: pf1550: add core " kernel test robot
2025-06-02  6:08 ` Dan Carpenter

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.