Received: by 2002:a25:1985:0:0:0:0:0 with SMTP id 127csp698462ybz; Wed, 29 Apr 2020 07:52:30 -0700 (PDT) X-Google-Smtp-Source: APiQypKaqjK51cblm5HEluxZtCemAB2TvGJG/isM3yERJULdOV/krZ0mJCo0237hg/GXJ9azxX3w X-Received: by 2002:a05:6402:1506:: with SMTP id f6mr2856698edw.217.1588171950369; Wed, 29 Apr 2020 07:52:30 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1588171950; cv=none; d=google.com; s=arc-20160816; b=yDHOA/NM2BZnn5dKPUFXu+4xxht4L6pdMfHniPkdfUfsS6O5mkvPJMuiXLqrBTlkD1 m1EunYRMHm47IIAedAHDlCbWh+eIe0acikwdgRKJT+CfncHhTnr0YT+mlQTRE7y2TBw+ VFM5v7y9HfumqBas54sWrTHSIUTfT+dluPrtOdumqyksoLUegTm9Z6g37QHwmjRITh65 pTS6c0rbcJaY0JFY7I7ojI7QaoGesqNMcaVxn5PEgbC4DN6pngr9CdDayets42FpsEIR 2uPCv3aNgbEQ70rSXDBhytv0hK5+Eeei2iYT6uCDoloC6kXDKlo/C2I4gq0U3pYMPp4i lbtQ== 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=qyI0SNEnQtXEbJwY1Ck/cg35XSFvpALxjDJPBXBhrnQ=; b=zKF/7RMrn4gll78F76I51eDC+Rc5q2SbIqY253Ak5eLFTq3nCkEI1WS51PahxFDlA0 MuvACNHJyaTO8ctjFrDPLl4KTzvxCqqX5FiuRqQG19PZG/Zrx0Y0AZOBHXV6Ln8WlNHl IzDrSSRXBXyMGtTshCa5J6pJ4ltp9H71C8sRUQsrU7aVATB794ytOq76ETZ1cs3Of1t4 uhR4furPXToqFb6UzawhU/Zn+QbqNBIs2A/CaevzkwbFryy367/P8ODHCmPvPIFJtpRS 1QiBi4A9YYiFEMh5/Xp8pdYJP3SUGkAoG5xSS793K4PGQJ+D5v0BQ02rFWSD2hUE8UCI GaMA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gateworks-com.20150623.gappssmtp.com header.s=20150623 header.b=OTk4BhDe; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id v12si1200796edb.234.2020.04.29.07.52.07; Wed, 29 Apr 2020 07:52:30 -0700 (PDT) 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; dkim=pass header.i=@gateworks-com.20150623.gappssmtp.com header.s=20150623 header.b=OTk4BhDe; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727057AbgD2OuX (ORCPT + 99 others); Wed, 29 Apr 2020 10:50:23 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36452 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1726929AbgD2OuV (ORCPT ); Wed, 29 Apr 2020 10:50:21 -0400 Received: from mail-ot1-x344.google.com (mail-ot1-x344.google.com [IPv6:2607:f8b0:4864:20::344]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7F8ACC03C1AD for ; Wed, 29 Apr 2020 07:50:21 -0700 (PDT) Received: by mail-ot1-x344.google.com with SMTP id e20so1862218otk.12 for ; Wed, 29 Apr 2020 07:50:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gateworks-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=qyI0SNEnQtXEbJwY1Ck/cg35XSFvpALxjDJPBXBhrnQ=; b=OTk4BhDexgtYj45AbedwxqiaNtEWMz5vICEz3FjS2ASgEs8RDykY5nycZKJdyYbvnn xdYRSxrMo55Daa/iS9BaQRTfDRlJL96e4tSX6UHp/duPNiog6mElo/qalSUKyuNe2+2N FywOGF2rs+Lg/lbWRbixNls/EZK2awg/bnYNn07l121KiDC7cS3+PpjNLSCT4vphjz9Q 8+Qvo/Jpc4uxv0X7IfL1rgTr7vmGDeAVK+o2Evv+5128QbHUGYjhzwz3j8odYXtGvUjn MHsz/jK4o0FM3/8LMB8RHP46ODdQNZsg6uZaFmQaGKJ55XRjyCSufzRH3kpLiEfiZ5zN 8GxQ== 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=qyI0SNEnQtXEbJwY1Ck/cg35XSFvpALxjDJPBXBhrnQ=; b=PU4bUdNritx0WjqefG9McFDhhnz9+K57M08gAjVAEsEWJxvCBlzWwoJhhi/SUtrqW2 U+HyR8uIBSuVr98hp5bgyZVhPSCPnrIF/W6HSRJ+CLVjRtIcfkg9p8NKYOYhwNlz96gw Flbn0y+0DgwUalsEIV+acVlpHNUAyl1UL6bp4W8M2kHhLYqd8HhbYzFzIlOMLIO/dB8Z 0W9kvRLEMIwVGIsYCFv7Gqnpxs2pL6HmACa2CPeTCskvPgqB+/uI9tkaLkVF6H3FzKii YVVUnEJx+VdEa/Yg16BibpqMhnEVAKq3GTgJUrPmA8GW5PPqk2bDIJwcfdXerfAyfE4k RtgA== X-Gm-Message-State: AGi0PuYU/av/8PUhiYJxnOsN3oBFyQqPVvvu/MDc0OmJWWQceJXahv55 DYpZ7TPzbDm0wh3G5osFv/MKQB6IEh6fhQcF5WhtHQ== X-Received: by 2002:a9d:2f48:: with SMTP id h66mr24840284otb.252.1588171820828; Wed, 29 Apr 2020 07:50:20 -0700 (PDT) MIME-Version: 1.0 References: <1585341214-25285-1-git-send-email-tharvey@gateworks.com> <1585341214-25285-3-git-send-email-tharvey@gateworks.com> <20200428094426.GL3559@dell> <20200429063319.GV3559@dell> In-Reply-To: <20200429063319.GV3559@dell> From: Tim Harvey Date: Wed, 29 Apr 2020 07:50:09 -0700 Message-ID: Subject: Re: [PATCH v8 2/3] mfd: add Gateworks System Controller core driver To: Lee Jones Cc: Jean Delvare , Guenter Roeck , Linux HWMON List , Rob Herring , Frank Rowand , Device Tree Mailing List , open list , Robert Jones , Randy Dunlap 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 On Tue, Apr 28, 2020 at 11:33 PM Lee Jones wrote: > > On Tue, 28 Apr 2020, Tim Harvey wrote: > > > On Tue, Apr 28, 2020 at 2:44 AM Lee Jones wrote: > > > > > > > > > + > > > > +static int gsc_probe(struct i2c_client *client) > > > > +{ > > > > + struct device *dev = &client->dev; > > > > + struct gsc_dev *gsc; > > > > + int ret; > > > > + unsigned int reg; > > > > + > > > > + gsc = devm_kzalloc(dev, sizeof(*gsc), GFP_KERNEL); > > > > + if (!gsc) > > > > + return -ENOMEM; > > > > + > > > > + gsc->dev = &client->dev; > > > > + gsc->i2c = client; > > > > + i2c_set_clientdata(client, gsc); > > > > + > > > > + gsc->bus.reg_write = gsc_regmap_regwrite; > > > > + gsc->bus.reg_read = gsc_regmap_regread; > > > > > > Why do you need to store these in ddata? > > > > Lee, > > > > Thanks for the review! > > > > I need the remap_bus* for devm_regmap_init() in the hwmon sub-module driver: > > > > hwmon->regmap = devm_regmap_init(dev, &gsc->bus, gsc->i2c_hwmon, > > &gsc_hwmon_regmap_config); > > > > Is there something easier I'm missing? > > This is an odd setup. I haven't seen one driver registering another > driver's Regmap call-backs before, related or otherwise. Normally the > Regmap is setup (initialised) in the parent driver and child drivers > just make use of it. Here it looks like you are registering 2 > separate Regmaps, but using the same call-backs for both, which seems > wrong to me. > Lee, It is perhaps an odd setup. The hwmon sub-device is at a different i2c slave address than the other sub-devices. The same callbacks are used for reg read/write to take advantage of the retries due to the errata resulting in occasional NAK'd register reads. Tim