From patchwork Wed Nov 2 14:15:10 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sasha Finkelstein X-Patchwork-Id: 1698183 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=2620:137:e000::1:20; helo=out1.vger.email; envelope-from=linux-pwm-owner@vger.kernel.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20210112 header.b=SvQifMPC; dkim-atps=neutral Received: from out1.vger.email (out1.vger.email [IPv6:2620:137:e000::1:20]) by legolas.ozlabs.org (Postfix) with ESMTP id 4N2TVb3xsfz23l6 for ; Thu, 3 Nov 2022 01:17:27 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231391AbiKBOR0 (ORCPT ); Wed, 2 Nov 2022 10:17:26 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42026 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231362AbiKBORW (ORCPT ); Wed, 2 Nov 2022 10:17:22 -0400 Received: from mail-ej1-x62a.google.com (mail-ej1-x62a.google.com [IPv6:2a00:1450:4864:20::62a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 374C327B32; Wed, 2 Nov 2022 07:17:17 -0700 (PDT) Received: by mail-ej1-x62a.google.com with SMTP id f5so24140957ejc.5; Wed, 02 Nov 2022 07:17:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=n7CAwgjrcSml/6VQVIiI+9hkAxXqxl9dmDVlzl2TbqA=; b=SvQifMPCv1Zm0tJtlh2KK7iWUt24xlxNLrAzzdv8DycRnNF02wjy5ji/02ySYAXmug f7OirZXhksnHBFG0Z3HcTZ8/xJhGwMF1zoUVUr1VxOVRRBVQVgWJaIwri+981L7/yu8e puIxwx0/ECDmMhS2ucLQ7uWfX6ikOYbynh+9cLQif9P/Kf9Kv0aZJRfxWKAh9DqWWfZO o8GWHaZcL8e66mMIBjRVrcFl7aIRhdBBhIKT3CmcqP3Y5XVEcCyNrp6Oaq4nrefewpPt oNVgm9khl3cEHV554cJzdY++s/gHoi8XfkZSjhxL+fC4RijkX5cs7TsRKXX2FNn7zSIR DnhQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=n7CAwgjrcSml/6VQVIiI+9hkAxXqxl9dmDVlzl2TbqA=; b=pyhQ1A1wtSqp0KYvPruAa7vs2yoUlpROfFUtMRihAsBBgNUtZGAbaPjVax9IGpiU2X n66rQstsdG9bhZ0AHvEAQib1lMQhQ/pw1ctcy5JEQQYwlr3Q2ESfR+07Hf/8eWbtWo3F iTQXUveM6peem/hF9PyBskjC6ZbpR4+LcMXQzJml3HqW3z1OkDCPEbBiocfcfE+x96bk Xl8w1kAv8w0FawpYzPH3oZ652BsprMUAm486c3M3QplSNzqU8ZW+d1+CUAJb07Z9RIvM q1B9K3HK8INF60wh4gDOuZ11leVqR1yH57a+z5Q/YGs6jxiQkGEtNNd92VI3140tQ4OL 13/Q== X-Gm-Message-State: ACrzQf3kyFtGrBdRY226o05mIX+s6E97iyeeN0dWyUYmER6g8IbDT4wC n3Z/Hbn98V6Fa81DmtPAjX0= X-Google-Smtp-Source: AMsMyM4g0AgIlCivZHS7wYdviV9ZCChUaGRcHHJAMTYqQFtz7k2phHjMitGG8OdmE4/ZJHVSr6DDEg== X-Received: by 2002:a17:906:ee81:b0:77e:829a:76e9 with SMTP id wt1-20020a170906ee8100b0077e829a76e9mr24569110ejb.207.1667398635831; Wed, 02 Nov 2022 07:17:15 -0700 (PDT) Received: from localhost ([88.227.60.86]) by smtp.gmail.com with UTF8SMTPSA id k8-20020a17090632c800b0073d81b0882asm5412397ejk.7.2022.11.02.07.17.14 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 02 Nov 2022 07:17:15 -0700 (PDT) From: Sasha Finkelstein To: thierry.reding@gmail.com, robh+dt@kernel.org, krzysztof.kozlowski+dt@linaro.org Cc: marcan@marcan.st, sven@svenpeter.dev, alyssa@rosenzweig.io, asahi@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-pwm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Sasha Finkelstein Subject: [PATCH v2 1/4] dt-bindings: pwm: Add Apple PWM controller Date: Wed, 2 Nov 2022 17:15:10 +0300 Message-Id: <20221102141513.49289-2-fnkl.kernel@gmail.com> X-Mailer: git-send-email 2.24.3 (Apple Git-128) In-Reply-To: <20221102141513.49289-1-fnkl.kernel@gmail.com> References: <20221102141513.49289-1-fnkl.kernel@gmail.com> MIME-Version: 1.0 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM, 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-pwm@vger.kernel.org Apple SoCs such as the M1 contain a PWM controller used among other things to control the keyboard backlight. Signed-off-by: Sasha Finkelstein Reviewed-by: Krzysztof Kozlowski --- .../bindings/pwm/apple,s5l-fpwm.yaml | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 Documentation/devicetree/bindings/pwm/apple,s5l-fpwm.yaml diff --git a/Documentation/devicetree/bindings/pwm/apple,s5l-fpwm.yaml b/Documentation/devicetree/bindings/pwm/apple,s5l-fpwm.yaml new file mode 100644 index 000000000000..142157bff0cd --- /dev/null +++ b/Documentation/devicetree/bindings/pwm/apple,s5l-fpwm.yaml @@ -0,0 +1,51 @@ +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/pwm/apple,s5l-fpwm.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Apple FPWM controller + +maintainers: + - asahi@lists.linux.dev + - Sasha Finkelstein + +description: PWM controller used for keyboard backlight on ARM Macs + +properties: + compatible: + items: + - enum: + - apple,t8103-fpwm + - apple,t6000-fpwm + - apple,t8112-fpwm + - const: apple,s5l-fpwm + + reg: + maxItems: 1 + + clocks: + maxItems: 1 + + power-domains: + maxItems: 1 + + "#pwm-cells": + const: 2 + +required: + - compatible + - reg + - clocks + +additionalProperties: false + +examples: + - | + pwm@235044000 { + compatible = "apple,t8103-fpwm", "apple,s5l-fpwm"; + reg = <0x35044000 0x4000>; + power-domains = <&ps_fpwm1>; + clocks = <&clkref>; + #pwm-cells = <2>; + }; From patchwork Wed Nov 2 14:15:11 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sasha Finkelstein X-Patchwork-Id: 1698185 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=2620:137:e000::1:20; helo=out1.vger.email; envelope-from=linux-pwm-owner@vger.kernel.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20210112 header.b=THE0vbp3; dkim-atps=neutral Received: from out1.vger.email (out1.vger.email [IPv6:2620:137:e000::1:20]) by legolas.ozlabs.org (Postfix) with ESMTP id 4N2TVd3BVKz23l6 for ; Thu, 3 Nov 2022 01:17:29 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231406AbiKBOR1 (ORCPT ); Wed, 2 Nov 2022 10:17:27 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42232 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231373AbiKBORZ (ORCPT ); Wed, 2 Nov 2022 10:17:25 -0400 Received: from mail-ej1-x634.google.com (mail-ej1-x634.google.com [IPv6:2a00:1450:4864:20::634]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7C38D27B21; Wed, 2 Nov 2022 07:17:20 -0700 (PDT) Received: by mail-ej1-x634.google.com with SMTP id q9so45767500ejd.0; Wed, 02 Nov 2022 07:17:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=RvY1t8d2DDNkn813R2BzjKxIxBFV0sqyCIGH+RICWH4=; b=THE0vbp3D/eVQ2z/qfHOY49273zjCOuaMmI6ApSWe7rY+VYKbgL/CzRoWaMT8LTQ/l i9Nl2DOjxoOvcxRBQZ69jrEF4YHMTz0ElpJUKPBzZqwnRg3bPMkdFSHsleX8iNwzsjGn 3HIJX7t4eFBnE8DTOv6vBGAYky9Esi1FKe/pjkvMmU/NfmYWSrMfM2kvGmZs3A1KGoZE u+zaZ1n4SDrAzxlvs7WoyYpftrg52A/JYg/TbGzM7i31evIG99JJMrvlF/kwuCpIMXYB zNtdfjML++MfjAjOoLc23N2HxPe5KeZGWrFV8OMjTCUy/eX/VgmlYFTkdUYGGaZwPlmB DcRQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=RvY1t8d2DDNkn813R2BzjKxIxBFV0sqyCIGH+RICWH4=; b=NU2vK04S7+DcdyOXHgZnfEgFvDuKYl2l9I6hxoHUvhqDxmN7vYaXhHyqunnkVJy7W+ VGA7pjmCP12s9LTd0aNqIcuTSjnLz0llBcTgyCp1cRm+Swz6ir+Gwdj/X5qkcs4FrfPX RbXqQJKarWm/nd1hZT63ChwQUMq1pNhNVqnNm7VPYkXK4jxP54cXAjCeTjri/A7bohnO WmFfGz9c52MECt3yWMwPUqSiRkmls4Lfo8OSt1JW+X/B4DYaXua3WuNYZJL1yPZ4+o12 8vr8IsrPlXuDTqthzqLs35/eWkmSa+brLDlFKUeOFeWDIThIqfNil0C7xkufVZL/HJe3 XdDQ== X-Gm-Message-State: ACrzQf2qakMZqtNiF95YqjrN11dMpthG5czeRrFiKrSnyNWOTiJeHpfr xANwXLBQqqGEXoJ3bWuFz7Y= X-Google-Smtp-Source: AMsMyM7IDtrXzDcP4UaF7ItyAX7wOhgsT9A/ODjOaA2jq47ElJLSiiu9p8zV7igepuD5Ss6DrNRY4g== X-Received: by 2002:a17:907:a068:b0:7ad:956f:f13d with SMTP id ia8-20020a170907a06800b007ad956ff13dmr24290056ejc.643.1667398638735; Wed, 02 Nov 2022 07:17:18 -0700 (PDT) Received: from localhost ([88.227.60.86]) by smtp.gmail.com with UTF8SMTPSA id fy8-20020a170906b7c800b0073a20469f31sm5480449ejb.41.2022.11.02.07.17.17 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 02 Nov 2022 07:17:18 -0700 (PDT) From: Sasha Finkelstein To: thierry.reding@gmail.com, robh+dt@kernel.org, krzysztof.kozlowski+dt@linaro.org Cc: marcan@marcan.st, sven@svenpeter.dev, alyssa@rosenzweig.io, asahi@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-pwm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Sasha Finkelstein Subject: [PATCH v2 2/4] pwm: Add Apple PWM controller Date: Wed, 2 Nov 2022 17:15:11 +0300 Message-Id: <20221102141513.49289-3-fnkl.kernel@gmail.com> X-Mailer: git-send-email 2.24.3 (Apple Git-128) In-Reply-To: <20221102141513.49289-1-fnkl.kernel@gmail.com> References: <20221102141513.49289-1-fnkl.kernel@gmail.com> MIME-Version: 1.0 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM, 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-pwm@vger.kernel.org Adds the Apple PWM controller driver. Signed-off-by: Sasha Finkelstein --- drivers/pwm/Kconfig | 12 ++++ drivers/pwm/Makefile | 1 + drivers/pwm/pwm-apple.c | 127 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 140 insertions(+) create mode 100644 drivers/pwm/pwm-apple.c diff --git a/drivers/pwm/Kconfig b/drivers/pwm/Kconfig index 60d13a949bc5..c3be11468414 100644 --- a/drivers/pwm/Kconfig +++ b/drivers/pwm/Kconfig @@ -51,6 +51,18 @@ config PWM_AB8500 To compile this driver as a module, choose M here: the module will be called pwm-ab8500. +config PWM_APPLE + tristate "Apple SoC PWM support" + depends on ARCH_APPLE || COMPILE_TEST + help + Generic PWM framework driver for PWM controller present on + Apple SoCs + + Say Y here if you have an ARM Apple laptop, otherwise say N + + To compile this driver as a module, choose M here: the module + will be called pwm-apple. + config PWM_ATMEL tristate "Atmel PWM support" depends on ARCH_AT91 || COMPILE_TEST diff --git a/drivers/pwm/Makefile b/drivers/pwm/Makefile index 7bf1a29f02b8..19899b912e00 100644 --- a/drivers/pwm/Makefile +++ b/drivers/pwm/Makefile @@ -2,6 +2,7 @@ obj-$(CONFIG_PWM) += core.o obj-$(CONFIG_PWM_SYSFS) += sysfs.o obj-$(CONFIG_PWM_AB8500) += pwm-ab8500.o +obj-$(CONFIG_PWM_APPLE) += pwm-apple.o obj-$(CONFIG_PWM_ATMEL) += pwm-atmel.o obj-$(CONFIG_PWM_ATMEL_HLCDC_PWM) += pwm-atmel-hlcdc.o obj-$(CONFIG_PWM_ATMEL_TCB) += pwm-atmel-tcb.o diff --git a/drivers/pwm/pwm-apple.c b/drivers/pwm/pwm-apple.c new file mode 100644 index 000000000000..7b2936346f4e --- /dev/null +++ b/drivers/pwm/pwm-apple.c @@ -0,0 +1,127 @@ +// SPDX-License-Identifier: GPL-2.0 OR MIT +/* + * Driver for the Apple SoC PWM controller + * + * Copyright The Asahi Linux Contributors + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define PWM_CONTROL 0x00 +#define PWM_ON_CYCLES 0x1c +#define PWM_OFF_CYCLES 0x18 + +#define CTRL_ENABLE BIT(0) +#define CTRL_MODE BIT(2) +#define CTRL_UPDATE BIT(5) +#define CTRL_TRIGGER BIT(9) +#define CTRL_INVERT BIT(10) +#define CTRL_OUTPUT_ENABLE BIT(14) + +struct apple_pwm { + struct pwm_chip chip; + void __iomem *base; + u64 clkrate; +}; + +static int apple_pwm_apply(struct pwm_chip *chip, struct pwm_device *pwm, + const struct pwm_state *state) +{ + struct apple_pwm *fpwm; + u64 on_cycles, off_cycles; + + fpwm = container_of(chip, struct apple_pwm, chip); + if (state->enabled) { + on_cycles = mul_u64_u64_div_u64(fpwm->clkrate, + state->duty_cycle, NSEC_PER_SEC); + off_cycles = mul_u64_u64_div_u64(fpwm->clkrate, + state->period, NSEC_PER_SEC) - on_cycles; + writel(on_cycles, fpwm->base + PWM_ON_CYCLES); + writel(off_cycles, fpwm->base + PWM_OFF_CYCLES); + writel(CTRL_ENABLE | CTRL_OUTPUT_ENABLE | CTRL_UPDATE, + fpwm->base + PWM_CONTROL); + } else { + writel(0, fpwm->base + PWM_CONTROL); + } + return 0; +} + +static void apple_pwm_get_state(struct pwm_chip *chip, struct pwm_device *pwm, + struct pwm_state *state) +{ + struct apple_pwm *fpwm; + u32 on_cycles, off_cycles, ctrl; + + fpwm = container_of(chip, struct apple_pwm, chip); + + ctrl = readl(fpwm->base + PWM_CONTROL); + on_cycles = readl(fpwm->base + PWM_ON_CYCLES); + off_cycles = readl(fpwm->base + PWM_OFF_CYCLES); + + state->enabled = (ctrl & CTRL_ENABLE) && (ctrl & CTRL_OUTPUT_ENABLE); + state->polarity = PWM_POLARITY_NORMAL; + state->duty_cycle = div_u64(on_cycles, fpwm->clkrate) * NSEC_PER_SEC; + state->period = div_u64(off_cycles + on_cycles, fpwm->clkrate) * NSEC_PER_SEC; +} + +static const struct pwm_ops apple_pwm_ops = { + .apply = apple_pwm_apply, + .get_state = apple_pwm_get_state, + .owner = THIS_MODULE, +}; + +static int apple_pwm_probe(struct platform_device *pdev) +{ + struct apple_pwm *pwm; + struct clk *clk; + int ret; + + pwm = devm_kzalloc(&pdev->dev, sizeof(*pwm), GFP_KERNEL); + if (!pwm) + return -ENOMEM; + + pwm->base = devm_platform_ioremap_resource(pdev, 0); + if (IS_ERR(pwm->base)) + return PTR_ERR(pwm->base); + + platform_set_drvdata(pdev, pwm); + + clk = devm_clk_get_enabled(&pdev->dev, NULL); + if (IS_ERR(clk)) + return PTR_ERR(clk); + + pwm->clkrate = clk_get_rate(clk); + pwm->chip.dev = &pdev->dev; + pwm->chip.npwm = 1; + pwm->chip.ops = &apple_pwm_ops; + + ret = devm_pwmchip_add(&pdev->dev, &pwm->chip); + return ret; +} + +static const struct of_device_id apple_pwm_of_match[] = { + { .compatible = "apple,s5l-fpwm" }, + {} +}; +MODULE_DEVICE_TABLE(of, apple_pwm_of_match); + +static struct platform_driver apple_pwm_driver = { + .probe = apple_pwm_probe, + .driver = { + .name = "apple-pwm", + .owner = THIS_MODULE, + .of_match_table = apple_pwm_of_match, + }, +}; +module_platform_driver(apple_pwm_driver); + +MODULE_DESCRIPTION("Apple SoC PWM driver"); +MODULE_LICENSE("Dual MIT/GPL"); From patchwork Wed Nov 2 14:15:12 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sasha Finkelstein X-Patchwork-Id: 1698186 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=2620:137:e000::1:20; helo=out1.vger.email; envelope-from=linux-pwm-owner@vger.kernel.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20210112 header.b=buxhVMqC; dkim-atps=neutral Received: from out1.vger.email (out1.vger.email [IPv6:2620:137:e000::1:20]) by legolas.ozlabs.org (Postfix) with ESMTP id 4N2TVk0wCNz23l6 for ; Thu, 3 Nov 2022 01:17:34 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231437AbiKBORc (ORCPT ); Wed, 2 Nov 2022 10:17:32 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42108 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229704AbiKBORa (ORCPT ); Wed, 2 Nov 2022 10:17:30 -0400 Received: from mail-ej1-x636.google.com (mail-ej1-x636.google.com [IPv6:2a00:1450:4864:20::636]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D6F6227CC6; Wed, 2 Nov 2022 07:17:22 -0700 (PDT) Received: by mail-ej1-x636.google.com with SMTP id kt23so45620406ejc.7; Wed, 02 Nov 2022 07:17:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=0n4mZvFvck3T3rrfQ9rSgkc96Wcu4vbjw0wqQZmCTT8=; b=buxhVMqCdIEJlX44xa53eEaCR2cbl9OSqVZRxuS7pD4aeF0CWccB2ltiOBS0cNgMX4 DisAdaH4fQPyuswXY8mVrNu/7euYRzRDdNtKNtsN51lGD+99PKgbDALVFhoBMN+cmot9 fn7yeb9EjsaqOyZwK013AISF1cpQRA+Yp39a27gl3aT2p2h5Hn28d0wx6qx2pn1VrPKT NTxouVy7rM/l4nOEJ5Acou5ZCHUT832R7egaqXzyvXlozybZFJcfDHe1TuWDs9tbASBh FPtX9F+vYjwOZP1PLOlMe/fcS/0+qrhgg/0Nzg139fODDkrB6HmPAbgrGrIS+48geAws DoIw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=0n4mZvFvck3T3rrfQ9rSgkc96Wcu4vbjw0wqQZmCTT8=; b=eCKavCxSMC9NVu7STGnlh59FtUU6hRmGeorg6s5DnPaHgLrsvNMiP6USv4r0VZ/Nyo kZupYGkCT7U8qf9CYIHSG7jN9FIn9CZj+p8kzwWNkbV9bs4I+4Bo5F08NIMWLaSgBD9C f5DZLfzpxxhpg+3CqeNtkhMoNpcSBBvhYscNARJTPDd+Mcm6eocAIHFCdU+J7eOdlwPO FWaEcGXMNfdu9Dijtb1waJK4s9jh7SnuauENXEr3kW3zC0kG37ml20Exbt6UdVezVNrx 4gIz+V7w3ba6NuFgZ/X8IogppR6h0hi3HTu1SaULvRKVLx8baXvUbDydZ4bUs5XSG7tv in5A== X-Gm-Message-State: ACrzQf3t0yXVvUjPXSAfM6nq0+iaw+bA62isnSmki/qabR+J2YdZyIU3 DUZpDJlaKXekADIJaubzBFW9mtwYyfA= X-Google-Smtp-Source: AMsMyM4UO4LPIkeJUPkXOsfooljJbLt0HcMi9N88XdOTQPepALYXqc7eYSiyc0/cuRaRL24dJu/mLw== X-Received: by 2002:a17:907:6d9b:b0:78d:f24b:e358 with SMTP id sb27-20020a1709076d9b00b0078df24be358mr23291374ejc.714.1667398641424; Wed, 02 Nov 2022 07:17:21 -0700 (PDT) Received: from localhost ([88.227.60.86]) by smtp.gmail.com with UTF8SMTPSA id r16-20020a170906365000b007ad9c826d75sm5465266ejb.61.2022.11.02.07.17.20 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 02 Nov 2022 07:17:21 -0700 (PDT) From: Sasha Finkelstein To: thierry.reding@gmail.com, robh+dt@kernel.org, krzysztof.kozlowski+dt@linaro.org Cc: marcan@marcan.st, sven@svenpeter.dev, alyssa@rosenzweig.io, asahi@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-pwm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Sasha Finkelstein Subject: [PATCH v2 3/4] arm64: dts: apple: t8103: Add PWM controller Date: Wed, 2 Nov 2022 17:15:12 +0300 Message-Id: <20221102141513.49289-4-fnkl.kernel@gmail.com> X-Mailer: git-send-email 2.24.3 (Apple Git-128) In-Reply-To: <20221102141513.49289-1-fnkl.kernel@gmail.com> References: <20221102141513.49289-1-fnkl.kernel@gmail.com> MIME-Version: 1.0 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM, 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-pwm@vger.kernel.org Adds PWM controller and keyboard backlight bindings for M1 MacBooks Signed-off-by: Sasha Finkelstein --- arch/arm64/boot/dts/apple/t8103-j293.dts | 20 ++++++++++++++++++++ arch/arm64/boot/dts/apple/t8103-j313.dts | 20 ++++++++++++++++++++ arch/arm64/boot/dts/apple/t8103.dtsi | 9 +++++++++ 3 files changed, 49 insertions(+) diff --git a/arch/arm64/boot/dts/apple/t8103-j293.dts b/arch/arm64/boot/dts/apple/t8103-j293.dts index ecb10d237a05..0b4b7e8e0726 100644 --- a/arch/arm64/boot/dts/apple/t8103-j293.dts +++ b/arch/arm64/boot/dts/apple/t8103-j293.dts @@ -11,6 +11,7 @@ #include "t8103.dtsi" #include "t8103-jxxx.dtsi" +#include / { compatible = "apple,j293", "apple,t8103", "apple,arm-platform"; @@ -43,3 +44,22 @@ &i2c2 { &i2c4 { status = "okay"; }; + +/ { + led-controller { + compatible = "pwm-leds"; + led-0 { + pwms = <&fpwm1 0 40000>; + pwm-names = "kbd-backlight"; + label = "kbd_backlight"; + function = LED_FUNCTION_KBD_BACKLIGHT; + color = ; + max-brightness = <255>; + default-state = "keep"; + }; + }; +}; + +&fpwm1 { + status = "okay"; +}; diff --git a/arch/arm64/boot/dts/apple/t8103-j313.dts b/arch/arm64/boot/dts/apple/t8103-j313.dts index df741737b8e6..0e0f57dee96b 100644 --- a/arch/arm64/boot/dts/apple/t8103-j313.dts +++ b/arch/arm64/boot/dts/apple/t8103-j313.dts @@ -11,6 +11,7 @@ #include "t8103.dtsi" #include "t8103-jxxx.dtsi" +#include / { compatible = "apple,j313", "apple,t8103", "apple,arm-platform"; @@ -35,3 +36,22 @@ &pcie0_dart_2 { /delete-node/ &port01; /delete-node/ &port02; + +/ { + led-controller { + compatible = "pwm-leds"; + led-0 { + pwms = <&fpwm1 0 40000>; + pwm-names = "kbd-backlight"; + label = "kbd_backlight"; + function = LED_FUNCTION_KBD_BACKLIGHT; + color = ; + max-brightness = <255>; + default-state = "keep"; + }; + }; +}; + +&fpwm1 { + status = "okay"; +}; diff --git a/arch/arm64/boot/dts/apple/t8103.dtsi b/arch/arm64/boot/dts/apple/t8103.dtsi index 51a63b29d404..ccdb26ef6b22 100644 --- a/arch/arm64/boot/dts/apple/t8103.dtsi +++ b/arch/arm64/boot/dts/apple/t8103.dtsi @@ -191,6 +191,15 @@ i2c4: i2c@235020000 { status = "disabled"; /* only used in J293 */ }; + fpwm1: pwm@235044000 { + compatible = "apple,t8103-fpwm", "apple,s5l-fpwm"; + reg = <0x2 0x35044000 0x0 0x4000>; + power-domains = <&ps_fpwm1>; + clocks = <&clkref>; + #pwm-cells = <2>; + status = "disabled"; + }; + serial0: serial@235200000 { compatible = "apple,s5l-uart"; reg = <0x2 0x35200000 0x0 0x1000>; From patchwork Wed Nov 2 14:15:13 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sasha Finkelstein X-Patchwork-Id: 1698187 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=2620:137:e000::1:20; helo=out1.vger.email; envelope-from=linux-pwm-owner@vger.kernel.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20210112 header.b=I94xNZB0; dkim-atps=neutral Received: from out1.vger.email (out1.vger.email [IPv6:2620:137:e000::1:20]) by legolas.ozlabs.org (Postfix) with ESMTP id 4N2TW23pmpz23lk for ; Thu, 3 Nov 2022 01:17:50 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231482AbiKBORs (ORCPT ); Wed, 2 Nov 2022 10:17:48 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42374 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231446AbiKBORd (ORCPT ); Wed, 2 Nov 2022 10:17:33 -0400 Received: from mail-ej1-x630.google.com (mail-ej1-x630.google.com [IPv6:2a00:1450:4864:20::630]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 845FB27DFA; Wed, 2 Nov 2022 07:17:25 -0700 (PDT) Received: by mail-ej1-x630.google.com with SMTP id q9so45768231ejd.0; Wed, 02 Nov 2022 07:17:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=2OvsFvC7MAbEsOX8IFvWXL3yuohBpehZrnsumSS6l5Y=; b=I94xNZB032xN/I+xFwgS4i1xMTczslDTtHMUVGoshdZ/3RqrcVx6ggSO1gkrF1gjfX HKSBKCCRFP9Z4qEjiUmsiuNI1YiJqpJ1t+ucH8Bd0egieDq1dJ94kTcY4WT9Pw82pCI/ ceAau4TdeCCagvYuTewmK7nvHyHUWj0Eb27ptkWPZpNvDL/GLSK1GQ3DhE2S4d9nBEYK 8LgPm4QDL6s80i/5BTfLNm/jgp7DtF8Kmp5I5tcRaVuDgjZxT0KgA0eVrod8TB+vh9Zc 7nbC69J1/ujjz21XwP4fvMs1jXgDwCMXLwORccXtYMeE7mqSiKf8QiaE1voLWuGOPNJQ n0hQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=2OvsFvC7MAbEsOX8IFvWXL3yuohBpehZrnsumSS6l5Y=; b=EsHVu3ZfH5rQIUZm/EypbMaUN1le3zQjeSf8Yp3VmL4SQE2nUayerHI7FBC7B4yjUE 8aRY8FH/SeL5n8xq64x902LXsjnUO/Ep2n1w7PxhNZrQWYKpcO8jCf2VcZUNo/xXPL5l PmZut3S9cIL9iXiP81udIRSNfhhnnu7IV3Ql5e+KUrkiDFBdjq2PXMMFytWccFYewd3e s7fDTiq4/TyEeMFDBuVaIewYmwMbYKnu7Afa3pCQ+eBU3cPgPnJAggC/Qh0I6iX3db48 HUEERcuzVNUEq2nYBJjZZVj3/x9SRr4Lt3Ro+jTqDIG1VfCsqGY3hND/xzGcnQx9KvO3 He7g== X-Gm-Message-State: ACrzQf1kVzdcn4ehfDJWrO6UFh7N4AjA9KB31r1NLnZwjCbHSpkfo9oz L+WVWeCaMtSR9nUtCtMgwH+lafSwQq0= X-Google-Smtp-Source: AMsMyM6DJtDJPn0GY0qzDwdPhWqfhXVOLLPpbFKX7ji9TiBh0loGXmAORNtJMyy/1fK9D3LQR0FDtg== X-Received: by 2002:a17:906:58c9:b0:7a7:dcba:a987 with SMTP id e9-20020a17090658c900b007a7dcbaa987mr23908623ejs.88.1667398644094; Wed, 02 Nov 2022 07:17:24 -0700 (PDT) Received: from localhost ([88.227.60.86]) by smtp.gmail.com with UTF8SMTPSA id f21-20020aa7d855000000b00458d383a6ddsm5826495eds.44.2022.11.02.07.17.23 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 02 Nov 2022 07:17:23 -0700 (PDT) From: Sasha Finkelstein To: thierry.reding@gmail.com, robh+dt@kernel.org, krzysztof.kozlowski+dt@linaro.org Cc: marcan@marcan.st, sven@svenpeter.dev, alyssa@rosenzweig.io, asahi@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-pwm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Sasha Finkelstein Subject: [PATCH v2 4/4] MAINTAINERS: Add entries for Apple PWM driver Date: Wed, 2 Nov 2022 17:15:13 +0300 Message-Id: <20221102141513.49289-5-fnkl.kernel@gmail.com> X-Mailer: git-send-email 2.24.3 (Apple Git-128) In-Reply-To: <20221102141513.49289-1-fnkl.kernel@gmail.com> References: <20221102141513.49289-1-fnkl.kernel@gmail.com> MIME-Version: 1.0 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM, 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-pwm@vger.kernel.org Add the MAINTAINERS entries for the driver Signed-off-by: Sasha Finkelstein --- MAINTAINERS | 2 ++ 1 file changed, 2 insertions(+) diff --git a/MAINTAINERS b/MAINTAINERS index 379945f82a64..414812941714 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -1908,6 +1908,7 @@ F: Documentation/devicetree/bindings/nvmem/apple,efuses.yaml F: Documentation/devicetree/bindings/pci/apple,pcie.yaml F: Documentation/devicetree/bindings/pinctrl/apple,pinctrl.yaml F: Documentation/devicetree/bindings/power/apple* +F: Documentation/devicetree/bindings/pwm/apple,s5l-fpwm.yaml F: Documentation/devicetree/bindings/watchdog/apple,wdt.yaml F: arch/arm64/boot/dts/apple/ F: drivers/clk/clk-apple-nco.c @@ -1921,6 +1922,7 @@ F: drivers/mailbox/apple-mailbox.c F: drivers/nvme/host/apple.c F: drivers/nvmem/apple-efuses.c F: drivers/pinctrl/pinctrl-apple-gpio.c +F: drivers/pwm/pwm-apple.c F: drivers/soc/apple/* F: drivers/watchdog/apple_wdt.c F: include/dt-bindings/interrupt-controller/apple-aic.h