Received: by 2002:a05:6a10:f347:0:0:0:0 with SMTP id d7csp4190837pxu; Mon, 30 Nov 2020 21:11:57 -0800 (PST) X-Google-Smtp-Source: ABdhPJyCw7I/5Ogcael81nxmScobSTIYhGqN92hcNMLvK++2l9BYSsMrhmCEz0COs19Rd1NROB+C X-Received: by 2002:a17:906:d930:: with SMTP id rn16mr1369078ejb.412.1606799517199; Mon, 30 Nov 2020 21:11:57 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1606799517; cv=none; d=google.com; s=arc-20160816; b=V4zErTif2QVnwhxgDFvKp86GExopX1B7MbLiaNPtnIxEhlj/IFef8f45PjpC0AFlwi cBCJ7NqQBoPIJKcCM8vXCcWDk6j0XjuIV+//nLP3y3oL/ZScaumzMQvnpnDQG0GC/DzK yqq9SLlb5HLgfbAHeBfH8rsPMn12FR2hKYN5c19ZYnv7CBko0I+diMzALbqmC/tfMXvO WmVuzuDWwrc6F0MlC9kaBMKEBAVSOchGLR3JbsmxFfumem3yfmKPonqTW2SA5dQJ5f8J 3/qfWXBkaL5w466BIsZGdEio7zUUlnOp0qeac4pSyLb+HHfftQlhhvi2zNl8bdcT4aZQ cuJA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-disposition:mime-version :references:message-id:subject:cc:to:from:date; bh=atPBcWrrozOq68yKL06RojkGHHC85AUYtgDPHWS8pNQ=; b=dwvyJ3r5v2EKLSMieuUHv+W9LkqoccCn/cSumm2Mn7Gi6q2TGbE/FIqZzviGT0OxvC vdq2oSBBZd/dsgRM0wFkyFmuhwRfCMAsew1aqpE03466yS51xUjI7QI7wv9qlFrUcBB1 suoo9NH6gRAAsQXhj+dzWSdOh5azeZ4sqYEESUixxd+1iCP91Ianx8mMTO2aKCdUQE51 2jPHi+kpmKRJ8tLLLJg3azcNW5crNPv1kkK9lahp7zwF/k97ulPUsNFNFq0kuv50UARF XpCzOo9ggZZiv73CiLpua2gceVYvHZ1lP4VMZXKKhtxFl/FRVEjSHfS07wyoNHEUVswy 9qxQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=toshiba.co.jp Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id k7si403474edk.251.2020.11.30.21.11.34; Mon, 30 Nov 2020 21:11:57 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=toshiba.co.jp Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1725959AbgLAFES (ORCPT + 99 others); Tue, 1 Dec 2020 00:04:18 -0500 Received: from mo-csw1116.securemx.jp ([210.130.202.158]:38624 "EHLO mo-csw.securemx.jp" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725849AbgLAFES (ORCPT ); Tue, 1 Dec 2020 00:04:18 -0500 Received: by mo-csw.securemx.jp (mx-mo-csw1116) id 0B1527gj002940; Tue, 1 Dec 2020 14:02:08 +0900 X-Iguazu-Qid: 2wHHLA7xMpfc7myY54 X-Iguazu-QSIG: v=2; s=0; t=1606798927; q=2wHHLA7xMpfc7myY54; m=cJHqGlfb1V063hhBREcXiFkKnrnXq0x2hVYSI8uE6DE= Received: from imx12.toshiba.co.jp (imx12.toshiba.co.jp [61.202.160.132]) by relay.securemx.jp (mx-mr1111) id 0B1526Ji038343; Tue, 1 Dec 2020 14:02:07 +0900 Received: from enc02.toshiba.co.jp ([61.202.160.51]) by imx12.toshiba.co.jp with ESMTP id 0B1526H1009157; Tue, 1 Dec 2020 14:02:06 +0900 (JST) Received: from hop101.toshiba.co.jp ([133.199.85.107]) by enc02.toshiba.co.jp with ESMTP id 0B1526wY012148; Tue, 1 Dec 2020 14:02:06 +0900 Date: Tue, 1 Dec 2020 14:02:04 +0900 From: Nobuhiro Iwamatsu To: Linus Walleij Cc: "open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS" , Punit Agrawal , "linux-kernel@vger.kernel.org" , "open list:GPIO SUBSYSTEM" , Rob Herring , yuji2.ishikawa@toshiba.co.jp, Linux ARM Subject: Re: [PATCH v2 2/4] gpio: visoconti: Add Toshiba Visconti GPIO support X-TSB-HOP: ON Message-ID: <20201201050204.jlwmkdptrxxptzil@toshiba.co.jp> References: <20201112084057.1399983-1-nobuhiro1.iwamatsu@toshiba.co.jp> <20201112084057.1399983-3-nobuhiro1.iwamatsu@toshiba.co.jp> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi, Thanks for your review. On Tue, Nov 17, 2020 at 09:59:06PM +0100, Linus Walleij wrote: > Hi Nobuhiro, > > On Thu, Nov 12, 2020 at 12:42 AM Nobuhiro Iwamatsu > wrote: > > > Add the GPIO driver for Toshiba Visconti ARM SoCs. > > > > Signed-off-by: Nobuhiro Iwamatsu > > I just noticed this: > > > +config GPIO_VISCONTI > > + tristate "Toshiba Visconti GPIO support" > > + depends on ARCH_VISCONTI || COMPILE_TEST > > + depends on OF_GPIO > > + select GPIOLIB_IRQCHIP > > + help > > + Say yes here to support GPIO on Tohisba Visconti. > > Add: > select GPIO_GENERIC OK, I will add this. > > Then all of these: > > > +static int visconti_gpio_get(struct gpio_chip *chip, unsigned int offset) > > +static void visconti_gpio_set(struct gpio_chip *chip, unsigned int offset, int value) > > +static int visconti_gpio_get_dir(struct gpio_chip *chip, unsigned int offset) > > +static int visconti_gpio_dir_in(struct gpio_chip *chip, unsigned int offset) > > +static int visconti_gpio_dir_out(struct gpio_chip *chip, unsigned int offset, int value) > > Can be implemented by the genric MMIO GPIO library. I see. I will update using generic MMIO GPIO library. > > > + gpio_chip = &priv->gpio_chip; > > + gpio_chip->label = name; > > + gpio_chip->owner = THIS_MODULE; > > + gpio_chip->parent = dev; > > + gpio_chip->request = gpiochip_generic_request; > > + gpio_chip->free = gpiochip_generic_free; > > + gpio_chip->get = visconti_gpio_get; > > + gpio_chip->set = visconti_gpio_set; > > + gpio_chip->get_direction = visconti_gpio_get_dir; > > + gpio_chip->direction_input = visconti_gpio_dir_in; > > + gpio_chip->direction_output = visconti_gpio_dir_out; > > + gpio_chip->base = 0; > > + gpio_chip->ngpio = VISCONTI_GPIO_NR; > > + gpio_chip->irq.init_valid_mask = visconti_init_irq_valid_mask; > > Initialized the generic helpers using the addresses of the > GPIO registers here by a call to bgpio_init(). > > Check this driver for an example: > drivers/gpio/gpio-ftgpio010.c > > If you get uncertain about the arguments to bgpio_init() > check drivers/gpio/gpio-mmio.c, there is kerneldoc for the > function. > > By doing this you get implementations of gpio_[get|set]_multiple() > for free. Thanks for your suggestion. I see. I will check these and update. > > Yours, > Linus Walleij Best regards, Nobuhiro