Received: by 2002:a05:6a10:1a4d:0:0:0:0 with SMTP id nk13csp4636342pxb; Sat, 12 Feb 2022 12:17:59 -0800 (PST) X-Google-Smtp-Source: ABdhPJz1GDxpjGv7uzX/167Mc6zxsF3ayGZ3ndkUGFwagTvm7GBSUBZqTzh5YjtDSjkRWYhrnUEQ X-Received: by 2002:a17:902:c412:: with SMTP id k18mr7407535plk.67.1644697079176; Sat, 12 Feb 2022 12:17:59 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1644697079; cv=none; d=google.com; s=arc-20160816; b=aDOpxwTuEKpiiBr5485T+swq8Rd0vKa1Al9QBrmXgbz1tTq28wcRYZ5+urAKzgPRZd pUDJk+CUOFXx+/8ZzjQet/UNyD2iHVZomXHIqudCBaeMmcXKDEwdsPG0zPNfjsyk4WOW ukJlHpqZ7IghVTpzD8fwRHOH1GPXtvCdPpcj5M8PImKtB5jEOQgLgdIkzxEZJLxMqk5+ sOeokWoUrMSCUzYxSGg2Le95CznwYsIYSM/a1vrBKiWWJ1tSx4m5R5nnDkQb4/9/wiCB Pq4LOtzfTauD0gjXq62cwDV35QRHlmL9O9V27XeGjv9STmRs3/F39m+CIlWwoTSZltYV q5VQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=+9/OzWXCre2lJCovKuXgYpQ4frTlaSBmolCWIxmze3o=; b=SwYBB2P5TRcE5iRKuiOKUlASzOl54ywVcJR6bvGSw96dyu3a4Mq24SMq739UsIGGng uZ1mAGzzH4L95JrLAEl89kaFP/IgiH7YhvXZDf7XdXXm7gPqEsmbMLOuR4SbHW7LKnnN VscInaVVy5Sk02ZBm4in5ldotKXYu8nwI5jH/t4S1YE1GYLhJp5Kq3CFrC/WxorF3wKR 9xLG3Qb8o7+joJejkT2CG6DNFPJC+WpfDzc+/ZuOWUf4hJ+AuqcIqkFu3v6xXx0OoyWx xuFdJoXpnhlMXiSLEXs3Tv5VgV8TBotUK/Od0D1BJZtoiW4LZzdKTCTi+j6KNRBLUqPI F8Bw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@trvn.ru header.s=mail header.b=GSqSqWPs; 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=trvn.ru Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id 138si17803883pgc.450.2022.02.12.12.17.41; Sat, 12 Feb 2022 12:17:59 -0800 (PST) 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=@trvn.ru header.s=mail header.b=GSqSqWPs; 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=trvn.ru Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237218AbiBLQaY (ORCPT + 99 others); Sat, 12 Feb 2022 11:30:24 -0500 Received: from mxb-00190b01.gslb.pphosted.com ([23.128.96.19]:43288 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229623AbiBLQaW (ORCPT ); Sat, 12 Feb 2022 11:30:22 -0500 Received: from box.trvn.ru (box.trvn.ru [194.87.146.52]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5C5B120E; Sat, 12 Feb 2022 08:30:18 -0800 (PST) Received: from authenticated-user (box.trvn.ru [194.87.146.52]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) (No client certificate requested) by box.trvn.ru (Postfix) with ESMTPSA id 22B6741943; Sat, 12 Feb 2022 21:24:02 +0500 (+05) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=trvn.ru; s=mail; t=1644683044; bh=RYG3U4X1RX8dzJiS04Tlw7Pm9vtzFCEy33FGibNApDg=; h=From:To:Cc:Subject:Date:From; b=GSqSqWPsMWdBhbSKO9SE3O6xHw+WuWH/4iDolmnPLmI8Y0Y9FYGcZHI3A2bYEOBap q/BrvOs7mHANuppeZ01maSt1zk2rG+eTM7ufH593pmnyYfuHRhwKkOx/HTilZ/qIY3 y9SS2fMWUrAKBk1guVyNO+WlpHjHeJ1VMK6d1BV7btBdCnMPORrYaJDWx5hYoTZkMd j454DXb7jPJE6dPcl+0+3ItXfE2jYL4rExZcA3fGVDCH4N2Iax1MBZ38WMHNkshToC gl/hbot1NbqlzbqN2TECglK8WBPob8XiqZu5nLqVqfdHo4PmdLJsrht33CHO4Rt57f 6JsCSGUG2G9zg== From: Nikita Travkin To: thierry.reding@gmail.com, lee.jones@linaro.org Cc: u.kleine-koenig@pengutronix.de, robh+dt@kernel.org, sboyd@kernel.org, krzk@kernel.org, linus.walleij@linaro.org, masneyb@onstation.org, sean.anderson@seco.com, linux-pwm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, ~postmarketos/upstreaming@lists.sr.ht, Nikita Travkin Subject: [PATCH v5 0/2] Clock based PWM output driver Date: Sat, 12 Feb 2022 21:23:40 +0500 Message-Id: <20220212162342.72646-1-nikita@trvn.ru> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_PASS,SPF_PASS, T_SCC_BODY_TEXT_LINE 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 This series introduces an "adapter" driver that allows PWM consumers to control clock outputs with duty-cycle control. Some platforms (e.g. some Qualcomm chipsets) have "General Purpose" clocks that can be muxed to GPIO outputs and used as PWM outputs. Those outputs may be connected to various peripherals such as leds in display backlight or haptic feedback motor driver. To avoid re-implementing every single PWM consumer driver with clk support (like in [1]) and don't put the burden of providing the PWM sources on the clock drivers (as was proposed in [2]), clk based pwm controller driver is introduced. There is an existing driver that provides the opposite function in drivers/clk/clk-pwm.c with a compatible "pwm-clock" so the new driver uses the opposite naming scheme: drivers/pwm/pwm-clk.c and compatible "clk-pwm". Changes in v2: - Fix filename in the DT schema. - Address Uwe's review comments. Changes in v3: - Fix node pattern in the core pwm schema. - Address Uwe's review comments. Changes in v4: - Drop the (incorrect) pwm schema change. - Use generic node name in the dt bindings example. Changes in v5: - Correct required properties. - add missed returns. Nikita Travkin (2): dt-bindings: pwm: Document clk based PWM controller pwm: Add clock based PWM output driver .../devicetree/bindings/pwm/clk-pwm.yaml | 46 ++++++ drivers/pwm/Kconfig | 10 ++ drivers/pwm/Makefile | 1 + drivers/pwm/pwm-clk.c | 139 ++++++++++++++++++ 4 files changed, 196 insertions(+) create mode 100644 Documentation/devicetree/bindings/pwm/clk-pwm.yaml create mode 100644 drivers/pwm/pwm-clk.c -- 2.34.1