Received: by 2002:ac0:a582:0:0:0:0:0 with SMTP id m2-v6csp657576imm; Wed, 10 Oct 2018 02:05:46 -0700 (PDT) X-Google-Smtp-Source: ACcGV63vo7ltzGNYGMwKqO7pKHGO+fh/FmWJdB1We2lcUyR/d3WNxro2ocOTVW4HBGUsOrIHRtVN X-Received: by 2002:a63:2483:: with SMTP id k125-v6mr29025126pgk.287.1539162346084; Wed, 10 Oct 2018 02:05:46 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1539162346; cv=none; d=google.com; s=arc-20160816; b=TlPF6UkP/tTRSzfNC8x2yH9Pl28/zKWvzglI73oUn9hZQBhQrpKIfLfPvDmudT1uq8 HkgDkzwgPO4NbMG4L8ZI0cTheM9DN1MFc4h9EPb5JnWORgIv+kvZUlbON1XuC33N4sAV g01FXXOeVJpRr1BlbKIesY0PPZZ7Hl/EPditOIAM/rJ5+K/IUgo4LDm3hcZf0KVfm29K ZRia6V4CyU/8MHvGeVf1wDnU8Sx/F/TnkLjlySwox61Lwl5hY/eBReCws1+v5iAfe1Tk NX9kACEhNKR4ujaFdgJ4w2r6elM2q68tGWzfnM8uPEOLwOIDu6ZIGlt2mCEd7Nzkq4Az kP+w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=s9xNZ6ajtGDeVG5ebuIZNGgHb4V6hGnPu7n24WYk+AM=; b=S+x4NJFfbuDhTSiU5kcxr05KndC418sHbfI7AQkdFwPDkIe4ep55D/xpfi7FWrJNHl Y+FK5i1XDKzYBuhEGE8/Onsloww1XRThJvqzIpW3fGnivYbmzxkh0AvZISWsmdLvWDjJ ZliZlkMhXc5vmUuq989RdSFD27sk2oSQl9slh7D5uGAelhsP2jWfzqupNc5ATTnSAmfe bcmmXy5TjAN8RZeHmNpCmWpIGn3Jgl/AED7D/CLdK7M6BSZbcEk+C+Y1b4s1296L0sY1 CC6xA64ck5sFAbufKTGVR3uNT2TDp9Lh6zIKEEJFOCXbm4W45Z/Ah58M9fu/DyDnqt/0 1ABA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=ghYlhOgb; 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=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id f91-v6si16620441plf.324.2018.10.10.02.05.31; Wed, 10 Oct 2018 02:05:46 -0700 (PDT) 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; dkim=pass header.i=@linaro.org header.s=google header.b=ghYlhOgb; 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=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727443AbeJJQ0I (ORCPT + 99 others); Wed, 10 Oct 2018 12:26:08 -0400 Received: from mail-it1-f196.google.com ([209.85.166.196]:51359 "EHLO mail-it1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726967AbeJJQ0G (ORCPT ); Wed, 10 Oct 2018 12:26:06 -0400 Received: by mail-it1-f196.google.com with SMTP id 74-v6so6937521itw.1 for ; Wed, 10 Oct 2018 02:04:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=s9xNZ6ajtGDeVG5ebuIZNGgHb4V6hGnPu7n24WYk+AM=; b=ghYlhOgbiNih2LxITJ/C4IloDpurKzd9kIxEnHyM/PIYLrkCg0RKRGtetSINh+RkkL r/trLYq8mCSbkq3C4S6XBDIshS+hqGaQEyZ6mvaoT1jBhCZgb4j+UGOZz4yw+yrarXrv aToPp+1DU9KzvvBn2nPOZmlLxdKWv6UBQ0Aio= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=s9xNZ6ajtGDeVG5ebuIZNGgHb4V6hGnPu7n24WYk+AM=; b=IMe7uAIvWu5g5OJ2AOcjy6386iJKbYjK/QxyMQWW3mOQEANHSrPvmDhKJcbm8MpOd2 TETH8thYAKO7JNFbctd1Vo9xDZjW122aAWIDbv8D/Z8BBgQYSBdMtnu7lEdfLes2nGah moXYVdSPqfyy3NZoF/4UTxuqlnqXvyiJ8Edq0lpYeKfLTBLyXEp7KU2z62+UxVblDOsO a0dPr5y4YMGWhrOGz3uaTtytdVa++CiWjoHUnBw1AD1z9npODNeNFOno5+7nI5q3AE83 DoGC5Q+953m+6aYg8JF8Jzm6NCm47JZBzhNZCiFVKtqLMtYHUfdyH8T1DeDqVLBEwQSa 1uFQ== X-Gm-Message-State: ABuFfogCV+DluNoCZ1DwY1iu5Yqr6Rk/Oh/JsmoCB37c17Rq89kfS0b0 VPUlRky9e+te61yWExE+pgK8j3Mh0yvqZMCB7RSJrQ== X-Received: by 2002:a24:e0c8:: with SMTP id c191-v6mr61048ith.156.1539162292807; Wed, 10 Oct 2018 02:04:52 -0700 (PDT) MIME-Version: 1.0 References: <20181008211205.2900-1-vz@mleia.com> <20181008211205.2900-7-vz@mleia.com> In-Reply-To: <20181008211205.2900-7-vz@mleia.com> From: Linus Walleij Date: Wed, 10 Oct 2018 11:04:41 +0200 Message-ID: Subject: Re: [PATCH 6/7] pinctrl: ds90ux9xx: add TI DS90Ux9xx pinmux and GPIO controller driver To: Vladimir Zapolskiy Cc: Lee Jones , Rob Herring , Mark Vasut , Laurent Pinchart , Wolfram Sang , "open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS" , "open list:GPIO SUBSYSTEM" , linux-media@vger.kernel.org, "linux-kernel@vger.kernel.org" , Vladimir Zapolskiy Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Vladimir, thanks for your patch! Some review comments: On Mon, Oct 8, 2018 at 11:12 PM Vladimir Zapolskiy wrote: > From: Vladimir Zapolskiy > > The change adds an MFD cell driver for managing pin functions on > TI DS90Ux9xx de-/serializers. > > Signed-off-by: Vladimir Zapolskiy Please mention in the commit that you are also adding a GPIO chip driver. > +// SPDX-License-Identifier: GPL-2.0-or-later I prefer the simple "GPL-2.0+" here. > +#include You should not need this include. If you do, something is wrong. > +#define SER_REG_PIN_CTRL 0x12 > +#define PIN_CTRL_RGB18 BIT(2) > +#define PIN_CTRL_I2S_DATA_ISLAND BIT(1) > +#define PIN_CTRL_I2S_CHANNEL_B (BIT(0) | BIT(3)) > + > +#define SER_REG_I2S_SURROUND 0x1A > +#define PIN_CTRL_I2S_SURR_BIT BIT(0) > + > +#define DES_REG_INDIRECT_PASS 0x16 > + > +#define OUTPUT_HIGH BIT(3) > +#define REMOTE_CONTROL BIT(2) > +#define DIR_INPUT BIT(1) > +#define ENABLE_GPIO BIT(0) > + > +#define GPIO_AS_INPUT (ENABLE_GPIO | DIR_INPUT) > +#define GPIO_AS_OUTPUT ENABLE_GPIO > +#define GPIO_OUTPUT_HIGH (GPIO_AS_OUTPUT | OUTPUT_HIGH) > +#define GPIO_OUTPUT_LOW GPIO_AS_OUTPUT > +#define GPIO_OUTPUT_REMOTE (GPIO_AS_OUTPUT | REMOTE_CONTROL) These have a creepily generic look, like they hit the global GPIO namespace without really clashing. It gets confusing when reading the code. Do you think you could prefix them with DS90_* or something so it is clear that these defines belong in this driver? > +static const struct gpio_chip ds90ux9xx_gpio_chip = { > + .owner = THIS_MODULE, > + .get = ds90ux9xx_gpio_get, > + .set = ds90ux9xx_gpio_set, > + .get_direction = ds90ux9xx_gpio_get_direction, > + .direction_input = ds90ux9xx_gpio_direction_input, > + .direction_output = ds90ux9xx_gpio_direction_output, > + .base = -1, > + .can_sleep = 1, This is bool so set it = true; Overall it's a very nice driver. It is pretty complex but pin control is complex so that's a fact of life. Yours, Linus Walleij