Received: by 2002:a05:6358:1087:b0:cb:c9d3:cd90 with SMTP id j7csp2761680rwi; Tue, 11 Oct 2022 13:02:22 -0700 (PDT) X-Google-Smtp-Source: AMsMyM7tDtfxD6H9fuKI3zilSsHqGUaiKg5KotxTrS0NUrnEp3Ft1a98Sjk8q8Gp9IUuvxtsfmlw X-Received: by 2002:a17:907:78a:b0:782:2223:a7cd with SMTP id xd10-20020a170907078a00b007822223a7cdmr20039374ejb.532.1665518542133; Tue, 11 Oct 2022 13:02:22 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1665518542; cv=none; d=google.com; s=arc-20160816; b=s5vHe/TX0OLqxfXXlKs52ElK+S27UrdCzdXrhdioFro4REqPIRZzzzdcrswrWdym/P 3m1pft99lXKOE5WlJVmYlM8goAmZ8U2ocm/SjGjxdc4UpYif/YqcimBTNWrZ4lYa7NSb P5twcYRvRZz1rxYPieRfdyRsqixNNrCc133UCHmJwtDdIZrfbC6Hg/tFBfT15EDpypEk KlsONbIo1LnXecs9gq7QzqgRriOmSMosIArAOblva1om0aifP674cRmrWKoFMgDvlJaq UC8A5WOzqjcJspdTztAZlzGgK3MD0r84Xyi28p67qaI8ztPm7IeC5Rx7sxyX3tV1kluW ST/A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=SZc6YAet+7QEfjXBOIDZ+tWznKgzcO1Ajj5p9dp+Zjg=; b=dlJCoTonu/1lLM5Or8+/N8qzpEjOrpjr5o3yEO818Rvi2k2rOllJnFlCzoRgpvzdlE fWaj7tG9LtEmI7iHGDF+x4ufuheV1yFvvxm6ejHMvyV02mSVvjSQFt/221ViYeIjaf47 8ESrB/S+xWp7Jkb3yHhnLyYVjitHCDarqo3aG5uKrunKxnFwBsglXUtP2MZIROr79sFf EgSx9nqZG1w/lef2tPQ3CzwTRlPvXZZhtEXC8sHb0KpFsh98anWo7u46TDeO7UTkE4FA jqL3GJXs3r1Si6ii407TvhQhPdTYJ0XocQ9mQC3ruuxm/KzcMfgNQek9HkLgJgTGnFx6 23mA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@9elements.com header.s=google header.b=Kil03nu7; 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=NONE sp=NONE dis=NONE) header.from=9elements.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id qf3-20020a1709077f0300b00782a3405722si12797145ejc.40.2022.10.11.13.01.55; Tue, 11 Oct 2022 13:02:22 -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=@9elements.com header.s=google header.b=Kil03nu7; 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=NONE sp=NONE dis=NONE) header.from=9elements.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229475AbiJKTr1 (ORCPT + 99 others); Tue, 11 Oct 2022 15:47:27 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:35708 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229650AbiJKTrV (ORCPT ); Tue, 11 Oct 2022 15:47:21 -0400 Received: from mail-ej1-x629.google.com (mail-ej1-x629.google.com [IPv6:2a00:1450:4864:20::629]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C200A844F3 for ; Tue, 11 Oct 2022 12:47:18 -0700 (PDT) Received: by mail-ej1-x629.google.com with SMTP id q9so29167759ejd.0 for ; Tue, 11 Oct 2022 12:47:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=9elements.com; s=google; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=SZc6YAet+7QEfjXBOIDZ+tWznKgzcO1Ajj5p9dp+Zjg=; b=Kil03nu7trwLJrrgQ166hvwg7HgVGGgGF5T9Kkl37/McGJLHyMJ6sursBMyO2QrgwK mLGxajAb8akzoIMUShD72CREarjKECm4mOLvwjBdjVPNA8ANwlTrPskfAb1t2+vkdJ7I ImaxIfuu/6smc/0gV/zYDJA1eSluZY0ufWzldhrBPB/1xnANbVaOfTuwA1VU7zsTxiuW jqXMFi4v8Wh7JBcA/B9/nJ6Yk5+2e6n816H3luE4oyKSoCmTwc2uK3t9x9aC+Mjb1Kmp ihJAVxZCwU6O3NYImj1msheyeunCPegBjjZnaXdTkA+EeFm9QwaXZUIH8RXw7sD9iZz4 rMtA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=SZc6YAet+7QEfjXBOIDZ+tWznKgzcO1Ajj5p9dp+Zjg=; b=TBTGmvB58OMHSRaUjbuEwexfrbsqFX3j5c+8+MoNt1jAOHqQoj5JsjzGRdANn/YItV ssBWD6yRSPSSzqrDxHc2FbI7LyCQsjLPtl7gfu+frlPavd7C9I7TvZs/QCi+njFxeJte K9gslB2i4Wb4jj9kFQf7DGJEO8zZrjJkA1lpNOC1aneidg9dak4eXpBqFtENKlyA3KzU hC4BU7KcEwHxik8IggWTSSfmDgdMVOrQw8BAohpyxmzX9tG0+iff0UNaC2lRe8I+EF9U 4KCw8xkrHmvoesyS3H/NYHs9Wt9Y8iEiPWZ/RqD5EDQ+3HevRFkIIPTHFNboJcjQsR+j QWqA== X-Gm-Message-State: ACrzQf0OEch2CSvd+X69iCBcosHdqdSiD4aOnt2p/gv+0ms85iZsMWv4 xHcWQ7J08Wi2w7hlvNXYEn1fXiZiMnH1prYQdnxGIA== X-Received: by 2002:a17:906:ef8c:b0:78d:4a00:7c7b with SMTP id ze12-20020a170906ef8c00b0078d4a007c7bmr20385805ejb.187.1665517637383; Tue, 11 Oct 2022 12:47:17 -0700 (PDT) MIME-Version: 1.0 References: <20221011104739.53262-1-Naresh.Solanki@9elements.com> <20221011104739.53262-2-Naresh.Solanki@9elements.com> In-Reply-To: From: Naresh Solanki Date: Wed, 12 Oct 2022 01:17:06 +0530 Message-ID: Subject: Re: [PATCH v2 1/3] dt-bindings: hwmon: fan: Add fan binding to schema To: Rob Herring Cc: devicetree@vger.kernel.org, Guenter Roeck , Jean Delvare , Krzysztof Kozlowski , linux-kernel@vger.kernel.org, linux-hwmon@vger.kernel.org, Patrick Rudolph Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE,SPF_PASS autolearn=ham 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 Hi Rob, Guenter, Krzysztof, I want to align with the implementation for the fan dt schema. Current implementation is intending to use fan-common.yaml only for the purpose of defining fan property as I felt this is the best way. This is how other drivers have approached(eg: leds) With this fan-controller driver will configure the chip based on fan characteristics accordingly. target-rpm/default-rpm is included in it to enable driver configure fan controllers during driver probe. Fan datasheets do specify the pwm frequency used to evaluate its characteristic. That is the reason I've included pwm-frequency here which fan-controller drivers can use & initialize pwm frequency accordingly. I'm ok with other approaches so do provide your perspective. Regards, Naresh Solanki On Wed, 12 Oct 2022 at 00:35, Rob Herring wrote: > > On Tue, Oct 11, 2022 at 5:47 AM Naresh Solanki > wrote: > > > > Add common fan properties bindings to a schema. > > > > Bindings for fan controllers can reference the common schema for the > > fan > > > > child nodes: > > > > patternProperties: > > "^fan@[0-2]": > > type: object > > allOf: > > Don't allOf here. > > > - $ref: fan-common.yaml# > > > > Signed-off-by: Naresh Solanki > > --- > > .../devicetree/bindings/hwmon/fan-common.yaml | 80 +++++++++++++++++++ > > 1 file changed, 80 insertions(+) > > create mode 100644 Documentation/devicetree/bindings/hwmon/fan-common.yaml > > > > diff --git a/Documentation/devicetree/bindings/hwmon/fan-common.yaml b/Documentation/devicetree/bindings/hwmon/fan-common.yaml > > new file mode 100644 > > index 000000000000..abc8375da646 > > --- /dev/null > > +++ b/Documentation/devicetree/bindings/hwmon/fan-common.yaml > > @@ -0,0 +1,80 @@ > > +# SPDX-License-Identifier: GPL-2.0-only > > Dual license with BSD-2-Clause. > > > +%YAML 1.2 > > +--- > > +$id: http://devicetree.org/schemas/hwmon/fan-common.yaml# > > +$schema: http://devicetree.org/meta-schemas/core.yaml# > > + > > +title: Common fan properties > > + > > +maintainers: > > + - Naresh Solanki > > + > > +properties: > > + max-rpm: > > + description: > > + Max RPM supported by fan > > + $ref: /schemas/types.yaml#/definitions/uint32 > > + > > + pulse-per-revolution: > > The already in use property is 'pulses-per-revolution'. > > > + description: > > + The number of pulse from fan sensor per revolution. > > + $ref: /schemas/types.yaml#/definitions/uint32 > > I assume there's a known set of values various fans have? > > > + > > + target-rpm: > > + description: > > + Target RPM the fan should be configured during driver probe. > > Which driver? I think 'default-rpm' would be a better name. > > > + $ref: /schemas/types.yaml#/definitions/uint32 > > + > > + pwm-frequency: > > + description: > > + PWM frequency for fan. > > + $ref: /schemas/types.yaml#/definitions/uint32 > > + > > + pwm-polarity-inverse: > > + description: > > + PWM polarity for fan. > > + type: boolean > > Both of these properties are handled by the PWM binding already. I > think this should use it even though the PWMs are just connected to > the child nodes. There's always the possibility that someone hooks up > a fan controller PWM to something else besides a fan. > > > + > > + label: > > + description: > > + Optional fan label > > + $ref: /schemas/types.yaml#/definitions/string > > Doesn't a fan need power? 'fan-supply' is already in use, so that could be used. > > > + > > +additionalProperties: true > > + > > +examples: > > + - | > > Drop the example here as you have it in the max6639 schema. > > > + > > + > > + i2c { > > + #address-cells = <1>; > > + #size-cells = <0>; > > + > > + fan-controller@30 { > > + compatible = "maxim,max6639"; > > + reg = <0x30>; > > + #address-cells = <1>; > > + #size-cells = <0>; > > + > > + fan@0 { > > + reg = <0>; > > + label = "CPU0_Fan"; > > + max-rpm = <32000>; > > + pulse-per-revolution = <2>; > > + target-rpm = <2000>; > > + pwm-frequency = <25000>; > > + }; > > + > > + fan@1 { > > + reg = <1>; > > + label = "PCIe0_Fan"; > > + max-rpm = <32000>; > > + pulse-per-revolution = <2>; > > + target-rpm = <2000>; > > + pwm-frequency = <25000>; > > + }; > > + > > + }; > > + }; > > + > > +... > > > > base-commit: 0cf46a653bdae56683fece68dc50340f7520e6c4 > > -- > > 2.37.3 > >