Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp316438imu; Wed, 12 Dec 2018 17:40:15 -0800 (PST) X-Google-Smtp-Source: AFSGD/XmHmeTrNTuQnTGXveK1HsMcXK9pHEFDv664m+TVKVS0o0rNKOzpUmkHTVZMnRlSKppX1uT X-Received: by 2002:a17:902:b406:: with SMTP id x6mr20889322plr.329.1544665215106; Wed, 12 Dec 2018 17:40:15 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1544665215; cv=none; d=google.com; s=arc-20160816; b=0dNnoep9F9I8Ts+jDf+Quj1bCtUxMIReZxvSaIuUmwJ681tnOmcisAFe+nSLC5VIVg 28dLO0UNFmJvDbGcLZc7j71JCIr8IJybdHjXHPpLJe8MybEjOTi80i8SiAuWWunT/srZ 62KE1vRluPonSDNrzn5LWO7Ghrapo5AnlIYoGhnEzhfb3r1dDYfosLXv4JrCptk39+Wo gkydRdsBSzwNspV32Y0WKlLtwPu3I8+eouDrwqpP77fU/4T4kmbgKpTH7IQzaEzxo2kI 4in8mSLws1GchttjZ09X8wacmjT3a6eN+StYsiHIIfIhWILU6fYd/uzRINjpIXwW/m4i dtlA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from; bh=pZd+h4APVOy69x+g/vnWwZFtiFnQUKm/1bhezzo2Vvo=; b=w3nMBZk99PoEJPUbMjeVgqTwGPEMS+RAIZ5nim4Y7S1Tmuqiv5Uk9dBdSHS5sm15XI 7ewcM+Ke/HZ1ikziRYUChKF54APeq4LkYAe5Jk0lsjlMbZBMEBAXwEgOv8Doc9k/oeB/ JmenxG1wYit1cGXYn5Q/G/MX7gz6+cXJezq4a81m4LNyDZUzNRtDpxSnxmiZAtGEc0/b zHW/03PluuZrWPrYoHRm9sBr8mXugBtqD1snKMVZoEsDwHCyiuVi1m1B1zYaHdVQNnn/ JeJgb/KifZhrs1ZX9xPMZaVyiHQj61WBg9PS/CjG8G5ZpYG8/F5oOLXbH7UwaXgjXnfG 5aWg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=collabora.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id j186si388201pfb.35.2018.12.12.17.40.00; Wed, 12 Dec 2018 17:40:15 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=collabora.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726483AbeLMBjG (ORCPT + 99 others); Wed, 12 Dec 2018 20:39:06 -0500 Received: from bhuna.collabora.co.uk ([46.235.227.227]:55534 "EHLO bhuna.collabora.co.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726372AbeLMBjF (ORCPT ); Wed, 12 Dec 2018 20:39:05 -0500 Received: from [127.0.0.1] (localhost [127.0.0.1]) (Authenticated sender: sre) with ESMTPSA id E728A263A23 From: Sebastian Reichel To: Sebastian Reichel , =?UTF-8?q?Pali=20Roh=C3=A1r?= Cc: Pavel Machek , Linus Walleij , linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org, Sebastian Reichel Subject: [PATCH] power: supply: isp1704: switch to gpiod API Date: Thu, 13 Dec 2018 02:38:58 +0100 Message-Id: <20181213013858.23996-1-sebastian.reichel@collabora.com> X-Mailer: git-send-email 2.19.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This migrates isp1704 driver from old GPIO API to new descriptor based GPIO API and drops useless platform data as a side-effect. Migration is simple, since all mainline users are DT based and DT API does not change. Out of tree users of the platform data need to migrate to gpiod_lookup_table as described here: Documentation/driver-api/gpio/board.rst Signed-off-by: Sebastian Reichel --- Patch has been tested on Nokia N900. --- drivers/power/supply/isp1704_charger.c | 60 ++++++-------------------- include/linux/power/isp1704_charger.h | 30 ------------- 2 files changed, 12 insertions(+), 78 deletions(-) delete mode 100644 include/linux/power/isp1704_charger.h diff --git a/drivers/power/supply/isp1704_charger.c b/drivers/power/supply/isp1704_charger.c index 95af5f305838..a63cb5dcfa08 100644 --- a/drivers/power/supply/isp1704_charger.c +++ b/drivers/power/supply/isp1704_charger.c @@ -30,13 +30,12 @@ #include #include #include -#include +#include #include #include #include #include -#include /* Vendor specific Power Control register */ #define ISP1704_PWR_CTRL 0x3d @@ -60,6 +59,7 @@ struct isp1704_charger { struct device *dev; struct power_supply *psy; struct power_supply_desc psy_desc; + struct gpio_desc *enable_gpio; struct usb_phy *phy; struct notifier_block nb; struct work_struct work; @@ -81,18 +81,9 @@ static inline int isp1704_write(struct isp1704_charger *isp, u32 reg, u32 val) return usb_phy_io_write(isp->phy, val, reg); } -/* - * Disable/enable the power from the isp1704 if a function for it - * has been provided with platform data. - */ static void isp1704_charger_set_power(struct isp1704_charger *isp, bool on) { - struct isp1704_charger_data *board = isp->dev->platform_data; - - if (board && board->set_power) - board->set_power(on); - else if (board) - gpio_set_value(board->enable_gpio, on); + gpiod_set_value(isp->enable_gpio, on); } /* @@ -405,46 +396,19 @@ static int isp1704_charger_probe(struct platform_device *pdev) int ret = -ENODEV; struct power_supply_config psy_cfg = {}; - struct isp1704_charger_data *pdata = dev_get_platdata(&pdev->dev); - struct device_node *np = pdev->dev.of_node; - - if (np) { - int gpio = of_get_named_gpio(np, "nxp,enable-gpio", 0); - - if (gpio < 0) { - dev_err(&pdev->dev, "missing DT GPIO nxp,enable-gpio\n"); - return gpio; - } - - pdata = devm_kzalloc(&pdev->dev, - sizeof(struct isp1704_charger_data), GFP_KERNEL); - if (!pdata) { - ret = -ENOMEM; - goto fail0; - } - pdata->enable_gpio = gpio; - - dev_info(&pdev->dev, "init gpio %d\n", pdata->enable_gpio); - - ret = devm_gpio_request_one(&pdev->dev, pdata->enable_gpio, - GPIOF_OUT_INIT_HIGH, "isp1704_reset"); - if (ret) { - dev_err(&pdev->dev, "gpio request failed\n"); - goto fail0; - } - } - - if (!pdata) { - dev_err(&pdev->dev, "missing platform data!\n"); - return -ENODEV; - } - - isp = devm_kzalloc(&pdev->dev, sizeof(*isp), GFP_KERNEL); if (!isp) return -ENOMEM; - if (np) + isp->enable_gpio = devm_gpiod_get(&pdev->dev, "nxp,enable", + GPIOD_OUT_HIGH); + if (IS_ERR(isp->enable_gpio)) { + ret = PTR_ERR(isp->enable_gpio); + dev_err(&pdev->dev, "Could not get reset gpio: %d\n", ret); + return ret; + } + + if (pdev->dev.of_node) isp->phy = devm_usb_get_phy_by_phandle(&pdev->dev, "usb-phy", 0); else isp->phy = devm_usb_get_phy(&pdev->dev, USB_PHY_TYPE_USB2); diff --git a/include/linux/power/isp1704_charger.h b/include/linux/power/isp1704_charger.h deleted file mode 100644 index 0105d9e7af85..000000000000 --- a/include/linux/power/isp1704_charger.h +++ /dev/null @@ -1,30 +0,0 @@ -/* - * ISP1704 USB Charger Detection driver - * - * Copyright (C) 2011 Nokia Corporation - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - - -#ifndef __ISP1704_CHARGER_H -#define __ISP1704_CHARGER_H - -struct isp1704_charger_data { - void (*set_power)(bool on); - int enable_gpio; -}; - -#endif -- 2.19.2