[Armadeus-commitlog] armadeus branch, master, updated. armadeus-7.0-205-g477ecb744
Brought to you by:
sszy
|
From: Sébastien S. <ss...@us...> - 2020-06-30 09:54:10
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "armadeus".
The branch, master has been updated
via 477ecb744a9a35b8e58a8dd6254745d040ffbd9e (commit)
via 7747d4faf6b0281e69ac27cba2e1a63ea094f292 (commit)
from 691e0c66745b416aff2eec68e7c8d436aabb77dd (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 477ecb744a9a35b8e58a8dd6254745d040ffbd9e
Author: Sébastien Szymanski <seb...@ar...>
Date: Tue Jun 30 11:53:51 2020 +0200
[PATCH] 5.4.imx_legacy: add MAX17048/MAX17049 support
commit 7747d4faf6b0281e69ac27cba2e1a63ea094f292
Author: Sébastien Szymanski <seb...@ar...>
Date: Tue Jun 30 11:45:29 2020 +0200
[PATCH] 5.4.imx_legacy: i.MX8MM: add missing mux option for UART{1,2}
-----------------------------------------------------------------------
Summary of changes:
...mx8mm-Add-missing-mux-options-for-UART1-a.patch | 81 +++++
...ower-supply-add-MAX17048-MAX17049-support.patch | 377 +++++++++++++++++++++
2 files changed, 458 insertions(+)
create mode 100644 patches/linux/5.4.imx_legacy/0502-arm64-dts-imx8mm-Add-missing-mux-options-for-UART1-a.patch
create mode 100644 patches/linux/5.4.imx_legacy/0503-power-supply-add-MAX17048-MAX17049-support.patch
diff --git a/patches/linux/5.4.imx_legacy/0502-arm64-dts-imx8mm-Add-missing-mux-options-for-UART1-a.patch b/patches/linux/5.4.imx_legacy/0502-arm64-dts-imx8mm-Add-missing-mux-options-for-UART1-a.patch
new file mode 100644
index 000000000..34e116deb
--- /dev/null
+++ b/patches/linux/5.4.imx_legacy/0502-arm64-dts-imx8mm-Add-missing-mux-options-for-UART1-a.patch
@@ -0,0 +1,81 @@
+From 2728c4a124a10e96891e93748471f8e2398c266f Mon Sep 17 00:00:00 2001
+From: Frieder Schrempf <fri...@ko...>
+Date: Tue, 10 Dec 2019 14:15:17 +0000
+Subject: [PATCH 1/1] arm64: dts: imx8mm: Add missing mux options for UART1 and
+ UART2 signals
+
+According to the reference manual and the "Pins Tool" from NXP, the
+signals for UART1 and UART2 can be muxed to the SAI2 and SAI3 pads
+respectively. Let's add the missing options.
+
+Signed-off-by: Frieder Schrempf <fri...@ko...>
+Acked-by: Rob Herring <ro...@ke...>
+Signed-off-by: Shawn Guo <sha...@ke...>
+---
+ arch/arm64/boot/dts/freescale/imx8mm-pinfunc.h | 16 ++++++++++++++++
+ 1 file changed, 16 insertions(+)
+
+diff --git a/arch/arm64/boot/dts/freescale/imx8mm-pinfunc.h b/arch/arm64/boot/dts/freescale/imx8mm-pinfunc.h
+index cffa8991880d..5ccc4cc91959 100644
+--- a/arch/arm64/boot/dts/freescale/imx8mm-pinfunc.h
++++ b/arch/arm64/boot/dts/freescale/imx8mm-pinfunc.h
+@@ -430,18 +430,26 @@
+ #define MX8MM_IOMUXC_SAI1_MCLK_SIM_M_HRESP 0x1AC 0x414 0x000 0x7 0x0
+ #define MX8MM_IOMUXC_SAI2_RXFS_SAI2_RX_SYNC 0x1B0 0x418 0x000 0x0 0x0
+ #define MX8MM_IOMUXC_SAI2_RXFS_SAI5_TX_SYNC 0x1B0 0x418 0x4EC 0x1 0x2
++#define MX8MM_IOMUXC_SAI2_RXFS_UART1_DCE_TX 0x1B0 0x418 0x000 0x4 0x0
++#define MX8MM_IOMUXC_SAI2_RXFS_UART1_DTE_RX 0x1B0 0x418 0x4F4 0x4 0x2
+ #define MX8MM_IOMUXC_SAI2_RXFS_GPIO4_IO21 0x1B0 0x418 0x000 0x5 0x0
+ #define MX8MM_IOMUXC_SAI2_RXFS_SIM_M_HSIZE0 0x1B0 0x418 0x000 0x7 0x0
+ #define MX8MM_IOMUXC_SAI2_RXC_SAI2_RX_BCLK 0x1B4 0x41C 0x000 0x0 0x0
+ #define MX8MM_IOMUXC_SAI2_RXC_SAI5_TX_BCLK 0x1B4 0x41C 0x4E8 0x1 0x2
++#define MX8MM_IOMUXC_SAI2_RXC_UART1_DCE_RX 0x1B4 0x41C 0x4F4 0x4 0x3
++#define MX8MM_IOMUXC_SAI2_RXC_UART1_DTE_TX 0x1B4 0x41C 0x000 0x4 0x0
+ #define MX8MM_IOMUXC_SAI2_RXC_GPIO4_IO22 0x1B4 0x41C 0x000 0x5 0x0
+ #define MX8MM_IOMUXC_SAI2_RXC_SIM_M_HSIZE1 0x1B4 0x41C 0x000 0x7 0x0
+ #define MX8MM_IOMUXC_SAI2_RXD0_SAI2_RX_DATA0 0x1B8 0x420 0x000 0x0 0x0
+ #define MX8MM_IOMUXC_SAI2_RXD0_SAI5_TX_DATA0 0x1B8 0x420 0x000 0x1 0x0
++#define MX8MM_IOMUXC_SAI2_RXD0_UART1_DCE_RTS_B 0x1B8 0x420 0x4F0 0x4 0x2
++#define MX8MM_IOMUXC_SAI2_RXD0_UART1_DTE_CTS_B 0x1B8 0x420 0x000 0x4 0x0
+ #define MX8MM_IOMUXC_SAI2_RXD0_GPIO4_IO23 0x1B8 0x420 0x000 0x5 0x0
+ #define MX8MM_IOMUXC_SAI2_RXD0_SIM_M_HSIZE2 0x1B8 0x420 0x000 0x7 0x0
+ #define MX8MM_IOMUXC_SAI2_TXFS_SAI2_TX_SYNC 0x1BC 0x424 0x000 0x0 0x0
+ #define MX8MM_IOMUXC_SAI2_TXFS_SAI5_TX_DATA1 0x1BC 0x424 0x000 0x1 0x0
++#define MX8MM_IOMUXC_SAI2_TXFS_UART1_DCE_CTS_B 0x1BC 0x424 0x000 0x4 0x0
++#define MX8MM_IOMUXC_SAI2_TXFS_UART1_DTE_RTS_B 0x1BC 0x424 0x4F0 0x4 0x3
+ #define MX8MM_IOMUXC_SAI2_TXFS_GPIO4_IO24 0x1BC 0x424 0x000 0x5 0x0
+ #define MX8MM_IOMUXC_SAI2_TXFS_SIM_M_HWRITE 0x1BC 0x424 0x000 0x7 0x0
+ #define MX8MM_IOMUXC_SAI2_TXC_SAI2_TX_BCLK 0x1C0 0x428 0x000 0x0 0x0
+@@ -464,21 +472,29 @@
+ #define MX8MM_IOMUXC_SAI3_RXC_SAI3_RX_BCLK 0x1D0 0x438 0x000 0x0 0x0
+ #define MX8MM_IOMUXC_SAI3_RXC_GPT1_CLK 0x1D0 0x438 0x000 0x1 0x0
+ #define MX8MM_IOMUXC_SAI3_RXC_SAI5_RX_BCLK 0x1D0 0x438 0x4D0 0x2 0x2
++#define MX8MM_IOMUXC_SAI3_RXC_UART2_DCE_CTS_B 0x1D0 0x438 0x000 0x4 0x0
++#define MX8MM_IOMUXC_SAI3_RXC_UART2_DTE_RTS_B 0x1D0 0x438 0x4F8 0x4 0x2
+ #define MX8MM_IOMUXC_SAI3_RXC_GPIO4_IO29 0x1D0 0x438 0x000 0x5 0x0
+ #define MX8MM_IOMUXC_SAI3_RXC_TPSMP_HTRANS1 0x1D0 0x438 0x000 0x7 0x0
+ #define MX8MM_IOMUXC_SAI3_RXD_SAI3_RX_DATA0 0x1D4 0x43C 0x000 0x0 0x0
+ #define MX8MM_IOMUXC_SAI3_RXD_GPT1_COMPARE1 0x1D4 0x43C 0x000 0x1 0x0
+ #define MX8MM_IOMUXC_SAI3_RXD_SAI5_RX_DATA0 0x1D4 0x43C 0x4D4 0x2 0x2
++#define MX8MM_IOMUXC_SAI3_RXD_UART2_DCE_RTS_B 0x1D4 0x43C 0x4F8 0x4 0x3
++#define MX8MM_IOMUXC_SAI3_RXD_UART2_DTE_CTS_B 0x1D4 0x43C 0x000 0x4 0x0
+ #define MX8MM_IOMUXC_SAI3_RXD_GPIO4_IO30 0x1D4 0x43C 0x000 0x5 0x0
+ #define MX8MM_IOMUXC_SAI3_RXD_TPSMP_HDATA0 0x1D4 0x43C 0x000 0x7 0x0
+ #define MX8MM_IOMUXC_SAI3_TXFS_SAI3_TX_SYNC 0x1D8 0x440 0x000 0x0 0x0
+ #define MX8MM_IOMUXC_SAI3_TXFS_GPT1_CAPTURE2 0x1D8 0x440 0x000 0x1 0x0
+ #define MX8MM_IOMUXC_SAI3_TXFS_SAI5_RX_DATA1 0x1D8 0x440 0x4D8 0x2 0x2
++#define MX8MM_IOMUXC_SAI3_TXFS_UART2_DCE_RX 0x1D8 0x440 0x4Fc 0x4 0x2
++#define MX8MM_IOMUXC_SAI3_TXFS_UART2_DTE_TX 0x1D8 0x440 0x000 0x4 0x0
+ #define MX8MM_IOMUXC_SAI3_TXFS_GPIO4_IO31 0x1D8 0x440 0x000 0x5 0x0
+ #define MX8MM_IOMUXC_SAI3_TXFS_TPSMP_HDATA1 0x1D8 0x440 0x000 0x7 0x0
+ #define MX8MM_IOMUXC_SAI3_TXC_SAI3_TX_BCLK 0x1DC 0x444 0x000 0x0 0x0
+ #define MX8MM_IOMUXC_SAI3_TXC_GPT1_COMPARE2 0x1DC 0x444 0x000 0x1 0x0
+ #define MX8MM_IOMUXC_SAI3_TXC_SAI5_RX_DATA2 0x1DC 0x444 0x4DC 0x2 0x2
++#define MX8MM_IOMUXC_SAI3_TXC_UART2_DCE_TX 0x1DC 0x444 0x000 0x4 0x0
++#define MX8MM_IOMUXC_SAI3_TXC_UART2_DTE_RX 0x1DC 0x444 0x4Fc 0x4 0x3
+ #define MX8MM_IOMUXC_SAI3_TXC_GPIO5_IO0 0x1DC 0x444 0x000 0x5 0x0
+ #define MX8MM_IOMUXC_SAI3_TXC_TPSMP_HDATA2 0x1DC 0x444 0x000 0x7 0x0
+ #define MX8MM_IOMUXC_SAI3_TXD_SAI3_TX_DATA0 0x1E0 0x448 0x000 0x0 0x0
+--
+2.26.2
+
diff --git a/patches/linux/5.4.imx_legacy/0503-power-supply-add-MAX17048-MAX17049-support.patch b/patches/linux/5.4.imx_legacy/0503-power-supply-add-MAX17048-MAX17049-support.patch
new file mode 100644
index 000000000..2a66e3fda
--- /dev/null
+++ b/patches/linux/5.4.imx_legacy/0503-power-supply-add-MAX17048-MAX17049-support.patch
@@ -0,0 +1,377 @@
+From 96768018453b285d752ef8d1952ca1dcac900388 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?S=C3=A9bastien=20Szymanski?=
+ <seb...@ar...>
+Date: Tue, 30 Jun 2020 11:50:22 +0200
+Subject: [PATCH 1/1] power: supply: add MAX17048/MAX17049 support
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Signed-off-by: Sébastien Szymanski <seb...@ar...>
+---
+ drivers/power/supply/Kconfig | 8 +
+ drivers/power/supply/Makefile | 1 +
+ drivers/power/supply/max17048_battery.c | 320 ++++++++++++++++++++++++
+ 3 files changed, 329 insertions(+)
+ create mode 100644 drivers/power/supply/max17048_battery.c
+
+diff --git a/drivers/power/supply/Kconfig b/drivers/power/supply/Kconfig
+index 67cf7d28eed1..560504a416ea 100644
+--- a/drivers/power/supply/Kconfig
++++ b/drivers/power/supply/Kconfig
+@@ -386,6 +386,14 @@ config BATTERY_MAX1721X
+ Say Y here to enable support for the MAX17211/MAX17215 standalone
+ battery gas-gauge.
+
++config BATTERY_MAX17048
++ tristate "Maxim MAX17048/MAX17049 Fuel Gauge"
++ depends on I2C
++ help
++ MAX17048 is fuel-gauge systems for lithium-ion (Li+) batteries in
++ handheld and portable equipment. The MAX17048 is configured to
++ operate with a single lithium cell and the MAX17049 with two cells.
++
+ config BATTERY_Z2
+ tristate "Z2 battery driver"
+ depends on I2C && MACH_ZIPIT2
+diff --git a/drivers/power/supply/Makefile b/drivers/power/supply/Makefile
+index 9e41cdb2eaff..7fbdf02bc83b 100644
+--- a/drivers/power/supply/Makefile
++++ b/drivers/power/supply/Makefile
+@@ -50,6 +50,7 @@ obj-$(CONFIG_CHARGER_DA9150) += da9150-charger.o
+ obj-$(CONFIG_BATTERY_DA9150) += da9150-fg.o
+ obj-$(CONFIG_BATTERY_MAX17040) += max17040_battery.o
+ obj-$(CONFIG_BATTERY_MAX17042) += max17042_battery.o
++obj-$(CONFIG_BATTERY_MAX17048) += max17048_battery.o
+ obj-$(CONFIG_BATTERY_MAX1721X) += max1721x_battery.o
+ obj-$(CONFIG_BATTERY_Z2) += z2_battery.o
+ obj-$(CONFIG_BATTERY_RT5033) += rt5033_battery.o
+diff --git a/drivers/power/supply/max17048_battery.c b/drivers/power/supply/max17048_battery.c
+new file mode 100644
+index 000000000000..f7b04612410e
+--- /dev/null
++++ b/drivers/power/supply/max17048_battery.c
+@@ -0,0 +1,320 @@
++// SPDX-License-Identifier: GPL-2.0
++//
++// max17048_battery.c
++// fuel-gauge systems for lithium-ion (Li+) batteries
++//
++// Copyright (C) 2019 Armadeus Systems
++// Sébastien Szymanski <seb...@ar...>
++
++#include <linux/module.h>
++#include <linux/init.h>
++#include <linux/platform_device.h>
++#include <linux/mutex.h>
++#include <linux/err.h>
++#include <linux/i2c.h>
++#include <linux/delay.h>
++#include <linux/power_supply.h>
++#include <linux/slab.h>
++
++#define MAX17048_VCELL 0x02
++#define MAX17048_SOC 0x04
++#define MAX17048_MODE 0x06
++#define MAX17048_VER 0x08
++#define MAX17048_RCOMP 0x0C
++#define MAX17048_CMD 0xFE
++
++
++#define MAX17048_DELAY 1000
++#define MAX17048_BATTERY_FULL 95
++
++struct max17048_chip {
++ struct i2c_client *client;
++ struct power_supply *battery;
++ struct delayed_work work;
++
++ /* State Of Connect */
++ int online;
++ /* battery voltage */
++ int vcell;
++ /* battery capacity */
++ int soc;
++ /* State Of Charge */
++ int status;
++
++ /* battery capacity from voltage */
++ int soc2;
++ int vcell_count;
++ int vcell_sum;
++};
++
++static int max17048_voltage_to_soc(int voltage)
++{
++ int percent;
++
++ voltage = voltage * 625 / 8;
++
++ percent = ((voltage - 3200000) * 1000) / (4200000-3200000);
++ percent = (percent + 5) / 10;
++ if (percent < 0)
++ return 0;
++ if (percent > 100)
++ return 100;
++ return percent;
++}
++
++static int max17048_get_property(struct power_supply *psy,
++ enum power_supply_property psp,
++ union power_supply_propval *val)
++{
++ struct max17048_chip *chip = power_supply_get_drvdata(psy);
++
++ switch (psp) {
++ case POWER_SUPPLY_PROP_STATUS:
++ val->intval = chip->status;
++ break;
++ case POWER_SUPPLY_PROP_ONLINE:
++ val->intval = chip->online;
++ break;
++ case POWER_SUPPLY_PROP_VOLTAGE_NOW:
++ val->intval = chip->vcell * 625 / 8;
++ break;
++ case POWER_SUPPLY_PROP_CAPACITY:
++ val->intval = chip->soc2;
++ break;
++ default:
++ return -EINVAL;
++ }
++ return 0;
++}
++
++static int max17048_write_reg(struct i2c_client *client, int reg, u16 value)
++{
++ int ret;
++
++ ret = i2c_smbus_write_word_swapped(client, reg, value);
++
++ if (ret < 0)
++ dev_err(&client->dev, "%s: err %d\n", __func__, ret);
++
++ return ret;
++}
++
++static int max17048_read_reg(struct i2c_client *client, int reg)
++{
++ int ret;
++
++ ret = i2c_smbus_read_word_swapped(client, reg);
++
++ if (ret < 0)
++ dev_err(&client->dev, "%s: err %d\n", __func__, ret);
++
++ return ret;
++}
++
++static int max17048_reset(struct i2c_client *client)
++{
++ return max17048_write_reg(client, MAX17048_CMD, 0x0054);
++}
++
++static void max17048_get_vcell(struct i2c_client *client)
++{
++ struct max17048_chip *chip = i2c_get_clientdata(client);
++ u16 vcell;
++
++ vcell = max17048_read_reg(client, MAX17048_VCELL);
++
++ chip->vcell = vcell;
++}
++
++static void max17048_get_soc(struct i2c_client *client)
++{
++ struct max17048_chip *chip = i2c_get_clientdata(client);
++ u16 soc;
++
++ soc = max17048_read_reg(client, MAX17048_SOC);
++
++ chip->soc = (soc >> 8);
++}
++
++static void max17048_get_soc2(struct i2c_client *client)
++{
++ struct max17048_chip *chip = i2c_get_clientdata(client);
++
++ if (0 == chip->vcell_sum) {
++ /* first time */
++ chip->soc2 = max17048_voltage_to_soc(chip->vcell);
++ } else {
++ if (chip->vcell_count == 6) {
++ chip->soc2 = max17048_voltage_to_soc(chip->vcell_sum / chip->vcell_count);
++ chip->vcell_count = 0;
++ chip->vcell_sum = 0;
++ }
++ }
++ chip->vcell_sum += chip->vcell;
++ chip->vcell_count ++;
++}
++
++static void max17048_get_version(struct i2c_client *client)
++{
++ u16 version;
++
++ version = max17048_read_reg(client, MAX17048_VER);
++
++ dev_info(&client->dev, "MAX17048/MAX17049 Fuel-Gauge Ver 0x%x\n", version);
++}
++
++static void max17048_get_online(struct i2c_client *client)
++{
++ struct max17048_chip *chip = i2c_get_clientdata(client);
++
++ chip->online = 1;
++}
++
++static void max17048_get_status(struct i2c_client *client)
++{
++ struct max17048_chip *chip = i2c_get_clientdata(client);
++
++ chip->status = POWER_SUPPLY_STATUS_UNKNOWN;
++}
++
++static void max17048_work(struct work_struct *work)
++{
++ struct max17048_chip *chip;
++
++ chip = container_of(work, struct max17048_chip, work.work);
++
++ max17048_get_vcell(chip->client);
++ max17048_get_soc(chip->client);
++ max17048_get_online(chip->client);
++ max17048_get_status(chip->client);
++
++ max17048_get_soc2(chip->client);
++
++ queue_delayed_work(system_power_efficient_wq, &chip->work,
++ MAX17048_DELAY);
++}
++
++static enum power_supply_property max17048_battery_props[] = {
++ POWER_SUPPLY_PROP_STATUS,
++ POWER_SUPPLY_PROP_ONLINE,
++ POWER_SUPPLY_PROP_VOLTAGE_NOW,
++ POWER_SUPPLY_PROP_CAPACITY,
++};
++
++static const struct power_supply_desc max17048_battery_desc = {
++ .name = "battery",
++ .type = POWER_SUPPLY_TYPE_BATTERY,
++ .get_property = max17048_get_property,
++ .properties = max17048_battery_props,
++ .num_properties = ARRAY_SIZE(max17048_battery_props),
++};
++
++static int max17048_probe(struct i2c_client *client,
++ const struct i2c_device_id *id)
++{
++ struct i2c_adapter *adapter = client->adapter;
++ struct power_supply_config psy_cfg = {};
++ struct max17048_chip *chip;
++ int ret;
++
++ if (!i2c_check_functionality(adapter, I2C_FUNC_SMBUS_BYTE))
++ return -EIO;
++
++ chip = devm_kzalloc(&client->dev, sizeof(*chip), GFP_KERNEL);
++ if (!chip)
++ return -ENOMEM;
++
++ chip->client = client;
++
++ i2c_set_clientdata(client, chip);
++ psy_cfg.drv_data = chip;
++
++ ret = max17048_reset(client);
++ if (ret < 0) {
++ return ret;
++ }
++
++ chip->battery = power_supply_register(&client->dev,
++ &max17048_battery_desc, &psy_cfg);
++ if (IS_ERR(chip->battery)) {
++ dev_err(&client->dev, "failed: power supply register\n");
++ return PTR_ERR(chip->battery);
++ }
++
++ max17048_get_version(client);
++
++ INIT_DEFERRABLE_WORK(&chip->work, max17048_work);
++ queue_delayed_work(system_power_efficient_wq, &chip->work,
++ MAX17048_DELAY);
++
++ return 0;
++}
++
++static int max17048_remove(struct i2c_client *client)
++{
++ struct max17048_chip *chip = i2c_get_clientdata(client);
++
++ power_supply_unregister(chip->battery);
++ cancel_delayed_work(&chip->work);
++ return 0;
++}
++
++#ifdef CONFIG_PM_SLEEP
++
++static int max17048_suspend(struct device *dev)
++{
++ struct i2c_client *client = to_i2c_client(dev);
++ struct max17048_chip *chip = i2c_get_clientdata(client);
++
++ cancel_delayed_work(&chip->work);
++ return 0;
++}
++
++static int max17048_resume(struct device *dev)
++{
++ struct i2c_client *client = to_i2c_client(dev);
++ struct max17048_chip *chip = i2c_get_clientdata(client);
++
++ queue_delayed_work(system_power_efficient_wq, &chip->work,
++ MAX17048_DELAY);
++ return 0;
++}
++
++static SIMPLE_DEV_PM_OPS(max17048_pm_ops, max17048_suspend, max17048_resume);
++#define MAX17048_PM_OPS (&max17048_pm_ops)
++
++#else
++
++#define MAX17048_PM_OPS NULL
++
++#endif /* CONFIG_PM_SLEEP */
++
++static const struct i2c_device_id max17048_id[] = {
++ { "max17048" },
++ { "max17049" },
++ { }
++};
++MODULE_DEVICE_TABLE(i2c, max17048_id);
++
++static const struct of_device_id max17048_of_match[] = {
++ { .compatible = "maxim,max17048" },
++ { .compatible = "maxim,max17049" },
++ { },
++};
++MODULE_DEVICE_TABLE(of, max17048_of_match);
++
++static struct i2c_driver max17048_i2c_driver = {
++ .driver = {
++ .name = "max17048",
++ .of_match_table = max17048_of_match,
++ .pm = MAX17048_PM_OPS,
++ },
++ .probe = max17048_probe,
++ .remove = max17048_remove,
++ .id_table = max17048_id,
++};
++module_i2c_driver(max17048_i2c_driver);
++
++MODULE_AUTHOR("Sébastien Szymanski <seb...@ar...>");
++MODULE_DESCRIPTION("MAX17048/MAX17049 Fuel Gauge");
++MODULE_LICENSE("GPL");
+--
+2.26.2
+
hooks/post-receive
--
armadeus
|