From patchwork Wed Mar 2 15:31:14 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paul HENRYS X-Patchwork-Id: 1599887 X-Patchwork-Delegate: trini@ti.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: bilbo.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=softathome1.onmicrosoft.com header.i=@softathome1.onmicrosoft.com header.a=rsa-sha256 header.s=selector1-softathome1-onmicrosoft-com header.b=ULJTRgAC; dkim-atps=neutral Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Received: from phobos.denx.de (phobos.denx.de [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4K7z1P1Yzpz9sGC for ; Thu, 3 Mar 2022 02:43:53 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 41E0883C90; Wed, 2 Mar 2022 16:43:47 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=softathome.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (2048-bit key; unprotected) header.d=softathome1.onmicrosoft.com header.i=@softathome1.onmicrosoft.com header.b="ULJTRgAC"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id ECF5583C98; Wed, 2 Mar 2022 16:31:37 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,SPF_HELO_PASS,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.2 Received: from FRA01-MR2-obe.outbound.protection.outlook.com (mail-mr2fra01on0626.outbound.protection.outlook.com [IPv6:2a01:111:f400:7e19::626]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 34B5D83C8F for ; Wed, 2 Mar 2022 16:31:34 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=softathome.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=paul.henrys_ext@softathome.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=T6NnlkEGKyEhjwwTYAzLVKVWifSodQL3bFT8jSkOM/YC8HTSUJIj6cYJ7LbKPjBFdcVMaJ/Nck00Nv8kX7w8phZGnUEXz6ZKoe2te1KbIkDpVvC2BIOaqsDWGNdt29mfFna2b8C2FXo5rsp8uGCPcOEt67sfIPA32uLEz+UCXJ4Q9FzAjYoTOgTURO6qeE76C3EaI/AgowOhGtg3tMsHrsXYUQNDsIYhtmfGAxAqEt5KykVs1+msbqp1iUynAnYiBBH8wn4VXYu3IdAuerUMhYa5CXOkcx4JnuDbZGI9P9swNvnguWSBTLbccZG5vE3GzyG2wlqgRYrHYjNwucM7Jg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=1E8YnTrBXWj/tcE6FowEe6lcOIpa6z77kO03oCMek0c=; b=AjTJdjSbwvutLAfnRLMXr2Lz5fLpG7rqnHxIqnnDH6d//TP3eIkCZCQhGMBhglu5ExKVVFMkr8ujsYQ26XZhQFALoUlweM72NIjuEBgsCCPPLVtm6gSdTbkQuanIJ3MHj8qetK8m9W8K8mXxcMG6Dqse68PHeJzp3tyu8LasP5PYlYZyGBM1T5yG+u4RqUT/ya1s4KhMnzD3LP6nzGOyxZHoJzRD5UHe/F+96YSqVUSBar4LDHVB8fty7XHDldKQrn5q9+WV/PAZjxofaB7OeFpD0nm71vhVE+hgFzpUyvMt0ZtvnrrdnlkUQW8tqJoHCbvTjyDZR+TyabGTkvPd7w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 149.6.166.170) smtp.rcpttodomain=lists.denx.de smtp.mailfrom=softathome.com; dmarc=bestguesspass action=none header.from=softathome.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=softathome1.onmicrosoft.com; s=selector1-softathome1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=1E8YnTrBXWj/tcE6FowEe6lcOIpa6z77kO03oCMek0c=; b=ULJTRgACPRlM0n6OzZgWGqvwgMwvsRL5FHEnE7WdR5UIo5w+2DBTrNlscNf82aGwfeBuB2xyG9WKJa/e/GapPcJLgjmztUujlFYs6rPo0A9vXS927T6zfz9Nj/jU9ixtKvhcLrfbCcgG8Zpwq5GOc8bFAn8hE0W1qVD9LPENu3ZP8HEvdgTHwhH21MHsxU/YzHxVRKqgwV/+vf4mso/zwAedBJ4E/cEOtjjoMXm+2beCSpu7F3/7xEmzAuU4Jj5uN746V8IDSPqqqt8ecRM2uheC22yZapP4uEb68P9M9zFchucH+MHJOQIqFarhlpGXjuINjV6MeGKNg0+8sNz+ug== Received: from PR0P264CA0067.FRAP264.PROD.OUTLOOK.COM (2603:10a6:100:1d::31) by MR1P264MB2235.FRAP264.PROD.OUTLOOK.COM (2603:10a6:501:15::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5038.13; Wed, 2 Mar 2022 15:31:31 +0000 Received: from PR2FRA01FT003.eop-fra01.prod.protection.outlook.com (2603:10a6:100:1d:cafe::e3) by PR0P264CA0067.outlook.office365.com (2603:10a6:100:1d::31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5038.13 via Frontend Transport; Wed, 2 Mar 2022 15:31:31 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 149.6.166.170) smtp.mailfrom=softathome.com; dkim=none (message not signed) header.d=none;dmarc=bestguesspass action=none header.from=softathome.com; Received-SPF: Pass (protection.outlook.com: domain of softathome.com designates 149.6.166.170 as permitted sender) receiver=protection.outlook.com; client-ip=149.6.166.170; helo=proxy.softathome.com; Received: from proxy.softathome.com (149.6.166.170) by PR2FRA01FT003.mail.protection.outlook.com (10.152.48.96) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5038.14 via Frontend Transport; Wed, 2 Mar 2022 15:31:31 +0000 Received: from sahess08-ThinkPad-T580.domains. (unknown [192.168.18.254]) by proxy.softathome.com (Postfix) with ESMTPSA id 3722E1FFAD; Wed, 2 Mar 2022 16:31:31 +0100 (CET) From: Paul HENRYS To: u-boot@lists.denx.de Cc: Paul HENRYS Subject: [PATCH] drivers: led: bcm6858: Set default brightness when setting LED state Date: Wed, 2 Mar 2022 16:31:14 +0100 Message-Id: <20220302153114.117364-1-paul.henrys_ext@softathome.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 0faedc9a-06ce-4288-401b-08d9fc61ba43 X-MS-TrafficTypeDiagnostic: MR1P264MB2235:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: p9mL3e6m9Q6WWlcFbtHGa+x4FWRIDTPfCn0pgGzD6CJT2Mm2Nk2qu9O9h5AULwZN+fNv7neoZQ5DdjKFzI+UtKUpGbrlvdV11sucIk9XPAwrNwtT9sDJ9y/7Ac9jdDKbYQUNHAx8z0SyuTE/HC1vzrMVk6f2Sz9+OiaM7+/UzW5TbMd1iAHZxF7gLUx0F8gJtFT1RTbnX5tAU3RORD9F1EP+qFPbBp4+IiUzs+PB8JpY0tm+vYdFXCmkQ23bbqNxyTr1kpF0KheKFb3lLohS26Xhbil3JAcZHIqXVCKfL1FudEgyRpAYstr1La+u8H1dhiJS1ysN85e2VKJl2iswKayUXDyi9VAq6bY1U2WJpWJilL3pxu+16r5ZsimjFyiFzAxyRZaj8RDwZRpR+yLexD6mJ8VcvdfpMtBTVnztX82hrLBhBkjSHUlCQE1tNnYc7yCfTcwIihK7inmXoLmLpVWwlHCes6JmijXqhjpj8/b2aTnMkBBphl52Z1CArp1c3/6KWgm/+ajIzDDTDb0r+/LouWzHF+UQH11MLxfcpnMlKKOKPDRcMWBf61R0wVeDi3RpcMmYPCEiqfwJ2jYG+k7R00nsUmWwm5SuZJhvGUzy1S1g2IU9oTmiKZaOjjKrbq1D5FdLvHQ1E3/hv70mEWirXsPjEH4LOevJgWB/alzaQ4W0iksyA2B2nA/rvGOi X-Forefront-Antispam-Report: CIP:149.6.166.170; CTRY:FR; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:proxy.softathome.com; PTR:InfoDomainNonexistent; CAT:NONE; SFS:(13230001)(4636009)(46966006)(36840700001)(316002)(8936002)(4326008)(8676002)(107886003)(5660300002)(26005)(6916009)(1076003)(508600001)(86362001)(6966003)(36756003)(6666004)(70206006)(70586007)(36860700001)(82960400001)(356005)(2906002)(81166007)(2616005)(82310400004)(426003)(336012)(6266002)(47076005)(186003)(36900700001); DIR:OUT; SFP:1101; X-OriginatorOrg: softathome.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Mar 2022 15:31:31.6319 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 0faedc9a-06ce-4288-401b-08d9fc61ba43 X-MS-Exchange-CrossTenant-Id: aa10e044-e405-4c10-8353-36b4d0cce511 X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=aa10e044-e405-4c10-8353-36b4d0cce511; Ip=[149.6.166.170]; Helo=[proxy.softathome.com] X-MS-Exchange-CrossTenant-AuthSource: PR2FRA01FT003.eop-fra01.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: MR1P264MB2235 X-Mailman-Approved-At: Wed, 02 Mar 2022 16:43:46 +0100 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.5 at phobos.denx.de X-Virus-Status: Clean When setting the LED state (OFF, ON or blinking), the default maximum brightness is set for ON and blinking state and the brightness is set to 0 for OFF state. This should make sure the LED controller's registers affecting the brightness are correctly initialized and should give consistent behaviour. Signed-off-by: Paul HENRYS --- drivers/led/led_bcm6858.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/drivers/led/led_bcm6858.c b/drivers/led/led_bcm6858.c index fbf46a114c..02a8308611 100644 --- a/drivers/led/led_bcm6858.c +++ b/drivers/led/led_bcm6858.c @@ -1,6 +1,7 @@ // SPDX-License-Identifier: GPL-2.0+ /* * Copyright (C) 2019 Philippe Reynes + * Copyright (C) 2022 Paul HENRYS * * based on: * drivers/led/led_bcm6328.c @@ -38,6 +39,8 @@ #define LED_HW_LED_EN_REG 0x08 /* LED Flash control register0 */ #define LED_FLASH_RATE_CONTROL_REG0 0x10 +/* LED Brightness control register0 */ +#define LED_BRIGHTNESS_CONTROL_REG0 0x20 /* Soft LED input register */ #define LED_SW_LED_IP_REG 0xb8 /* Parallel LED Output Polarity Register */ @@ -96,6 +99,24 @@ static int bcm6858_led_set_period(struct udevice *dev, int period_ms) } #endif +static int led_set_brightness(struct udevice *dev, unsigned int brightness) +{ + struct bcm6858_led_priv *priv = dev_get_priv(dev); + u32 offset, shift, mask, value; + + offset = (priv->pin / 8) * 4; + shift = (priv->pin % 8) * 4; + mask = 0xf << shift; + + /* 8 levels of brightness achieved through PWM */ + value = (brightness > 7 ? 7 : brightness) << shift; + + clrbits_32(priv->regs + LED_BRIGHTNESS_CONTROL_REG0 + offset, mask); + setbits_32(priv->regs + LED_BRIGHTNESS_CONTROL_REG0 + offset, value); + + return 0; +} + static enum led_state_t bcm6858_led_get_state(struct udevice *dev) { struct bcm6858_led_priv *priv = dev_get_priv(dev); @@ -116,12 +137,15 @@ static int bcm6858_led_set_state(struct udevice *dev, enum led_state_t state) switch (state) { case LEDST_OFF: clrbits_32(priv->regs + LED_SW_LED_IP_REG, (1 << priv->pin)); + led_set_brightness(dev, 0); #ifdef CONFIG_LED_BLINK bcm6858_led_set_period(dev, 0); #endif break; case LEDST_ON: setbits_32(priv->regs + LED_SW_LED_IP_REG, (1 << priv->pin)); + /* Set maximum brightness by default */ + led_set_brightness(dev, 7); #ifdef CONFIG_LED_BLINK bcm6858_led_set_period(dev, 0); #endif @@ -135,6 +159,8 @@ static int bcm6858_led_set_state(struct udevice *dev, enum led_state_t state) #ifdef CONFIG_LED_BLINK case LEDST_BLINK: setbits_32(priv->regs + LED_SW_LED_IP_REG, (1 << priv->pin)); + /* Set maximum brightness by default */ + led_set_brightness(dev, 7); break; #endif default: