Received: by 2002:a05:6358:11c7:b0:104:8066:f915 with SMTP id i7csp5524705rwl; Tue, 11 Apr 2023 06:43:59 -0700 (PDT) X-Google-Smtp-Source: AKy350Z7zleomL9NLt1v3TipLlGV9e2I1Vk94eupm0tJyrXiPDmvaiKR9chL0bXtyE0Zxr2qzq5a X-Received: by 2002:a17:906:bc94:b0:945:2f54:5eae with SMTP id lv20-20020a170906bc9400b009452f545eaemr2644941ejb.77.1681220639622; Tue, 11 Apr 2023 06:43:59 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1681220639; cv=none; d=google.com; s=arc-20160816; b=Xm9pjFOkRxNaABfss1pSdMStbjZ1s3J/GDwRkXfNQG1vyJHqja0L7p+AqiwJjXLd1J LZ8AqyYgkzlmDoyWquEnBn/7E4yhcRjVZw1vNFpveNalXiX2Dg6tq8RKBVFCvSJGxwZs gn+HmnbdblQ+yHiEXHaMjLX05bdXzctLehDNJFV6mKSzvPtxns+iEBO2x3AvIonZndLN OM8RiUZtxomV5gB8+FUi78WtmNLWUcvhVKVngShf29ONLTJgm0WVJj0XhZ6gsbdI4/f5 teZe5qT12zSxRUJ5B0Av2IOuiTfPSaPSSOOUKZneLO5Ziw4s7bCpE13o+RIo0MrGrYXn lWqg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:message-id:user-agent :references:in-reply-to:subject:cc:to:from:date:mime-version :dkim-signature; bh=oZ/3AiR5wKOvx5Zl/F4+bP51DgLLVwlnzMNwvAPy1CM=; b=GHo8N9I1dinHFNnztYotC8Y/0ZqTKRie+DGi5xSeJKhO38/EJYGSr2Md+Y4W2TSMQy ZrHVLQlLYkiL7uVdCiarfLGFA8Gi8Uf95SDT6xcGH4XVdAtrx5gr4zvbXNFgm9DZU959 urcgsXDpoH/y/j8A5iCJ+YzLF8bcIhx8aGHWxc86TmvclJjirYV+Rts0Nuv7UJktFl1H 5f+2M70z9YW9j3CYJcZjsqKsEBHqx4bQrlwcUr7dXnoXeLWrsuMgor5odmt8nPjAuQmW P34YTfNK1uG7UoB6djPe69SpZjlejP1gWnvrG0t1SvcJclqi6bzahdsi1xKbSuc54Sdb pZyQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@walle.cc header.s=mail2022082101 header.b=JRXIX3av; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=walle.cc Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id hq7-20020a1709073f0700b0094de00ae5f9si2891746ejc.94.2023.04.11.06.43.34; Tue, 11 Apr 2023 06:43:59 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@walle.cc header.s=mail2022082101 header.b=JRXIX3av; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=walle.cc Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229745AbjDKNmr (ORCPT + 99 others); Tue, 11 Apr 2023 09:42:47 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56544 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229501AbjDKNmq (ORCPT ); Tue, 11 Apr 2023 09:42:46 -0400 Received: from mail.3ffe.de (0001.3ffe.de [IPv6:2a01:4f8:c0c:9d57::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5038BAC; Tue, 11 Apr 2023 06:42:44 -0700 (PDT) Received: from 3ffe.de (0001.3ffe.de [IPv6:2a01:4f8:c0c:9d57::1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mail.3ffe.de (Postfix) with ESMTPSA id ED9CB321; Tue, 11 Apr 2023 15:42:39 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=walle.cc; s=mail2022082101; t=1681220560; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=oZ/3AiR5wKOvx5Zl/F4+bP51DgLLVwlnzMNwvAPy1CM=; b=JRXIX3av1txQH6nBKk+l7fk43DQP36KVMSlzvFEaiUWKu2M7sFHiVHpKwxMKFMxqZK+Ybv QAFnNKqHU/pvR/nwvChB8iEptjlmqYzgEIWXmZUicfPeEXGDqNFn4My8HNlWU770qBqPnQ Go+K8W1/+4aCTxs6Q5ctm5yrRgdu/4iZ3UYutMalFqw254D95FazcPwcKaegYGR7hGaotg wvhanilmvNpkjKaxm9zmFVxDiVt05hCmfyAI+jmiZm0IpL4D6T90QNLV3pB6Neq5RcLZOZ 2fmeBZNuy1OfNhv4Jvf6IijarggOFr3+NF8vP0jL9tCGQb2TZswprqSqjJw1TA== MIME-Version: 1.0 Date: Tue, 11 Apr 2023 15:42:39 +0200 From: Michael Walle To: "Sahin, Okan" Cc: andy.shevchenko@gmail.com, Linus Walleij , Bartosz Golaszewski , Rob Herring , Krzysztof Kozlowski , linux-gpio@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH v1 2/2] gpio: ds4520: Add ADI DS4520 Regulator Support In-Reply-To: References: <20230327130010.8342-1-okan.sahin@analog.com> <20230327130010.8342-3-okan.sahin@analog.com> <25e1fda4b6df2d10444d7eca3cd0e387@walle.cc> User-Agent: Roundcube Webmail/1.4.13 Message-ID: X-Sender: michael@walle.cc Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-0.2 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_NONE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Am 2023-04-09 16:25, schrieb Sahin, Okan: >> Fri, Apr 07, 2023 at 03:48:25PM +0200, Linus Walleij kirjoitti: >>> On Wed, Apr 5, 2023 at 3:57 PM Michael Walle >>> wrote: >>> >>> > OTOH I'm not sure the driver is doing it correctly, because it also >>> > seems to switch the pullup resisters together with the direction. >>> > I'm not sure that is correct. So there might be just one register >>> > involved after all and the GPIO_REGMAP should work again. >>> >>> I'm pretty sure that should be in the .set_config() callback. >>> >>> > Also, according to the datasheet this has some nv memory (to set the >>> > initial state of the GPIOs [?]). So it should really be a >>> > multi-function device. I'm not sure if this has to be considered >>> > right from the beginning or if the device support can start with >>> > GPIO only and later be transitioned to a full featured MFD (probably with nvmem >> support). >>> >>> That's a bit of a soft definition. >>> >>> If the chip is *only* doing GPIO and nvram it can be a GPIO-only >>> device I think. >>> >>> The precedent is a ton of ethernet drivers with nvram for storing >>> e.g. >>> the MAC address. We don't make all of those into MFDs, as the nvram >>> is >>> closely tied to the one and only function of the block. >> >> I agree with Linus. This should be part of the actual (main) driver >> for the chip as many >> do (like USB to serial adapters that have GPIO capability). You mean the gpio driver is calling nvmem_register()? Yeah I agree, that should work. > I think gpio_regmap is not suitable for this driver as Michael stated. > https://www.analog.com/media/en/technical-documentation/data-sheets/ds4520.pdf > Please check block diagram. There are two input registers that control > gpio state > so gpio_regmap does not look ok for this. Am I missing something? You mean F8/F9? That will work as they are for different GPIOs. What doesn't work with gpio-regmap is when you need to modify two different registers for one GPIO. Have a look at gpio_regmap_get() and gpio_regmap_set(). If the default gpio_regmap_simple_xlate() doesn't work you can use your own .xlate() op. > Also, at this point I am not planning to add nvmem support. That is a pity, because that is the whole use case for this gpio expander, no? "Programmable Replacement for Mechanical Jumpers and Switches" -michael