mbox series

[v4,0/4] soc: qcom: Introduce PMIC GLINK

Message ID 20230201041853.1934355-1-quic_bjorande@quicinc.com
Headers show
Series soc: qcom: Introduce PMIC GLINK | expand

Message

Bjorn Andersson Feb. 1, 2023, 4:18 a.m. UTC
This implements the base PMIC GLINK driver, a power_supply driver and a
driver for the USB Type-C altmode protocol. This has been tested and
shown to provide battery information, USB Type-C switch and mux requests
and DisplayPort notifications on SC8180X, SC8280XP and SM8350.

Bjorn Andersson (4):
  dt-bindings: soc: qcom: Introduce PMIC GLINK binding
  soc: qcom: pmic_glink: Introduce base PMIC GLINK driver
  soc: qcom: pmic_glink: Introduce altmode support
  power: supply: Introduce Qualcomm PMIC GLINK power supply

 .../bindings/soc/qcom/qcom,pmic-glink.yaml    |   95 ++
 drivers/power/supply/Kconfig                  |    9 +
 drivers/power/supply/Makefile                 |    1 +
 drivers/power/supply/qcom_battmgr.c           | 1421 +++++++++++++++++
 drivers/soc/qcom/Kconfig                      |   15 +
 drivers/soc/qcom/Makefile                     |    2 +
 drivers/soc/qcom/pmic_glink.c                 |  336 ++++
 drivers/soc/qcom/pmic_glink_altmode.c         |  478 ++++++
 include/linux/soc/qcom/pmic_glink.h           |   32 +
 9 files changed, 2389 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml
 create mode 100644 drivers/power/supply/qcom_battmgr.c
 create mode 100644 drivers/soc/qcom/pmic_glink.c
 create mode 100644 drivers/soc/qcom/pmic_glink_altmode.c
 create mode 100644 include/linux/soc/qcom/pmic_glink.h

Comments

Sebastian Reichel Feb. 3, 2023, 11:27 a.m. UTC | #1
Hi,

On Tue, Jan 31, 2023 at 08:18:53PM -0800, Bjorn Andersson wrote:
...
> +static const enum power_supply_property sm8350_bat_props[] = {
> +	POWER_SUPPLY_PROP_STATUS,
> +	POWER_SUPPLY_PROP_HEALTH,
> +	POWER_SUPPLY_PROP_PRESENT,
> +	POWER_SUPPLY_PROP_CHARGE_TYPE,
> +	POWER_SUPPLY_PROP_CAPACITY,
> +	POWER_SUPPLY_PROP_VOLTAGE_OCV,
> +	POWER_SUPPLY_PROP_VOLTAGE_NOW,
> +	POWER_SUPPLY_PROP_VOLTAGE_MAX,
> +	POWER_SUPPLY_PROP_CURRENT_NOW,
> +	POWER_SUPPLY_PROP_TEMP,
> +	POWER_SUPPLY_PROP_TECHNOLOGY,
> +	POWER_SUPPLY_PROP_CHARGE_COUNTER,
> +	POWER_SUPPLY_PROP_CYCLE_COUNT,
> +	POWER_SUPPLY_PROP_CHARGE_FULL_DESIGN,
> +	POWER_SUPPLY_PROP_CHARGE_FULL,

no CHARGE_NOW?

> +	POWER_SUPPLY_PROP_MODEL_NAME,
> +	POWER_SUPPLY_PROP_TIME_TO_FULL_AVG,
> +	POWER_SUPPLY_PROP_TIME_TO_EMPTY_AVG,
> +	POWER_SUPPLY_PROP_POWER_NOW,
> +};

...

> +static struct auxiliary_driver qcom_battmgr_driver = {
> +	.name = "pmic_glink_power_supply",
> +	.probe = qcom_battmgr_probe,
> +	.id_table = qcom_battmgr_id_table,
> +};
> +
> +static int __init qcom_battmgr_init(void)
> +{
> +	return auxiliary_driver_register(&qcom_battmgr_driver);
> +}
> +module_init(qcom_battmgr_init);
> +
> +static void __exit qcom_battmgr_exit(void)
> +{
> +	auxiliary_driver_unregister(&qcom_battmgr_driver);
> +}
> +module_exit(qcom_battmgr_exit);

module_auxiliary_driver()

Otherwise LGTM.

-- Sebastian
Bjorn Andersson Feb. 6, 2023, 10:30 p.m. UTC | #2
On Tue, 31 Jan 2023 20:18:49 -0800, Bjorn Andersson wrote:
> This implements the base PMIC GLINK driver, a power_supply driver and a
> driver for the USB Type-C altmode protocol. This has been tested and
> shown to provide battery information, USB Type-C switch and mux requests
> and DisplayPort notifications on SC8180X, SC8280XP and SM8350.
> 
> Bjorn Andersson (4):
>   dt-bindings: soc: qcom: Introduce PMIC GLINK binding
>   soc: qcom: pmic_glink: Introduce base PMIC GLINK driver
>   soc: qcom: pmic_glink: Introduce altmode support
>   power: supply: Introduce Qualcomm PMIC GLINK power supply
> 
> [...]

Applied, thanks!

[1/4] dt-bindings: soc: qcom: Introduce PMIC GLINK binding
      commit: 68d868adc121f68edde0f4c0e16923103b868945
[2/4] soc: qcom: pmic_glink: Introduce base PMIC GLINK driver
      commit: 58ef4ece1e41ac525db3e79529909683325d85df
[3/4] soc: qcom: pmic_glink: Introduce altmode support
      commit: 080b4e24852b1d5b66929f69344e6c3eeb963941

Best regards,
Bjorn Andersson Feb. 7, 2023, 2:19 p.m. UTC | #3
On Fri, Feb 03, 2023 at 12:27:20PM +0100, Sebastian Reichel wrote:
> Hi,
> 
> On Tue, Jan 31, 2023 at 08:18:53PM -0800, Bjorn Andersson wrote:
> ...
> > +static const enum power_supply_property sm8350_bat_props[] = {
> > +	POWER_SUPPLY_PROP_STATUS,
> > +	POWER_SUPPLY_PROP_HEALTH,
> > +	POWER_SUPPLY_PROP_PRESENT,
> > +	POWER_SUPPLY_PROP_CHARGE_TYPE,
> > +	POWER_SUPPLY_PROP_CAPACITY,
> > +	POWER_SUPPLY_PROP_VOLTAGE_OCV,
> > +	POWER_SUPPLY_PROP_VOLTAGE_NOW,
> > +	POWER_SUPPLY_PROP_VOLTAGE_MAX,
> > +	POWER_SUPPLY_PROP_CURRENT_NOW,
> > +	POWER_SUPPLY_PROP_TEMP,
> > +	POWER_SUPPLY_PROP_TECHNOLOGY,
> > +	POWER_SUPPLY_PROP_CHARGE_COUNTER,
> > +	POWER_SUPPLY_PROP_CYCLE_COUNT,
> > +	POWER_SUPPLY_PROP_CHARGE_FULL_DESIGN,
> > +	POWER_SUPPLY_PROP_CHARGE_FULL,
> 
> no CHARGE_NOW?
> 

This doesn't seem to be exposed by the firmware...

> > +	POWER_SUPPLY_PROP_MODEL_NAME,
> > +	POWER_SUPPLY_PROP_TIME_TO_FULL_AVG,
> > +	POWER_SUPPLY_PROP_TIME_TO_EMPTY_AVG,
> > +	POWER_SUPPLY_PROP_POWER_NOW,
> > +};
> 
> ...
> 
> > +static struct auxiliary_driver qcom_battmgr_driver = {
> > +	.name = "pmic_glink_power_supply",
> > +	.probe = qcom_battmgr_probe,
> > +	.id_table = qcom_battmgr_id_table,
> > +};
> > +
> > +static int __init qcom_battmgr_init(void)
> > +{
> > +	return auxiliary_driver_register(&qcom_battmgr_driver);
> > +}
> > +module_init(qcom_battmgr_init);
> > +
> > +static void __exit qcom_battmgr_exit(void)
> > +{
> > +	auxiliary_driver_unregister(&qcom_battmgr_driver);
> > +}
> > +module_exit(qcom_battmgr_exit);
> 
> module_auxiliary_driver()

Missed that we have one of those, will update and resend.

> 
> Otherwise LGTM.
> 
> -- Sebastian 


Thanks,
Bjorn