From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-3.8 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id CF594C433E0 for ; Fri, 19 Jun 2020 09:08:09 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 7D48420890 for ; Fri, 19 Jun 2020 09:08:09 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="DYB60ke6"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="xoWK/3kN" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 7D48420890 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linaro.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References: Message-ID:Subject:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=ZdwmZ4OmzlqYHTfPmD2ydk+d/TPmOe0r6w/0vM7XsDM=; b=DYB60ke6XvHZgv +ZbSK+hPmh9ieLZzVnyifpKNAW5Q7yRibEIA/q/OmixzKjSIWW74yb1XPUUUbG3TgwAOS4YBXar2m GGw2JePXiQWwt4cOhGij5Y5bi6BFaIoBUOBaVpqj40/9uVPKSFwa1Os7snD8APGJ3uHwObWYaGeSf 0EOVkySqb+PHPWvjmpYH1kITO9sdw5tSZPIefshTujpr+B5CJcL2DIEGGuKr7jxFsEuhOO8E/hT1F 7KHhHNplLmSrkPggdMFQP+17l3YigGtuG69O+90QP66589Xa8h7YAaSlTE5sjN0INpJgVCO1bdOoy vER+o/UUmqWuXpY62XjQ==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1jmD0E-0004pg-EH; Fri, 19 Jun 2020 09:08:02 +0000 Received: from mail-wr1-x444.google.com ([2a00:1450:4864:20::444]) by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1jmCzG-0003rs-Nh for linux-arm-kernel@lists.infradead.org; Fri, 19 Jun 2020 09:07:05 +0000 Received: by mail-wr1-x444.google.com with SMTP id b6so8905921wrs.11 for ; Fri, 19 Jun 2020 02:07:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:content-transfer-encoding:in-reply-to; bh=An0/1Yz6hizQTR4fj1ifS1TO4fEjpitZbgWOcyK/IZY=; b=xoWK/3kNajghFrZozDbLkZ+9+1h4rMZRk4i/g1WFQfGERECbt04srXH5UJiGrrbyKu h9LnBp9ynJIbsmyXcVy6mZmjnjmoawF0OI4WWZTtX7qllMcrF1Q82TpgA9Ldf0b9TY54 PCEtzLpxZsJSzyvXo5nZIzHAW+IT0av9VSakipBADy4JSffgRW7dlODsp4Ipw9fSjPHz Zlft2GrVjOwhXt3+if3NEAqx/2zfC8NPd2shaYvo5p8c3MRL/WQH9t9UBCHdNshXkpsm IBMT/ylXZAGudAqfbOO7vXR6sQBQ49XrgUHCZ/r3uZ+Dx3iBfk8YDVKK97nveHNxpcUo iw8g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:content-transfer-encoding :in-reply-to; bh=An0/1Yz6hizQTR4fj1ifS1TO4fEjpitZbgWOcyK/IZY=; b=YDWP5kUV2izXIJBR6lS34LJFkruFMDiHu+kdNYMTUsMHi4Me7ajKgQTphZ4KnzfBWD E95k6gmVKOyy0dYewcxAuC7hLEfoDt8NLT8Mrd4We1Zd3ZAzoZBcnPbcpM9cDflJh+sJ LOg2l+LrRvix9PRAYGPrAlf5m6hDkdbFs6CtArCgnFYoCNv73lnaLhcVAahDaojrBLqR jcxKyX8fTZm9EI+Tx48b7tByovFF4Fpy3NwkaGkvo/+lDUMqU+M9yY0GCFfjS0FrcPeE TsgUEDKp5Fs9wZmhhbU99VP5I64tYXDlOzLBU+VU+zxlrydsdAKVEqPArmhDWhAXKB8T DVuw== X-Gm-Message-State: AOAM531hjGvuHYYlXD026oF1Ucpgc6qyy3mmXsog1Am/rDhDJh1AcHRc yCBgJCSRENh3UvJCfFc3oDs/BQ== X-Google-Smtp-Source: ABdhPJya5CT4h4LEpPiFHKoiDP1NdZBtAKWO81GUFvApmmIdbuZgnssYXSgixGojtFmF7wmOkDbpXA== X-Received: by 2002:a5d:4a8a:: with SMTP id o10mr2934774wrq.222.1592557620112; Fri, 19 Jun 2020 02:07:00 -0700 (PDT) Received: from dell ([2.27.35.144]) by smtp.gmail.com with ESMTPSA id b18sm6376150wrn.88.2020.06.19.02.06.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Jun 2020 02:06:59 -0700 (PDT) Date: Fri, 19 Jun 2020 10:06:57 +0100 From: Lee Jones To: Chen-Yu Tsai Subject: Re: [PATCH v3 1/1] mfd: Add I2C based System Configuaration (SYSCON) access Message-ID: <20200619090657.GL954398@dell> References: <20200618080223.951737-1-lee.jones@linaro.org> <20200618100704.GC954398@dell> <20200619064141.GK954398@dell> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200619_020702_840669_28490082 X-CRM114-Status: GOOD ( 37.92 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: DTML , Arnd Bergmann , gregkh , Linus Walleij , "linux-kernel@vger.kernel.org" , Rob Herring , Bartosz Golaszewski , michael@walle.cc, Mark Brown , Andy Shevchenko , Linux ARM Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org T24gRnJpLCAxOSBKdW4gMjAyMCwgQ2hlbi1ZdSBUc2FpIHdyb3RlOgoKPiBPbiBGcmksIEp1biAx OSwgMjAyMCBhdCAyOjQxIFBNIExlZSBKb25lcyA8bGVlLmpvbmVzQGxpbmFyby5vcmc+IHdyb3Rl Ogo+ID4KPiA+IE9uIEZyaSwgMTkgSnVuIDIwMjAsIENoZW4tWXUgVHNhaSB3cm90ZToKPiA+Cj4g PiA+IE9uIFRodSwgSnVuIDE4LCAyMDIwIGF0IDY6MDcgUE0gTGVlIEpvbmVzIDxsZWUuam9uZXNA bGluYXJvLm9yZz4gd3JvdGU6Cj4gPiA+ID4KPiA+ID4gPiBPbiBUaHUsIDE4IEp1biAyMDIwLCBB cm5kIEJlcmdtYW5uIHdyb3RlOgo+ID4gPiA+Cj4gPiA+ID4gPiBPbiBUaHUsIEp1biAxOCwgMjAy MCBhdCAxMDowMyBBTSBMZWUgSm9uZXMgPGxlZS5qb25lc0BsaW5hcm8ub3JnPiB3cm90ZToKPiA+ ID4gPiA+ID4KPiA+ID4gPiA+ID4gVGhlIGV4aXN0aW5nIFNZU0NPTiBpbXBsZW1lbnRhdGlvbiBv bmx5IHN1cHBvcnRzIE1NSU8gKG1lbW9yeSBtYXBwZWQpCj4gPiA+ID4gPiA+IGFjY2Vzc2VzLCBm YWNpbGl0YXRlZCBieSBSZWdtYXAuICBUaGlzIGV4dGVuZHMgc3VwcG9ydCBmb3IgcmVnaXN0ZXJz Cj4gPiA+ID4gPiA+IGhlbGQgYmVoaW5kIEkyQyBidXNzZXMuCj4gPiA+ID4gPiA+Cj4gPiA+ID4g PiA+IFNpZ25lZC1vZmYtYnk6IExlZSBKb25lcyA8bGVlLmpvbmVzQGxpbmFyby5vcmc+Cj4gPiA+ ID4gPgo+ID4gPiA+ID4gVGhlIGltcGxlbWVudGF0aW9uIGxvb2tzIGZpbmUgdG8gbWUsIGJ1dCBj YW4geW91IGV4cGxhaW4gaG93IHRoaXMgaXMgZ29pbmcgdG8KPiA+ID4gPiA+IGJlIHVzZWQsIGFu ZCB3aGF0IHRoZSBhZHZhbnRhZ2UgaXMgb3ZlciBvcGVuLWNvZGluZyB0aGUgZGV2bV9yZWdtYXBf aW5pdF9pMmMoKQo+ID4gPiA+ID4gaW4gZWFjaCBkcml2ZXIgdGhhdCB3b3VsZCB1c2UgdGhpcz8K PiA+ID4gPgo+ID4gPiA+IERvZXMgUmVnbWFwIGxldCB5b3UgcmVnaXN0ZXIvaW5pdGlhbGlzZSBh biBJMkMgYWRkcmVzcyBtb3JlIHRoYW4gb25jZT8KPiA+ID4gPgo+ID4gPiA+IFdoZW4gSSBhdHRl bXB0IGl0LCBJIGdldDoKPiA+ID4gPgo+ID4gPiA+IFsgICAgMC41MjI5ODhdIGkyYyBpMmMtMDog RmFpbGVkIHRvIHJlZ2lzdGVyIGkyYyBjbGllbnQgdG1wMTA1IGF0IDB4MzIgKC0xNikKPiA+ID4g PiBbICAgIDAuNTIzMzQxXSBpMmMgaTJjLTA6IG9mX2kyYzogRmFpbHVyZSByZWdpc3RlcmluZyAv YnVzQDQwMDAwMDAvbW90aGVyYm9hcmQvaW9mcGdhQDcsMDAwMDAwMDAvaTJjQDE2MDAwL3RlbXBA MzIKPiA+ID4gPiBbICAgIDAuNTIzNjkxXSBpMmMgaTJjLTA6IEZhaWxlZCB0byBjcmVhdGUgSTJD IGRldmljZSBmb3IgL2J1c0A0MDAwMDAwL21vdGhlcmJvYXJkL2lvZnBnYUA3LDAwMDAwMDAwL2ky Y0AxNjAwMC90ZW1wQDMyCj4gPiA+ID4KPiA+ID4gPiA+IElzIHRoaXMgYWJvdXQgdXNpbmcgcHJv cGVyIGxvY2tpbmcgdGhyb3VnaCB0aGUgcmVnbWFwIGZyYW1ld29yayBmb3IKPiA+ID4gPiA+IHNo YXJlZCBpMmMgY2xpZW50cywgb3IgdG8gcmVkdWNlIG1lbW9yeSBjb25zdW1wdGlvbiB3aGVuIGxv dHMgb2YgZHJpdmVycwo+ID4gPiA+ID4gYWNjZXNzIHRoZSBzYW1lIHJlZ21hcD8KPiA+ID4gPgo+ ID4gPiA+IEFsbCBvZiB0aG9zZSB0aGluZ3MgYXJlIHZhbGlkLgo+ID4gPiA+Cj4gPiA+ID4gTXkg dXNlLWNhc2UgaXMgcmVnYXJkaW5nIE1GRHMgc2hhcmluZyBhbiBJMkMgaW50ZXJmYWNlZCBhZGRy ZXNzIHNwYWNlCj4gPiA+ID4gd2l0aCB0aGVpciBjaGlsZHJlbi4KPiA+ID4KPiA+ID4gSXMgdGhh dCBhbiBpc3N1ZSB3aXRoIHRoZSBzdGFuZGFyZCBtZmQgKyByZWdtYXAgcGF0dGVybj8KPiA+Cj4g PiBUaGVyZSBpcyBubyByZWxhdGlvbnNoaXAgYmV0d2VlbiBNRkQgYW5kIFJlZ21hcC4gIEl0IGlz IG5vdCBtb3JlCj4gPiBjbG9zZWx5IHJlbGF0ZWQgdG8gUmVnbWFwIHRoYW4gaXQgaXMgYW55IG90 aGVyIHB1YmxpYyBBUEkgcHJvdmlkZWQKPiA+IHdpdGhpbiB0aGUga2VybmVsLiAgKlNvbWUqIHBh cmVudCBkcml2ZXJzIGluaXRpYWxpc2Ugb25lIGxhcmdlLAo+ID4gZW5jb21wYXNzaW5nIFJlZ21h cCBhZGRyZXNzIHNwYWNlIGFuZCBwYXNzIGl0IHRvIHRoZWlyIGNoaWxkcmVuLCBidXQKPiA+IHRo aXMgaXNuJ3Qgc3VpdGFibGUgaW4gYWxsIGNhc2VzLgo+ID4KPiA+ID4gRm9yIHRoZSBBWFAyMHgg UE1JQ3MsIHdlIHJlZ2lzdGVyIHRoZSByZWdtYXAgaW4gdGhlIHBhcmVudCBtZmQgZHJpdmVyIFsx XSwKPiA+ID4gYW5kIHN0b3JlIHRoYXQgaW4gZGV2X2RhdGEgZm9yIGNoaWxkIGRyaXZlcnMgdG8g ZmV0Y2ggWzJdLiBZb3UgY291bGQKPiA+ID4gZWFzaWx5IGp1c3QgZmV0Y2ggdGhlIHJlZ21hcCB3 aXRoIGRldl9nZXRfcmVnbWFwKCkgYW5kIGEgcG9pbnRlciB0byB0aGUKPiA+ID4gcGFyZW50IGRl dmljZS4KPiA+Cj4gPiBSZW1lbWJlciwgbm90IGFsbCB1c2UtY2FzZXMgYXJlIHRoZSBzYW1lLiAg SnVzdCBiZWNhdXNlIHlvdXIgSC9XIGZpdHMKPiA+IHdlbGwgd2l0aGluIHRoZSBjdXJyZW50IGZy YW1ld29yaywgZG9lc24ndCBtZWFuIGFsbCB3aWxsLgo+ID4KPiA+IEluaXRpYWxpc2luZyBpbiB0 aGUgcGFyZW50IGlzIG5vIHByb2JsZW0gaWYgdGhlIGRyaXZlciBpcyBtZWFuaW5nZnVsCj4gPiBp biBvdGhlciB3YXlzLCBidXQgd2hhdCBpZiB0aGF0J3MgYWxsIHRoZSBwYXJlbnQgZHJpdmVyIGRv ZXM/ICBJbgo+ID4gdGhlc2UgY2FzZXMgU3lzY29uIGNhbiBiZSB1c2VkIGluc3RlYWQsIHJlbmRl cmluZyB0aGUgZHJpdmVyCj4gPiBzdXBlcmZsdW91cy4gTWVhbmluZyBpdCBjYW4gKGFuZCAqc2hv dWxkKikgdGhlbiBiZSBvbWl0dGVkLgo+IAo+IEknbSBndWVzc2luZyBpbiB5b3VyIHVzZSBjYXNl IHRoZXJlIGlzbid0IGEgbmVlZCBmb3IgYSBwYXJlbnQgZHJpdmVyLAo+IGFuZCB5b3UgYXJlIGxv b2tpbmcgZm9yIHNvbWV0aGluZyBsaWtlICJzaW1wbGUtbWZkIiwgYnV0IGZvciBsaXN0aW5nCj4g c3ViLWRldmljZXMgd2l0aGluIGFuIEkyQyBzbGF2ZSBkZXZpY2U/IEluIHRoYXQgY2FzZSBJIHVu ZGVyc3RhbmQuCgpCaW5nbyEKCkFjdHVhbGx5IHRoaXMgd2lsbCBiZSB1c2VkICp3aXRoKiAic2lt cGxlLW1mZCIuICAic2ltcGxlLW1mZCIgd2lsbAplbnN1cmUgdGhlIHN1Yi1kZXZpY2VzIGFyZSBw cm9iZWQgYW5kICJzeXNjb24iIHdpbGwgYWxsb3cgdGhlbSB0bwpzaGFyZSBhbiBhZGRyZXNzIHNw YWNlLiAgVGhpcyBpcyBjdXJyZW50bHkgcG9zc2libGUgZm9yIE1NSU8sIGJ1dCBub3QKc28gZm9y IHJlZ2lzdGVyIG1hcHMgbG9jYXRlZCBiZWhpbmQgYW4gSTJDIGludGVyZmFjZS4KCj4gPiA+ID4g PiBNeSBpbXByZXNzaW9uIG9mIHRoZSBleGlzdGluZyBzeXNjb24gY29kZSBpcyB0aGF0IHRoZSBt YWluIHZhbHVlLWFkZCBvdmVyCj4gPiA+ID4gPiBvdGhlciB3YXlzIG9mIGRvaW5nIHRoZSBzYW1l IGlzIHRoZSBzeXNjb25fcmVnbWFwX2xvb2t1cF9ieV9waGFuZGxlKCkKPiA+ID4gPiA+IGludGVy ZmFjZSB0aGF0IGdpdmVzIG90aGVyIGRyaXZlcnMgYSBtdWNoIHNpbXBsZXIgd2F5IG9mIGdldHRp bmcgdGhlCj4gPiA+ID4gPiByZWdtYXAganVzdCBiYXNlZCBvbiB0aGUgRFQgbm9kZS4gQXJlIHlv dSBwbGFubmluZyB0byBhZGQgc29tZXRoaW5nCj4gPiA+ID4gPiBsaWtlIHRoYXQgaGVyZSBhcyB3 ZWxsPyBBbiBpZGVhbCBkcml2ZXIgaW50ZXJmYWNlIG1pZ2h0IGFsbG93Cj4gPiA+ID4gPiBzeXNj b25fcmVnbWFwX2xvb2t1cF9ieV9waGFuZGxlKCkgdG8gd29yayBmb3IgYm90aCBtbWlvIGFuZCBp MmMKPiA+ID4gPiA+IGJhc2VkIHN5c2NvbnMsIG9yIGFkZGl0aW9uYWwgb25lcyBhcyB3ZWxsLCBi dXQgaW1wbGVtZW50aW5nIHRoaXMgd291bGQKPiA+ID4gPiA+IGJlIHJhdGhlciB0cmlja3kgd2hl biB0aGUgaTJjIGNvcmUgaXMgYSBsb2FkYWJsZSBtb2R1bGUuCj4gPiA+Cj4gPiA+IFRoZSBjdXJy ZW50IE1NSU8gc3lzY29uIGlzIGRlY291cGxlZCBmcm9tIHRoZSBETSwgYW5kIHRoZXJlIGlzIG5v IHdheQo+ID4gPiBmb3IgZHJpdmVycyB0byBleHBvcnQgb3IgcmVnaXN0ZXIgYSBzeXNjb24sIG1l YW5pbmcgSSBoYXZlIHRvIG9wZW4gY29kZQo+ID4gPiBzeXNjb25fcmVnbWFwX2xvb2t1cF9ieV9w aGFuZGxlKCkgWzNdIGlmIEkgd2FudCB0byBvbmx5IGV4cG9zZSBjZXJ0YWluCj4gPiA+IHJlZ2lz dGVycyBhbmQgbm90IHRoZSBmdWxsIGFkZHJlc3MgcmFuZ2UsIG9yIGlmIEkgd2FudCB0byBzaGFy ZSB0aGUKPiA+ID4gcmVnbWFwIHdpdGggdGhlIGV4aXN0aW5nIGRyaXZlciAoZm9yIGxvY2tpbmcg cHVycG9zZXMpLCBvciBib3RoIFs0XS4KPiA+Cj4gPiBOb3Qgc3VyZSBJIHVuZGVyc3RhbmQgdGhl IHByb2JsZW0uCj4gPgo+ID4gQ291bGQgeW91IGV4cGxhaW4gd2h5IHRoZSBjdXJyZW50IGltcGxl bWVudGF0aW9uIGRvZXNuJ3Qgd29yayBmb3IgeW91Pwo+ID4KPiA+IE9wZW4gY29kaW5nIHlvdXIg b3duIGltcGxlbWVudGF0aW9uIG9mIFN5c2NvbiBpcyBub24tb3B0aW1hbC4KPiAKPiBGb3IgdGhl IERXTUFDIEV0aGVybmV0IGNvbnRyb2xsZXJzLCB0aGUgcGxhdGZvcm0gZ2x1ZSBhbG1vc3QgYWx3 YXlzIGhhcwo+IGEgcmVnaXN0ZXIgZm9yIHR1bmluZyB0aGUgZGVsYXlzIG9mIHRoZSBUWCBhbmQg UlggY2xvY2tzLiBJbiBhbG1vc3QgYWxsCj4gbGF0ZXIgQWxsd2lubmVyIGNoaXBzLCB0aGlzIGlz IGluIGEgc2VwYXJhdGUgYXJlYSwgd2hpY2ggd2UgdXNlIGEgc3lzY29uCj4gZm9yLiBIb3dldmVy IGluIG9uZSBoeWJyaWQgY2hpcCwgdGhpcyBpcyBsb2NhdGVkIGluIHRoZSBjbG9jayBjb250cm9s bGVyLgo+IFdlIGRlZW1lZCBpdCByaXNreSB0byBhbHNvIGhhdmUgdGhlIHdob2xlIGNsb2NrIGNv bnRyb2xsZXIgYWRkcmVzcyByYW5nZQo+IG1hcHBlZCBhcyBhIHN5c2NvbiwgYW5kIHNvIHdlIGV4 cG9ydCBhIGN1c3RvbSByZWdtYXAuCj4gCj4gVGhlIEV0aGVybmV0IGRyaXZlciBoYXMgdG8gZGVh bCB3aXRoIGJvdGggY2FzZXMuCj4gCj4gTG9va2luZyBhdCBpdCBhZ2Fpbiwgc2luY2Ugc3lzY29u IHN0aWxsIGhhcyBhIHBsYXRmb3JtIGRyaXZlciwgbWF5YmUgSQo+IHNob3VsZCBqdXN0IHVzZSB0 aGUgZGV2X2dldF9yZWdtYXAoKSByb3V0ZSBmb3IgYm90aCBjYXNlcy4KPiAKPiA+ID4gTWF5YmUg dGhlcmUncyByb29tIGZvciBpbXByb3ZlbWVudCBoZXJlPyBUaGUgc2FtZSBhcHBsaWVzIHRvIHRo ZSBuZXcKPiA+ID4gSTJDIGNhc2UsIGFuZCBsaWtlbHkgYW55IG90aGVyIGZ1dHVyZSBzeXNjb24g dmFyaWFudHMuCj4gPiA+Cj4gPiA+IElNSE8gcGVvcGxlIGFyZSBnZXR0aW5nIGl0IHdyb25nIGlm IHRoZXkgaGF2ZSBib3RoIGEgc3lzY29uIGFuZCBhIGRyaXZlcgo+ID4gPiBmb3IgdGhlIHNhbWUg ZGV2aWNlLgo+ID4KPiA+IFN5c2NvbiBpcyBqdXN0IGEgbWVhbnMgdG8gb2J0YWluIGEgZ3JvdXAg b2YgcmVnaXN0ZXJzIGVpdGhlciBhKQo+ID4gd2l0aG91dCBhIGRlZGljYXRlZCBkcml2ZXIgT1Ig YikgdG8gc2hhcmUgYW1vbmdzdCBtb3JlIHRoYW4gMSwKPiA+IHBvdGVudGlhbGx5IHVucmVsYXRl ZCwgdXNlci4gIFNvIGluIHRoZSBjYXNlIG9mIGEpIHdoaWNoIGFwcGVhcnMgdG8KPiA+IHNpdCB3 ZWxsIHdpdGgtaW4geW91ciB1c2UtY2FzZSBhbmQgZXhwZWN0YXRpb25zLCB5b3UgYXJlIGNvcnJl Y3QuCj4gPiBXaGVyZWFzIGluIHRoZSBjYXNlIG9mIGIpIHlvdSBhcmUgbm90Lgo+ID4KPiA+IEkg aG9wZSB0aGF0IGhlbHBzIGNsYXJpdHkgdGhlIHNpdHVhdGlvbiBzb21ld2hhdC4KPiAKPiBUaGUg Y29uY2VybiB3YXMgbW9zdGx5IGR1ZSB0byB0aGUgY29tbWl0IG1lc3NhZ2Ugb2YKPiAKPiAgICAg YmRiMDA2NmRmOTZlIG1mZDogc3lzY29uOiBEZWNvdXBsZSBzeXNjb24gaW50ZXJmYWNlIGZyb20g cGxhdGZvcm0gZGV2aWNlcwo+IAo+IHdoaWNoIG1lbnRpb25zCj4gCj4gICAgdGhlcmUgaXMgYSBu ZWVkIHRvIGhhdmUgYSBkZWRpY2F0ZWQgZHJpdmVyIGZvciBzdWNoIHN5c3RlbSBjb250cm9sbGVy Cj4gICAgYnV0IGFsc28gc2hhcmUgcmVnaXN0ZXJzIHdpdGggb3RoZXIgZHJpdmVycy4gVGhlIGxh dHRlciBpcyB3aGVyZSB0aGUKPiAgICBzeXNjb24gaW50ZXJmYWNlIGlzIGhlbHBmdWwuCj4gCj4g QnV0IGRvZXMgbm90IHByb3ZpZGUgYW55IHNvcnQgb2YgY29vcmRpbmF0aW9uIGJldHdlZW4gdGhl IGRlZGljYXRlZCBkcml2ZXIKPiBhbmQgdGhlIHN5c2Nvbi4gSSBzdXBwb3NlIHRoZSBpbnRlbnRp b24gbWlnaHQgaGF2ZSBiZWVuIHRoYXQgdGhlIGRyaXZlcgo+IHdvdWxkIGdldCBhIHN5c2NvbiB1 c2luZyBpdHMgb3duIGRldmljZSBub2RlLiBXZSBhdm9pZGVkIHRoYXQgYnV0IEkgd29uZGVyCj4g aWYgdGhlIGV4dHJhIGNvZGUgaXMgd29ydGggaXQgb3Igbm90LiBPdGhlciBwbGF0Zm9ybXMgc2Vl bSB0byBkbyBvay4KCldoYXQgc29ydCBvZiBjby1vcmRpbmF0aW9uIGRvIHlvdSByZXF1aXJlIGJl eW9uZCB3aGF0IGlzIG9mZmVyZWQ/Cgo+IFRoYW5rIHlvdSBmb3IgaGVscGluZyBtZSBjbGVhciB0 aGluZ3MgdXAuCgpOZXZlciBhIHByb2JsZW0uCgotLSAKTGVlIEpvbmVzIFvmnY7nkLzmlq9dClNl bmlvciBUZWNobmljYWwgTGVhZCAtIERldmVsb3BlciBTZXJ2aWNlcwpMaW5hcm8ub3JnIOKUgiBP cGVuIHNvdXJjZSBzb2Z0d2FyZSBmb3IgQXJtIFNvQ3MKRm9sbG93IExpbmFybzogRmFjZWJvb2sg fCBUd2l0dGVyIHwgQmxvZwoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBs aXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlz dGluZm8vbGludXgtYXJtLWtlcm5lbAo= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-3.8 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 3162FC433DF for ; Fri, 19 Jun 2020 09:07:26 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 08D98208DB for ; Fri, 19 Jun 2020 09:07:26 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="xoWK/3kN" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731131AbgFSJHX (ORCPT ); Fri, 19 Jun 2020 05:07:23 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57646 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731801AbgFSJHB (ORCPT ); Fri, 19 Jun 2020 05:07:01 -0400 Received: from mail-wr1-x441.google.com (mail-wr1-x441.google.com [IPv6:2a00:1450:4864:20::441]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 79D9CC06174E for ; Fri, 19 Jun 2020 02:07:01 -0700 (PDT) Received: by mail-wr1-x441.google.com with SMTP id v3so1430337wrc.1 for ; Fri, 19 Jun 2020 02:07:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:content-transfer-encoding:in-reply-to; bh=An0/1Yz6hizQTR4fj1ifS1TO4fEjpitZbgWOcyK/IZY=; b=xoWK/3kNajghFrZozDbLkZ+9+1h4rMZRk4i/g1WFQfGERECbt04srXH5UJiGrrbyKu h9LnBp9ynJIbsmyXcVy6mZmjnjmoawF0OI4WWZTtX7qllMcrF1Q82TpgA9Ldf0b9TY54 PCEtzLpxZsJSzyvXo5nZIzHAW+IT0av9VSakipBADy4JSffgRW7dlODsp4Ipw9fSjPHz Zlft2GrVjOwhXt3+if3NEAqx/2zfC8NPd2shaYvo5p8c3MRL/WQH9t9UBCHdNshXkpsm IBMT/ylXZAGudAqfbOO7vXR6sQBQ49XrgUHCZ/r3uZ+Dx3iBfk8YDVKK97nveHNxpcUo iw8g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:content-transfer-encoding :in-reply-to; bh=An0/1Yz6hizQTR4fj1ifS1TO4fEjpitZbgWOcyK/IZY=; b=SCon1XgOZv+BKQ+eXrMoJbKKVXeHVnDUtkapOnQfBYNXQPQFZO9R9YtnIeObr/XxDn 02Q5+7lpGpo9In3ounBb0foeIlg7sxFT7CKJhLCO0oBWHzN8CFep4JaNWD9+vb7zu78V 5Rg9h/dDIgwQh9Pp6pVVHpWUjS85bWFCll4zIItLbuA+O+0sqoWIHHmzP4Sabl0f7SBB NJIqY+IQoRwWeqy7VX7xQWY+qG7Lha62j4we+i3Gcn3jbqblRmeubsa0rrMEhlGFjSAy pvV7thmQj43MaifBhzhfmRMMsb1BGM83aUgISpExGAnzPla7Uy0yl6YSBSWCdTcJKSm6 U+dw== X-Gm-Message-State: AOAM533jmKdKReMZHKpINWHk60OA02oFrEp0AUCFdTCBPxojldjyyTj1 rboyvLfdSbj5Qji41yPiRkelHg== X-Google-Smtp-Source: ABdhPJya5CT4h4LEpPiFHKoiDP1NdZBtAKWO81GUFvApmmIdbuZgnssYXSgixGojtFmF7wmOkDbpXA== X-Received: by 2002:a5d:4a8a:: with SMTP id o10mr2934774wrq.222.1592557620112; Fri, 19 Jun 2020 02:07:00 -0700 (PDT) Received: from dell ([2.27.35.144]) by smtp.gmail.com with ESMTPSA id b18sm6376150wrn.88.2020.06.19.02.06.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Jun 2020 02:06:59 -0700 (PDT) Date: Fri, 19 Jun 2020 10:06:57 +0100 From: Lee Jones To: Chen-Yu Tsai Cc: Arnd Bergmann , DTML , gregkh , Mark Brown , "linux-kernel@vger.kernel.org" , Bartosz Golaszewski , michael@walle.cc, Rob Herring , Andy Shevchenko , Linus Walleij , Linux ARM Subject: Re: [PATCH v3 1/1] mfd: Add I2C based System Configuaration (SYSCON) access Message-ID: <20200619090657.GL954398@dell> References: <20200618080223.951737-1-lee.jones@linaro.org> <20200618100704.GC954398@dell> <20200619064141.GK954398@dell> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: Sender: devicetree-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org On Fri, 19 Jun 2020, Chen-Yu Tsai wrote: > On Fri, Jun 19, 2020 at 2:41 PM Lee Jones wrote: > > > > On Fri, 19 Jun 2020, Chen-Yu Tsai wrote: > > > > > On Thu, Jun 18, 2020 at 6:07 PM Lee Jones wrote: > > > > > > > > On Thu, 18 Jun 2020, Arnd Bergmann wrote: > > > > > > > > > On Thu, Jun 18, 2020 at 10:03 AM Lee Jones wrote: > > > > > > > > > > > > The existing SYSCON implementation only supports MMIO (memory mapped) > > > > > > accesses, facilitated by Regmap. This extends support for registers > > > > > > held behind I2C busses. > > > > > > > > > > > > Signed-off-by: Lee Jones > > > > > > > > > > The implementation looks fine to me, but can you explain how this is going to > > > > > be used, and what the advantage is over open-coding the devm_regmap_init_i2c() > > > > > in each driver that would use this? > > > > > > > > Does Regmap let you register/initialise an I2C address more than once? > > > > > > > > When I attempt it, I get: > > > > > > > > [ 0.522988] i2c i2c-0: Failed to register i2c client tmp105 at 0x32 (-16) > > > > [ 0.523341] i2c i2c-0: of_i2c: Failure registering /bus@4000000/motherboard/iofpga@7,00000000/i2c@16000/temp@32 > > > > [ 0.523691] i2c i2c-0: Failed to create I2C device for /bus@4000000/motherboard/iofpga@7,00000000/i2c@16000/temp@32 > > > > > > > > > Is this about using proper locking through the regmap framework for > > > > > shared i2c clients, or to reduce memory consumption when lots of drivers > > > > > access the same regmap? > > > > > > > > All of those things are valid. > > > > > > > > My use-case is regarding MFDs sharing an I2C interfaced address space > > > > with their children. > > > > > > Is that an issue with the standard mfd + regmap pattern? > > > > There is no relationship between MFD and Regmap. It is not more > > closely related to Regmap than it is any other public API provided > > within the kernel. *Some* parent drivers initialise one large, > > encompassing Regmap address space and pass it to their children, but > > this isn't suitable in all cases. > > > > > For the AXP20x PMICs, we register the regmap in the parent mfd driver [1], > > > and store that in dev_data for child drivers to fetch [2]. You could > > > easily just fetch the regmap with dev_get_regmap() and a pointer to the > > > parent device. > > > > Remember, not all use-cases are the same. Just because your H/W fits > > well within the current framework, doesn't mean all will. > > > > Initialising in the parent is no problem if the driver is meaningful > > in other ways, but what if that's all the parent driver does? In > > these cases Syscon can be used instead, rendering the driver > > superfluous. Meaning it can (and *should*) then be omitted. > > I'm guessing in your use case there isn't a need for a parent driver, > and you are looking for something like "simple-mfd", but for listing > sub-devices within an I2C slave device? In that case I understand. Bingo! Actually this will be used *with* "simple-mfd". "simple-mfd" will ensure the sub-devices are probed and "syscon" will allow them to share an address space. This is currently possible for MMIO, but not so for register maps located behind an I2C interface. > > > > > My impression of the existing syscon code is that the main value-add over > > > > > other ways of doing the same is the syscon_regmap_lookup_by_phandle() > > > > > interface that gives other drivers a much simpler way of getting the > > > > > regmap just based on the DT node. Are you planning to add something > > > > > like that here as well? An ideal driver interface might allow > > > > > syscon_regmap_lookup_by_phandle() to work for both mmio and i2c > > > > > based syscons, or additional ones as well, but implementing this would > > > > > be rather tricky when the i2c core is a loadable module. > > > > > > The current MMIO syscon is decoupled from the DM, and there is no way > > > for drivers to export or register a syscon, meaning I have to open code > > > syscon_regmap_lookup_by_phandle() [3] if I want to only expose certain > > > registers and not the full address range, or if I want to share the > > > regmap with the existing driver (for locking purposes), or both [4]. > > > > Not sure I understand the problem. > > > > Could you explain why the current implementation doesn't work for you? > > > > Open coding your own implementation of Syscon is non-optimal. > > For the DWMAC Ethernet controllers, the platform glue almost always has > a register for tuning the delays of the TX and RX clocks. In almost all > later Allwinner chips, this is in a separate area, which we use a syscon > for. However in one hybrid chip, this is located in the clock controller. > We deemed it risky to also have the whole clock controller address range > mapped as a syscon, and so we export a custom regmap. > > The Ethernet driver has to deal with both cases. > > Looking at it again, since syscon still has a platform driver, maybe I > should just use the dev_get_regmap() route for both cases. > > > > Maybe there's room for improvement here? The same applies to the new > > > I2C case, and likely any other future syscon variants. > > > > > > IMHO people are getting it wrong if they have both a syscon and a driver > > > for the same device. > > > > Syscon is just a means to obtain a group of registers either a) > > without a dedicated driver OR b) to share amongst more than 1, > > potentially unrelated, user. So in the case of a) which appears to > > sit well with-in your use-case and expectations, you are correct. > > Whereas in the case of b) you are not. > > > > I hope that helps clarity the situation somewhat. > > The concern was mostly due to the commit message of > > bdb0066df96e mfd: syscon: Decouple syscon interface from platform devices > > which mentions > > there is a need to have a dedicated driver for such system controller > but also share registers with other drivers. The latter is where the > syscon interface is helpful. > > But does not provide any sort of coordination between the dedicated driver > and the syscon. I suppose the intention might have been that the driver > would get a syscon using its own device node. We avoided that but I wonder > if the extra code is worth it or not. Other platforms seem to do ok. What sort of co-ordination do you require beyond what is offered? > Thank you for helping me clear things up. Never a problem. -- Lee Jones [李琼斯] Senior Technical Lead - Developer Services Linaro.org │ Open source software for Arm SoCs Follow Linaro: Facebook | Twitter | Blog