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 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 smtp.lore.kernel.org (Postfix) with ESMTPS id DC415C7EE2A for ; Wed, 25 Jun 2025 17:37:06 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References: Message-ID:Subject:Cc: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=qrefNto7SlOT7jT7ckflGmjcYrZRk+W2Gh/DMQqcO5M=; b=ymIWaLVCPvI6eG S/gN9mjGTO2lkE1CfxYxFERbvXPGGe5qEungeucbuI9UhWG7v1KzwOVqEFeO1gCizok1DuwxAHGMT XTdvljbRiiJEeH5ZgwM9yOwhJBLVONejGRtVqzWb+KQOXFgGQFdxoFl/bhTlYGTZ8v/qzyQg/quh+ yvUKuBflS4ZXtTjsy4KOnsx4C0YgOKquD3aDAli7n4b0yMW3rgw/i5jnzOTwh/iTWeMQXJFlvVR6G 0ST9SH8tUbQxPQR95q8k4PxxEf1GZAd8IJDbh4FM7LJqvgd0YBrkDddKUFjQum6KF+5N5PgtYZ+2C dvFZkaqlxJnJX0CIcHkQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1uUU3Q-00000009TfE-3oZo; Wed, 25 Jun 2025 17:37:00 +0000 Received: from nyc.source.kernel.org ([147.75.193.91]) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1uUQG9-00000008pBW-2CPH for linux-riscv@lists.infradead.org; Wed, 25 Jun 2025 13:33:54 +0000 Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by nyc.source.kernel.org (Postfix) with ESMTP id AEE13A51ED7; Wed, 25 Jun 2025 13:33:52 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2503EC4CEEF; Wed, 25 Jun 2025 13:33:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1750858432; bh=5bv7+U7nnAG09/EUeVfNCF6vC1VSNp7LCmluSKx+V1Y=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=ZwD25OECifOJ1XdOx/F1AthVoH+pnNjkiLHqyp4F8hUjFBtsoCPqgYzHkBrJ5Ir8a uyNZzswqHEYrbRzT2Y3H8j6KMOMMl+Hc2SBanWN5acDeEIfU7ZtcKRBm5WsQYXL9fA fGKQrtWTl0hTwR/Nq1hREfz64/v8aR1HVxVLRstmAlrhNTHEugEdtYnWPmPGRyhVh4 T6VEoQSBGUe9s1CKYdZ3cviEZtppKPLzBun40I5K4YoHi9oqYx7DQDQ3zOQI7vo4wX VXxFiKTjXJrzOIrm0cC1OmOeBMvjDIGdoLAI+Z2fh6AOH8oTxrG/TA6+qDBWzui/cd mHD2Cg1QFE05A== Date: Wed, 25 Jun 2025 14:33:46 +0100 From: Lee Jones To: Alex Elder Cc: lgirdwood@gmail.com, broonie@kernel.org, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, dlan@gentoo.org, paul.walmsley@sifive.com, palmer@dabbelt.com, aou@eecs.berkeley.edu, alex@ghiti.fr, troymitchell988@gmail.com, guodong@riscstar.com, devicetree@vger.kernel.org, linux-riscv@lists.infradead.org, spacemit@lists.linux.dev, linux-kernel@vger.kernel.org Subject: Re: [PATCH 2/6] mfd: spacemit: add support for SpacemiT PMICs Message-ID: <20250625133346.GW795775@google.com> References: <20250613210150.1468845-1-elder@riscstar.com> <20250613210150.1468845-3-elder@riscstar.com> <20250619144023.GG795775@google.com> <8126de92-0338-4cd0-98fc-4f8c37500201@riscstar.com> <20250625082149.GO795775@google.com> <5005ba79-d5a5-4d6f-ab0c-4df51407a549@riscstar.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <5005ba79-d5a5-4d6f-ab0c-4df51407a549@riscstar.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250625_063353_700892_685944E5 X-CRM114-Status: GOOD ( 53.76 ) X-BeenThere: linux-riscv@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-riscv" Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org T24gV2VkLCAyNSBKdW4gMjAyNSwgQWxleCBFbGRlciB3cm90ZToKCj4gT24gNi8yNS8yNSAzOjIx IEFNLCBMZWUgSm9uZXMgd3JvdGU6Cj4gPiBPbiBGcmksIDIwIEp1biAyMDI1LCBBbGV4IEVsZGVy IHdyb3RlOgo+ID4gCj4gPiA+IE9uIDYvMTkvMjUgOTo0MCBBTSwgTGVlIEpvbmVzIHdyb3RlOgo+ ID4gPiA+IE9uIEZyaSwgMTMgSnVuIDIwMjUsIEFsZXggRWxkZXIgd3JvdGU6Cj4gPiA+ID4gCj4g PiA+ID4gPiBBZGQgc3VwcG9ydCBmb3IgU3BhY2VtaVQgUE1JQ3MuIEluaXRpYWxseSBvbmx5IHRo ZSBQMSBQTUlDIGlzIHN1cHBvcnRlZAo+ID4gPiA+ID4gYnV0IHRoZSBkcml2ZXIgaXMgc3RydWN0 dXJlZCB0byBhbGxvdyBzdXBwb3J0IGZvciBvdGhlcnMgdG8gYmUgYWRkZWQuCj4gPiA+ID4gPiAK PiA+ID4gPiA+IFRoZSBQMSBQTUlDIGlzIGNvbnRyb2xsZWQgYnkgSTJDLCBhbmQgaXMgbm9ybWFs bHkgaW1wbGVtZW50ZWQgd2l0aCB0aGUKPiA+ID4gPiA+IFNwYWNlbWlUIEsxIFNvQy4gIFRoaXMg UE1JQyBwcm92aWRlcyBzaXggYnVjayBjb252ZXJ0ZXJzIGFuZCAxMiBMRE8KPiA+ID4gPiAKPiA+ ID4gPiBzaXggb3IgMTIuICBQbGVhc2UgcGljayBhIGZvcm1hdCBhbmQgcmVtYWluIGNvbnNpc3Rl bnQuCj4gPiA+IAo+ID4gPiAiTnVtYmVycyBzbWFsbGVyIHRoYW4gdGVuIHNob3VsZCBiZSBzcGVs bGVkIG91dC4iCj4gPiAKPiA+IE5ldmVyIGhlYXJkIG9mIHRoYXQgYmVmb3JlIEdvb2dsaW5nIGl0 LiAgRm9ybWFsIHdyaXRpbmcgaXMgb2RkLiA6KQo+ID4gCj4gPiA+IEJ1dCBJJ2xsIHVzZSA2IGFu ZCAxMi4KPiAKPiAuIC4gLgo+IAo+ID4gPiA+ID4gKy8qIFRoZSBuYW1lIGZpZWxkIGRlZmluZXMg dGhlICpkcml2ZXIqIG5hbWUgdGhhdCBzaG91bGQgYmluZCB0byB0aGUgZGV2aWNlICovCj4gPiA+ ID4gCj4gPiA+ID4gVGhpcyBjb21tZW50IGlzIHN1cGVyZmx1b3VzLgo+ID4gPiAKPiA+ID4gSSds bCBkZWxldGUgaXQuCj4gPiA+IAo+ID4gPiBJIHdhcyBleHBlY3RpbmcgdGhlIGRyaXZlciB0byBy ZWNvZ25pemUgdGhlIGRldmljZSwgbm90Cj4gPiA+IHRoZSBkZXZpY2Ugc3BlY2lmeWluZyB3aGF0 IGRyaXZlciB0byB1c2UsIGJ1dCBJIGd1ZXNzCj4gPiA+IEknbSB1c2VkIHRvIHRoZSBEVCBtb2Rl bC4KPiA+IAo+ID4gRXZlbiBpbiBEVCwgdGhlICpkcml2ZXIqIGNvbXBhdGlibGUgaXMgc3BlY2lm aWVkLgo+ID4gCj4gPiAgICAuZHJpdmVyLm9mX21hdGNoX3RhYmxlLT5jb21wYXRpYmxlCj4gCj4g SSBndWVzcyBJIGp1c3QgaW50ZXJwcmV0IHRoYXQgZGlmZmVyZW50bHkgdGhhbiB5b3UgZG8uICBJ IHRoaW5rCj4gb2YgdGhlIGRldmljZSBjb21wYXRpYmxlIHN0cmluZyBhcyBzYXlpbmcgInRoaXMg aXMgd2hhdCBJIGFtLCIKPiBtdWNoIGxpa2UgYSBWSUQvUElEIGluIFVTQiBvciBQQ0kuCj4gCj4g VGhlbiB0aGUgZHJpdmVyJ3Mgb2ZfbWF0Y2ggdGFibGUgc2F5cyAiaWYgYSBkZXZpY2UgY2xhaW1z IHRvCj4gYmUgY29tcGF0aWJsZSB3aXRoIGFueSBvZiB0aGVzZSBpdCBzaG91bGQgYmUgYm91bmQg dG8gbWUuIgo+IAo+IE1lYW53aGlsZSwgdGhlIE1GRCBkZXZpY2UgbWV0aG9kIGhhcyB0aGUgZGV2 aWNlIChjZWxsKSBzYXlpbmcKPiAiSSBzaG91bGQgYmUgYm91bmQgdG8gdGhlIGRyaXZlciBoYXZp bmcgdGhpcyBuYW1lLiIKCkluIGFsbCBjYXNlcyB0aGF0IEknbSBhd2FyZSBvZiAocGxhdGZvcm0g Y29kZSwgRFQsIEFDUEksIGV0YyksIGFuZCBhcwpmYXIgYmFjayBhcyBJIGNhbiByZW1lbWJlciwg dGhlIHBsYXRmb3JtIGRldmljZXMgc3BlY2lmeSBzb21lIHByZWRlZmluZWQKZGF0YSAoSURzIG9y IHN0cmluZ3MpIHRoYXQgaXMgYXNzb2NpYXRlZCB3aXRoIChoYXJkLWNvZGVkIGRpcmVjdGx5IGlu dG8KdGhlIGRyaXZlciBpbiBmYWN0KSB0aGUgZHJpdmVyIGl0IHdpc2hlcyB0byBiZSBib3VuZCB0 by4gIFRoaXMKcHJlLWRlZmluZWQgaWRlbnRpZmllciBpcyBzdG9yZWQgaW4gdGhlIGRyaXZlcidz IGRhdGEgc3RydWN0dXJlOgoKc3RydWN0IGRldmljZV9kcml2ZXIgewogICAgICAgIGNvbnN0IGNo YXIgICAgICAgICAgICAgIAkqbmFtZTsKICAgICAgICBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lk ICAgICAgICpvZl9tYXRjaF90YWJsZTsKICAgICAgICBjb25zdCBzdHJ1Y3QgYWNwaV9kZXZpY2Vf aWQgICAgICphY3BpX21hdGNoX3RhYmxlOwp9OwoKQWxsIG9mIHRoZXNlIGFyZSBzdGF0aWNhbGx5 IGhhcmQtY29kZWQgaXRlbXMgd2hpY2ggYSBkZXZpY2UgY2FuIHNwZWNpZnkKaW4gb3JkZXIgdG8g YmUgYm91bmQgdG8gdGhlIGRyaXZlci4KCj4gPiA+ID4gPiArCS8qIFdlIGN1cnJlbnRseSBoYXZl IG5vIG5lZWQgZm9yIGEgZGV2aWNlLXNwZWNpZmljIHN0cnVjdHVyZSAqLwo+ID4gPiA+IAo+ID4g PiA+IFRoZW4gd2h5IGFyZSB3ZSBhZGRpbmcgb25lPwo+ID4gPiAKPiA+ID4gSSBkb24ndCB1bmRl cnN0YW5kLCBidXQgaXQgbWlnaHQgYmUgbW9vdCBvbmNlIEkgYWRkIHN1cHBvcnQKPiA+ID4gZm9y IGFub3RoZXIgKHN1YilkZXZpY2UuCj4gPiAKPiA+IFRoZXJlIGFyZSAyIHJ1bGVzIGluIHBsYXkg aGVyZToKPiA+IAo+ID4gICAgLSBPbmx5IGFkZCB3aGF0IHlvdSBuZWVkLCB3aGVuIHlvdSBuZWVk IGl0Cj4gPiAgICAtIE1GRHMgbXVzdCBjb250YWluIG1vcmUgdGhhbiAxIGRldmljZQo+ID4gCj4g PiAuLi4gYW5kIHlvdSdyZSByaWdodC4gIFRoZSBzZWNvbmQgcnVsZSBtb290cyB0aGUgZmlyc3Qg aGVyZS4KPiAKPiBXaGF0IHRoZSBjb21tZW50IG1lYW50IHRvIHNheSBpcyAid2UgaGF2ZSBubyBu ZWVkIHRvIGt6YWxsb2MoKQo+IGFueSBzcGVjaWFsIHN0cnVjdHVyZSBoZXJlIiBhcyBtb3N0IGRy aXZlcnMgZG8uIFNpbXBseSBhZGRpbmcKPiB0aGUgc2V0IG9mIE1GRHMgZGVmaW5lZCBieSB0aGUg Y2VsbHMgaXMgZW5vdWdoLiAgVGhlIHNhbWUgaXMKPiB0cnVlIGluICJzaW1wbGUtbWZkLWkyYy5j Ii4KCkkgc2VlLiAgRHJpdmVyIGRhdGEgaXMgbm90IGNvbXB1bHNvcnkuICBUaGVyZSBhcmUgcGxl bnR5IG9mIGRyaXZlcnMKd2hpY2ggcmVmcmFpbiBmcm9tIHN0b3JpbmcgZGF0YSBmb3IgdGhlIGNo aWxkIHRvIG1ha2UgdXNlIG9mLgoKPiBCdXQgdGhpcyBlbnRpcmUgc291cmNlIGZpbGUgaXMgZ29u ZSBub3csIHNvIGl0J3MgbW9vdCBmb3IgdGhhdAo+IHJlYXNvbi4KPiAKPiAuIC4gLgo+IAo+ID4g PiA+ID4gK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIHNwYWNlbWl0X3BtaWNfbWF0 Y2hbXSA9IHsKPiA+ID4gPiA+ICsJewo+ID4gPiA+ID4gKwkJLmNvbXBhdGlibGUJPSAic3BhY2Vt aXQscDEiLAo+ID4gPiA+ID4gKwkJLmRhdGEJCT0gJnAxX3BtaWNfZGF0YSwKPiA+ID4gPiAKPiA+ ID4gPiBBaCwgbm93IEkgc2VlLgo+ID4gPiA+IAo+ID4gPiA+IFdlIGRvIG5vdCBhbGxvdyBvbmUg ZGF0YSBmcm9tIHJlZ2lzdHJhdGlvbiBtZWNoYW5pc20gKE1GRCkgdG8gYmUgcGlwZWQKPiA+ID4g PiB0aHJvdWdoIGFub3RoZXIgKE9GKS4gIElmIHlvdSBoYXZlIHRvIG1hdGNoIHBsYXRmb3JtIGRh dGEgdG8gZGV2aWNlICh5b3UKPiA+ID4gPiBkb24ndCksIHRoZW4gcGFzcyB0aHJvdWdoIGlkZW50 aWZpZXJzIGFuZCBtYXRjaCBvbiB0aG9zZSBpbiBhIHN3aXRjaCgpCj4gPiA+ID4gc3RhdGVtZW50 IGluc3RlYWQuCj4gPiA+IAo+ID4gPiBJIGhhdmVuJ3QgZG9uZSBhbiBNRkQgZHJpdmVyIGJlZm9y ZSBhbmQgaXQgdG9vayBzb21lIHRpbWUKPiA+ID4gdG8gZ2V0IHRoaXMgd29ya2luZy4gIEknbGwg dGVsbCB5b3Ugd2hhdCBsZWQgbWUgdG8gaXQuCj4gPiA+IAo+ID4gPiBJIHVzZWQgY29kZSBwb3N0 ZWQgYnkgVHJveSBNaXRjaGVsbCAocGx1cyBkb3duc3RyZWFtKSBhcyBhCj4gPiA+IHN0YXJ0aW5n IHBvaW50Lgo+ID4gPiAgICBodHRwczovL2xvcmUua2VybmVsLm9yZy9sa21sLzIwMjQxMjMwLWsx LXAxLXYxLTAtYWE0ZTAyYjlmOTkzQGdtYWlsLmNvbS8KPiA+ID4gCj4gPiA+IEtyenlzenRvZiBL b3psb3dza2kgbWFkZSB0aGlzIGNvbW1lbnQgb24gVHJveSdzIERUIGJpbmRpbmc6Cj4gPiA+ICAg IERyb3AgY29tcGF0aWJsZSwgcmVndWxhdG9ycyBhcmUgbm90IHJlLXVzYWJsZSBibG9ja3MuCj4g PiA+IAo+ID4gPiBTbyBteSBnb2FsIHdhcyB0byBoYXZlIHRoZSBQTUlDIHJlZ3VsYXRvcnMgZ2V0 IGJvdW5kIHRvIGEKPiA+ID4gZHJpdmVyIHdpdGhvdXQgc3BlY2lmeWluZyBhIERUIGNvbXBhdGli bGUgc3RyaW5nLCBhbmQgSQo+ID4gPiBmb3VuZCB0aGlzIHdvcmtlZC4KPiA+ID4gCj4gPiA+IFlv dSBzYXkgSSBkb24ndCBuZWVkIHRvIG1hdGNoIHBsYXRmb3JtIGRhdGEgdG8gZGV2aWNlLCBidXQK PiA+ID4gaWYgSSBkaWQgSSB3b3VsZCBwYXNzIHRocm91Z2ggaWRlbnRpZmllcnMuICBDYW4geW91 IHJlZmVyCj4gPiA+IG1lIHRvIGFuIGV4YW1wbGUgb2YgY29kZSB0aGF0IGNvcnJlY3RseSBkb2Vz IHdoYXQgSSBzaG91bGQKPiA+ID4gYmUgZG9pbmcgaW5zdGVhZD8KPiA+IAo+ID4gZ2l0IGdyZXAg LUE1IGNvbXBhdGlibGUgLS0gZHJpdmVycy9tZmQgfCBncmVwIC1FICJcLmRhdGEgPSAuKltBLVpd KyIKPiA+IAo+ID4gVGhvc2UgaWRlbnRpZmllcnMgYXJlIHVzdWFsbHkgbWF0Y2hlZCBpbiBhIHN3 dGljaCgpIHN0YXRlbWVudC4KPiAKPiBPSyBub3cgSSBzZWUgd2hhdCB5b3UgeW91J3JlIHRhbGtp bmcgYWJvdXQuICBCdXQgdGhlc2UKPiBjb21wYXRpYmxlIHN0cmluZ3MgKGFuZCBkYXRhKSBhcmUg Zm9yIHRoZSBQTUlDLiAgSSB3YXMKPiB0cnlpbmcgdG8gYXZvaWQgdXNpbmcgY29tcGF0aWJsZSBz dHJpbmdzIGZvciB0aGUgKnJlZ3VsYXRvcnMqLAo+IGJhc2VkIG9uIEtyenlzenRvZidzIGNvbW1l bnQuICBBbmQgaW4gdGhlIHByb2Nlc3MgSSBsZWFybmVkCj4gdGhhdCB0aGUgTUZEIGNlbGwgbmVl ZHMgdG8gc3BlY2lmeSB0aGUgbmFtZSBvZiBhIGRyaXZlciwKPiBub3QgYSBjb21wYXRpYmxlIHN0 cmluZy4KClRoYXQncyBjb3JyZWN0LiAgVGhlIGNvbXBhdGlibGUgYXR0cmlidXRlIGlzIHZvbHVu dGFyeS4KCj4gPiA+IE9uZSBvdGhlciBjb21tZW50L3F1ZXN0aW9uOgo+ID4gPiAgICBUaGlzIGRy aXZlciBpcyBzdHJ1Y3R1cmVkIGFzIGlmIGl0IGNvdWxkIHN1cHBvcnQgYSBkaWZmZXJlbnQKPiA+ ID4gICAgUE1JQyAoaW4gYWRkaXRpb24gdG8gUDEpLiAgU2hvdWxkIEkgKm5vdCogZG8gdGhhdCwg YW5kIHNpbXBseQo+ID4gPiAgICBtYWtlIGEgc291cmNlIGZpbGUgaGFyZC1jb2RlZCBmb3IgdGhp cyBvbmUgUE1JQz8KPiA+IAo+ID4gVGhpcyBjb21lcyBiYWNrIHRvIHRoZSAiYWRkIG9ubHkgd2hh dCB5b3UgbmVlZCwgd2hlbiB5b3UgbmVlZCBpdCIgcnVsZS4KPiAKPiBZZXMsIGFuZCBJIGFncmVl IHdpdGggdGhhdCBydWxlLiAgVGhhbmtzIGZvciB5b3VyIGNsYXJpZmljYXRpb25zLgo+IAo+IFVz aW5nIHNpbXBsZS1tZmQtaTJjLmMgaXMgbXVjaCBiZXR0ZXIuICBJIHdhcyBzdXJwcmlzZWQgKGFu ZCBJIGd1ZXNzCj4gcGxlYXNlZCkgdG8gc2VlIHRoYXQgaXQgd2FzIGFsbW9zdCAqaWRlbnRpY2Fs KiB0byB3aGF0IEkgY2FtZSB1cCB3aXRoLgoKKnRodW1icy11cCoKCi0tIApMZWUgSm9uZXMgW+ad jueQvOaWr10KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CmxpbnV4LXJpc2N2IG1haWxpbmcgbGlzdApsaW51eC1yaXNjdkBsaXN0cy5pbmZyYWRlYWQub3Jn Cmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtcmlzY3YK From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D32802620D2; Wed, 25 Jun 2025 13:33:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750858432; cv=none; b=Q2JED0sEhUYjG6uBr9RtX6E1yO63ow1QFLN8LPWaiL0lj4zD1rJ0grD63JVq37YuhJJJ0LRo4A7ELRVc7N31ES8NpH218YJMdE+s8T8Zzmd9lgkoLFjOsDZtI1dF7ly53bUObHMPrdL9+T038RfMesNPMGgnJcquH/kV2/WuXFA= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750858432; c=relaxed/simple; bh=5bv7+U7nnAG09/EUeVfNCF6vC1VSNp7LCmluSKx+V1Y=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=AiZA185/LbtAotX/S4Q1XhzuGHNN2IQG7/17slx+T9InazA+/YtptgtRQKosYGB6bhPu39CMaDXk2FNDRn66XGJs+Hh8QNagbrWUrw67uSaiAQ7pff4DoGUA7FrStMhM8StpzLKKVJ+krRxM9g7o6sQjmhT+8TrDdkNpsiRrWqI= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=ZwD25OEC; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="ZwD25OEC" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2503EC4CEEF; Wed, 25 Jun 2025 13:33:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1750858432; bh=5bv7+U7nnAG09/EUeVfNCF6vC1VSNp7LCmluSKx+V1Y=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=ZwD25OECifOJ1XdOx/F1AthVoH+pnNjkiLHqyp4F8hUjFBtsoCPqgYzHkBrJ5Ir8a uyNZzswqHEYrbRzT2Y3H8j6KMOMMl+Hc2SBanWN5acDeEIfU7ZtcKRBm5WsQYXL9fA fGKQrtWTl0hTwR/Nq1hREfz64/v8aR1HVxVLRstmAlrhNTHEugEdtYnWPmPGRyhVh4 T6VEoQSBGUe9s1CKYdZ3cviEZtppKPLzBun40I5K4YoHi9oqYx7DQDQ3zOQI7vo4wX VXxFiKTjXJrzOIrm0cC1OmOeBMvjDIGdoLAI+Z2fh6AOH8oTxrG/TA6+qDBWzui/cd mHD2Cg1QFE05A== Date: Wed, 25 Jun 2025 14:33:46 +0100 From: Lee Jones To: Alex Elder Cc: lgirdwood@gmail.com, broonie@kernel.org, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, dlan@gentoo.org, paul.walmsley@sifive.com, palmer@dabbelt.com, aou@eecs.berkeley.edu, alex@ghiti.fr, troymitchell988@gmail.com, guodong@riscstar.com, devicetree@vger.kernel.org, linux-riscv@lists.infradead.org, spacemit@lists.linux.dev, linux-kernel@vger.kernel.org Subject: Re: [PATCH 2/6] mfd: spacemit: add support for SpacemiT PMICs Message-ID: <20250625133346.GW795775@google.com> References: <20250613210150.1468845-1-elder@riscstar.com> <20250613210150.1468845-3-elder@riscstar.com> <20250619144023.GG795775@google.com> <8126de92-0338-4cd0-98fc-4f8c37500201@riscstar.com> <20250625082149.GO795775@google.com> <5005ba79-d5a5-4d6f-ab0c-4df51407a549@riscstar.com> Precedence: bulk X-Mailing-List: spacemit@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <5005ba79-d5a5-4d6f-ab0c-4df51407a549@riscstar.com> On Wed, 25 Jun 2025, Alex Elder wrote: > On 6/25/25 3:21 AM, Lee Jones wrote: > > On Fri, 20 Jun 2025, Alex Elder wrote: > > > > > On 6/19/25 9:40 AM, Lee Jones wrote: > > > > On Fri, 13 Jun 2025, Alex Elder wrote: > > > > > > > > > Add support for SpacemiT PMICs. Initially only the P1 PMIC is supported > > > > > but the driver is structured to allow support for others to be added. > > > > > > > > > > The P1 PMIC is controlled by I2C, and is normally implemented with the > > > > > SpacemiT K1 SoC. This PMIC provides six buck converters and 12 LDO > > > > > > > > six or 12. Please pick a format and remain consistent. > > > > > > "Numbers smaller than ten should be spelled out." > > > > Never heard of that before Googling it. Formal writing is odd. :) > > > > > But I'll use 6 and 12. > > . . . > > > > > > +/* The name field defines the *driver* name that should bind to the device */ > > > > > > > > This comment is superfluous. > > > > > > I'll delete it. > > > > > > I was expecting the driver to recognize the device, not > > > the device specifying what driver to use, but I guess > > > I'm used to the DT model. > > > > Even in DT, the *driver* compatible is specified. > > > > .driver.of_match_table->compatible > > I guess I just interpret that differently than you do. I think > of the device compatible string as saying "this is what I am," > much like a VID/PID in USB or PCI. > > Then the driver's of_match table says "if a device claims to > be compatible with any of these it should be bound to me." > > Meanwhile, the MFD device method has the device (cell) saying > "I should be bound to the driver having this name." In all cases that I'm aware of (platform code, DT, ACPI, etc), and as far back as I can remember, the platform devices specify some predefined data (IDs or strings) that is associated with (hard-coded directly into the driver in fact) the driver it wishes to be bound to. This pre-defined identifier is stored in the driver's data structure: struct device_driver { const char *name; const struct of_device_id *of_match_table; const struct acpi_device_id *acpi_match_table; }; All of these are statically hard-coded items which a device can specify in order to be bound to the driver. > > > > > + /* We currently have no need for a device-specific structure */ > > > > > > > > Then why are we adding one? > > > > > > I don't understand, but it might be moot once I add support > > > for another (sub)device. > > > > There are 2 rules in play here: > > > > - Only add what you need, when you need it > > - MFDs must contain more than 1 device > > > > ... and you're right. The second rule moots the first here. > > What the comment meant to say is "we have no need to kzalloc() > any special structure here" as most drivers do. Simply adding > the set of MFDs defined by the cells is enough. The same is > true in "simple-mfd-i2c.c". I see. Driver data is not compulsory. There are plenty of drivers which refrain from storing data for the child to make use of. > But this entire source file is gone now, so it's moot for that > reason. > > . . . > > > > > > +static const struct of_device_id spacemit_pmic_match[] = { > > > > > + { > > > > > + .compatible = "spacemit,p1", > > > > > + .data = &p1_pmic_data, > > > > > > > > Ah, now I see. > > > > > > > > We do not allow one data from registration mechanism (MFD) to be piped > > > > through another (OF). If you have to match platform data to device (you > > > > don't), then pass through identifiers and match on those in a switch() > > > > statement instead. > > > > > > I haven't done an MFD driver before and it took some time > > > to get this working. I'll tell you what led me to it. > > > > > > I used code posted by Troy Mitchell (plus downstream) as a > > > starting point. > > > https://lore.kernel.org/lkml/20241230-k1-p1-v1-0-aa4e02b9f993@gmail.com/ > > > > > > Krzysztof Kozlowski made this comment on Troy's DT binding: > > > Drop compatible, regulators are not re-usable blocks. > > > > > > So my goal was to have the PMIC regulators get bound to a > > > driver without specifying a DT compatible string, and I > > > found this worked. > > > > > > You say I don't need to match platform data to device, but > > > if I did I would pass through identifiers. Can you refer > > > me to an example of code that correctly does what I should > > > be doing instead? > > > > git grep -A5 compatible -- drivers/mfd | grep -E "\.data = .*[A-Z]+" > > > > Those identifiers are usually matched in a swtich() statement. > > OK now I see what you you're talking about. But these > compatible strings (and data) are for the PMIC. I was > trying to avoid using compatible strings for the *regulators*, > based on Krzysztof's comment. And in the process I learned > that the MFD cell needs to specify the name of a driver, > not a compatible string. That's correct. The compatible attribute is voluntary. > > > One other comment/question: > > > This driver is structured as if it could support a different > > > PMIC (in addition to P1). Should I *not* do that, and simply > > > make a source file hard-coded for this one PMIC? > > > > This comes back to the "add only what you need, when you need it" rule. > > Yes, and I agree with that rule. Thanks for your clarifications. > > Using simple-mfd-i2c.c is much better. I was surprised (and I guess > pleased) to see that it was almost *identical* to what I came up with. *thumbs-up* -- Lee Jones [李琼斯]