From patchwork Mon Apr 7 09:51:16 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Pengyu Luo X-Patchwork-Id: 879842 Received: from mail-pl1-f177.google.com (mail-pl1-f177.google.com [209.85.214.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C88044C91; Mon, 7 Apr 2025 09:53:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.177 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744019630; cv=none; b=rPC2A17bLhDVYt1o7bOQ/Bj6O6m16gFIFOxDlr7NKyrvYPFfHhdwRZbfNzbzQnBnrgzLP7Yz4cHRAUl4kludKPYvV46gYcq+KqgxBY5dHMjhp/dT5UMWsvmQgqTlDiU2ToxV9ug6FaBxKO5pW/OBTNsPOACl23AlVDqZOboukMc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744019630; c=relaxed/simple; bh=8Il7h+a5b3h05r8RBbvRTr1Tp8J/YjelC9cHTJWl8Ms=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=YE7f9NWZLSZ+XNmh8F3lKQ9dUwdIV00w7LL5Jjt4TxdUv+D4xzjBYAvcICWw454hu9FD9/egyV8x6ZcaFb3DDhl/QDYEr3ZoTqdq4QnFUZt6F7yTflkxCwJnIbgKfB+6PT8JsHH+rJESQoxDXW39QkkX50f7OU7w0G63T7muy54= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=hy296+X0; arc=none smtp.client-ip=209.85.214.177 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="hy296+X0" Received: by mail-pl1-f177.google.com with SMTP id d9443c01a7336-22580c9ee0aso42929885ad.2; Mon, 07 Apr 2025 02:53:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1744019628; x=1744624428; darn=vger.kernel.org; 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=dg9lEoL65QzJMd1p9NbRIABfnXtPImWz2QQY6zZN36Q=; b=hy296+X0A4550eqzwhEk5dMmXP0EkgfdW+XN212BR0geI5U9yTzbyk3qqQ1JNPXtRH UJ0ZlZzjg8dtuFZH7sdxmMufLj8PvrpJCVhzPqk+WAxBBGxeB77wpyiM4RCcxWtvX23y qEFY/RQ8y7+fQdNHOUxNtJrU/lAgEn/tzgn8YlebjSfMOv0RBq0A0HONNaMHCPmjAtOu QGiJcz+pDONZDVI2ITabr3bqG70jDoU1KSZqkwxKNhNtr2tb1Bir/+CTGOJwHYdQFRP3 gp03v9sh1zBUnzt2P5qYQpiEF38bDyDg2pjkZBQNX0mqkyn7MrQ+yMf1rCmUZIukvQ9e CQ7g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744019628; x=1744624428; 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=dg9lEoL65QzJMd1p9NbRIABfnXtPImWz2QQY6zZN36Q=; b=nKaYahjzhMWA/Pf1p2VQSfpqzMp21abod+qKHqxNMb/FixylO2qYn8F6dHDwrDxSm0 XnGb1Vx/4r8KWskIhj4DCOnkHtDcTHLVHeae1W2k/OqnE1Pcpys/CU9I/d502qvGP6wm wrAchnoNrxyXf1KVzn0fUbjJVkd1SM9qTScxoJJbgA8S/KmW4aqKaOuVr/y8eiR53m00 jkrYqLcQCltFGVfhYeAZB+E6oOq4zLW6nTgin4UJNi1+j36gXWraqH2dTeJlTZegGEc/ FUqwSMi6RK9ya/mTuWE1mMr02A81P5KuKFxyV7xEJ3kzCwt1TQjs0FkoywrjeM1M6obF BDwQ== X-Forwarded-Encrypted: i=1; AJvYcCUwkovU/B2FIYiyqty7JIR5D/ZWI65EdIpZvCE32yxp2FUopt24ucUvuSiC8SYFf1nqaJXrDnKZDBHkTcUe@vger.kernel.org, AJvYcCUypbOcF6c1MlM40dhjXSbKTa9dftcN88kcj8rfggAEVPQSeUKnbmQ9tU2Ab+AHGiZ4vvl6/anfpPZBYA==@vger.kernel.org, AJvYcCWNvNO/a2V9Cjs0u7T1KjuoI7m62JqSKu7POgj0OC7JPksjKubwIqxnlB/En3FSvJIiOs74/Q5BdZ87@vger.kernel.org, AJvYcCXy+MPidSgeRa8uXbvcC5m0kucQyDdcBUq6frSuVxEh2IprTb3tqeLh1snAi+i2m4m0U8Gz/eGUknXB8EU=@vger.kernel.org X-Gm-Message-State: AOJu0Yzjd/lOd9AkqS8zRjI8ESwsZkOzNzYlvKFdDlzj23x6yfWmlmwz cB7Jh38PXQPALTCrdRPdJUUmgoH4I9a/paDO7/ixUpuJQPhDlFNj X-Gm-Gg: ASbGncty/fAq/E2YvY6/eH0AT7kvevPA6iWrahDpU2Kft019CjfydsqJ2rxyFRW9q+b ZaI3dSIryMzTO4nHoEjztO275SEPFMr8LIc83sg7fIhevmamYs2J1oTbkjzlPSD7BCULRtbs+1w dSPcjAA2JooCjjoz8X1UNZsMlMkD3tnkHosuw/bV9tJqdiQNPlM2gKgIlLI1UslQMAc00LAeKl5 SFmWM22fh/z9/7iH7nhdCXt+J0yBwSYLTTihrN0h5KjrKp022zHREQjcnwwJc3ynJC0hKpfUI9C 2ib4LYdKyAaRi94oCDHFvbcZ+qUQuxUhDdTWkJ39C3hDl4yWOCDFSw== X-Google-Smtp-Source: AGHT+IGqfDuPIWeY7/3IZ1+COET6x2KSkLggAv3zoC6YR9cO2KRSMw8l5ILuBVRm8a0vYSnxe49kKQ== X-Received: by 2002:a17:903:3bc6:b0:220:d79f:60f1 with SMTP id d9443c01a7336-22a8a8ced77mr154326345ad.42.1744019627964; Mon, 07 Apr 2025 02:53:47 -0700 (PDT) Received: from nuvole.. ([144.202.86.13]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-229785bfddfsm77213805ad.66.2025.04.07.02.53.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 07 Apr 2025 02:53:47 -0700 (PDT) From: Pengyu Luo To: Jianhua Lu , Lee Jones , Daniel Thompson , Jingoo Han , Pavel Machek , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Helge Deller Cc: dri-devel@lists.freedesktop.org, linux-leds@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-fbdev@vger.kernel.org, Pengyu Luo Subject: [PATCH 1/4] dt-bindings: backlight: kinetic,ktz8866: add ktz8866 slave compatible Date: Mon, 7 Apr 2025 17:51:16 +0800 Message-ID: <20250407095119.588920-2-mitltlatltl@gmail.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250407095119.588920-1-mitltlatltl@gmail.com> References: <20250407095119.588920-1-mitltlatltl@gmail.com> Precedence: bulk X-Mailing-List: linux-fbdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Kinetic ktz8866, found in many android devices, nowadays, some oem use dual ktz8866 to support a larger panel and higher brightness, add the binding for slave case. Signed-off-by: Pengyu Luo --- .../leds/backlight/kinetic,ktz8866.yaml | 29 +++++++++++++++---- 1 file changed, 24 insertions(+), 5 deletions(-) diff --git a/Documentation/devicetree/bindings/leds/backlight/kinetic,ktz8866.yaml b/Documentation/devicetree/bindings/leds/backlight/kinetic,ktz8866.yaml index c914e1276..825a6fbf1 100644 --- a/Documentation/devicetree/bindings/leds/backlight/kinetic,ktz8866.yaml +++ b/Documentation/devicetree/bindings/leds/backlight/kinetic,ktz8866.yaml @@ -19,7 +19,9 @@ allOf: properties: compatible: - const: kinetic,ktz8866 + enum: + - kinetic,ktz8866 + - kinetic,ktz8866-slave reg: maxItems: 1 @@ -58,9 +60,16 @@ properties: required: - compatible - reg - - vddpos-supply - - vddneg-supply - - enable-gpios + +if: + properties: + compatible: + const: kinetic,ktz8866 +then: + required: + - vddpos-supply + - vddneg-supply + - enable-gpios unevaluatedProperties: false @@ -68,7 +77,7 @@ examples: - | #include - i2c { + i2c0 { #address-cells = <1>; #size-cells = <0>; @@ -84,3 +93,13 @@ examples: kinetic,enable-lcd-bias; }; }; + + i2c1 { + #address-cells = <1>; + #size-cells = <0>; + + backlight@11 { + compatible = "kinetic,ktz8866-slave"; + reg = <0x11>; + }; + }; From patchwork Mon Apr 7 09:51:17 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Pengyu Luo X-Patchwork-Id: 878779 Received: from mail-pl1-f175.google.com (mail-pl1-f175.google.com [209.85.214.175]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8E5DE225412; Mon, 7 Apr 2025 09:53:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.175 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744019640; cv=none; b=Z6hMHySrS8AAJKvVAvhcA6LV4zSX0cfD4W5go060rJSTlhm6rpKjq6bKchpbCDO6vftRO3oDR0Mbx9lfiv/Z7iRejrnF2g+hI8hu7G8lClIuWrILthyON/3RPwRUSQxoBqdTTqetCQuSAl05d7xVAAniyib5eOYFCsn2d6NzSXc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744019640; c=relaxed/simple; bh=X2dSJBfeAfgLO86sKTLc1abIYOdaHiNbuzLhh0gWuSA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=AnH2jT8xUC8rJa9Cg4BxO8XVU3IeMgbnVcNzee1qnyTCtXY/MTkpx/Z0R3kFA4E6JnXDAoZWv+pLN1T1Bflz8xtdgVeOCAuSQk9hYJF19tj9Zm/TiswpEGFU4eDgT509vfXQpllDSKuAXU0oLCkWU7RgqONEG5qzYbvAqFYh6Tg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=UBZc9oIk; arc=none smtp.client-ip=209.85.214.175 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="UBZc9oIk" Received: by mail-pl1-f175.google.com with SMTP id d9443c01a7336-227a8cdd241so46369195ad.3; Mon, 07 Apr 2025 02:53:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1744019638; x=1744624438; darn=vger.kernel.org; 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=QqsxLQYznUT9RsPhQAq/Ha4vcZ/fvmuGVrYbn4a8PBA=; b=UBZc9oIkrTzLaHNXM9zkay9HKqBxu3gESy45mxBuHeJ/WaZvh2b16YJy/XWW7VS5vf X3SNkxnZWTd3yurQCE2eWyoaBtRGp3Ge59+LH0ZYV1hoBc/rCwwd2/ewG4LyVigWGaJY HnVc+JRdo8OIzkFCoRpFgF++j64NJbASBMV+vdH02qI4/DW5kT5d7K+DvKZTA48hzcsW Ng4ckq9wytXUeWaC76BM5TjiGb/FL3N++q7DnF9PVzqVW8aeSNC32gXyGWWpvqHCpjnQ RDwUiGj53drRUbMr1C8ChVYEWGgrqXa/LuWk6fJfR5rg4YP5WThIfUs+TEAbaanNkhrY quBw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744019638; x=1744624438; 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=QqsxLQYznUT9RsPhQAq/Ha4vcZ/fvmuGVrYbn4a8PBA=; b=MxZ738XTecehvWPTKZwOvaeKx/mGpz8LeAs1rWCXcYPVtT34V9DsPUC0cSfHpL1X76 pxFJe/9ZosQaix5SUzqqSvccaUWfM6rUUJNTc5J2mCXosIKtC20ub0c5nxn/GtA8ExVX 0T3RCgl341gOfiJw+JroTEHYK9Sa52SvYOubgYlfxVD2UB0B5LRRH8KBc+ZLsAu2dSbw R4R79nUumdgI/NHR53++EWP/08radZMuKmmvjpgMDYuzMck5YPVPEHr/bpMNNUo5aqEQ 5nuf6iXy7Ppz6kP5MGZ2lqjtw789if+kkcHbRvIDWQNH0RZYDucNsvvqfXnTG0P4L/kC 7o9w== X-Forwarded-Encrypted: i=1; AJvYcCW9dRUeLpUMv6UnOgwBfbIvzf5Z3FTXPjuZGM+3yxKp5LtOE2V7pcaWKzrmMkT4ZDYy7Iq8S5YjlOyXaaI=@vger.kernel.org, AJvYcCWJWoOogmiw9TzB0mGz1wYctKMjYoCcLMm+zSqf3Qs+F3oZv9cBbCT7YwzbNQcmraA9RvElSMLd8oly@vger.kernel.org, AJvYcCWfYJ3rN9CKw88KWxHfV2BDdBfpOtD17XRJKTIj4k8dbmv6AvW7/9r3vmmfK9rK8R7l//Mdpj05+mncyy7X@vger.kernel.org, AJvYcCXMTSV4i61GgK3bGchYyRvdeswrcCu+zQiDOtjxNId3Q4qqtYJtGP5bID91cuVO9nn1Bb6d94TdvVEGoA==@vger.kernel.org X-Gm-Message-State: AOJu0Yzfcw2LcPNMXUzGla//zeDlZPVA7ZqJxuEilTjgFTkJLMetYvG2 61aIpTfrLXfkuxjcrnZ7vgla4O5r/HuhhmETNWZG8ba/12jIwcOt X-Gm-Gg: ASbGncv6XdwqAX8/0iM1hQSmXpOYBTcIARwjyxNyJkJ/akSpPIXLZ+aAi9vQ+MiWxyv 0PTOlgRcNVS5NZYumo1mNPw84Pyyj238r6IrDVa/n+yG5liNQqSesziF1unYZ4ezGXcjjippwdI YOiBYI1ymg9t/oWcJFxy8ShdKoprKW6m64Eho7F6RzFAHWzCHukTcIvHxYL02ylp4J9s0LZ/5+a Kxn26oyejf1KrQ3JCYGnZtqRvLkzyky7dcvhmjTmRvBKvDiAouz5bysrR1pFluOAQko+4E5rBLP cpTpTI167nud7lWl414fWOox7h8BFLMS5RFf0oggIKA= X-Google-Smtp-Source: AGHT+IEuCKwpckL0Z9qXyRFKR/AGg8nN7XQo8YQhcxfUUoLSqUZ0cLSWOWcAvb+fY4I/YHLsAll3+Q== X-Received: by 2002:a17:902:ebc7:b0:21f:dbb:20a6 with SMTP id d9443c01a7336-22a95573892mr114847295ad.33.1744019637847; Mon, 07 Apr 2025 02:53:57 -0700 (PDT) Received: from nuvole.. ([144.202.86.13]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-229785bfddfsm77213805ad.66.2025.04.07.02.53.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 07 Apr 2025 02:53:57 -0700 (PDT) From: Pengyu Luo To: Jianhua Lu , Lee Jones , Daniel Thompson , Jingoo Han , Pavel Machek , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Helge Deller Cc: dri-devel@lists.freedesktop.org, linux-leds@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-fbdev@vger.kernel.org, Pengyu Luo Subject: [PATCH 2/4] backlight: ktz8866: add slave handler Date: Mon, 7 Apr 2025 17:51:17 +0800 Message-ID: <20250407095119.588920-3-mitltlatltl@gmail.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250407095119.588920-1-mitltlatltl@gmail.com> References: <20250407095119.588920-1-mitltlatltl@gmail.com> Precedence: bulk X-Mailing-List: linux-fbdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Kinetic ktz8866, found in many android devices, nowadays, some oem use dual ktz8866 to support a larger panel and higher brightness, original driver would only handle half backlight region on these devices, registering it twice is unreasonable, so adding the slave handler to support it. Note that, none of the devices supported by upstream require this, the devices using this is porting. Signed-off-by: Pengyu Luo --- drivers/video/backlight/ktz8866.c | 68 +++++++++++++++++++++++++++---- 1 file changed, 59 insertions(+), 9 deletions(-) diff --git a/drivers/video/backlight/ktz8866.c b/drivers/video/backlight/ktz8866.c index 351c2b4d6..017ad80dd 100644 --- a/drivers/video/backlight/ktz8866.c +++ b/drivers/video/backlight/ktz8866.c @@ -3,6 +3,9 @@ * Backlight driver for the Kinetic KTZ8866 * * Copyright (C) 2022, 2023 Jianhua Lu + * + * Apr 2025 - Pengyu Luo + * Added handling for dual KTZ8866(master and slave) */ #include @@ -43,11 +46,17 @@ #define LCD_BIAS_EN 0x9F #define PWM_HYST 0x5 +struct ktz8866_slave { + struct i2c_client *client; + struct regmap *regmap; +}; + struct ktz8866 { struct i2c_client *client; struct regmap *regmap; - bool led_on; struct gpio_desc *enable_gpio; + struct ktz8866_slave *slave; + bool led_on; }; static const struct regmap_config ktz8866_regmap_config = { @@ -56,16 +65,22 @@ static const struct regmap_config ktz8866_regmap_config = { .max_register = REG_MAX, }; -static int ktz8866_write(struct ktz8866 *ktz, unsigned int reg, - unsigned int val) +static void ktz8866_write(struct ktz8866 *ktz, unsigned int reg, + unsigned int val) { - return regmap_write(ktz->regmap, reg, val); + regmap_write(ktz->regmap, reg, val); + + if (ktz->slave) + regmap_write(ktz->slave->regmap, reg, val); } -static int ktz8866_update_bits(struct ktz8866 *ktz, unsigned int reg, - unsigned int mask, unsigned int val) +static void ktz8866_update_bits(struct ktz8866 *ktz, unsigned int reg, + unsigned int mask, unsigned int val) { - return regmap_update_bits(ktz->regmap, reg, mask, val); + regmap_update_bits(ktz->regmap, reg, mask, val); + + if (ktz->slave) + regmap_update_bits(ktz->slave->regmap, reg, mask, val); } static int ktz8866_backlight_update_status(struct backlight_device *backlight_dev) @@ -124,10 +139,41 @@ static void ktz8866_init(struct ktz8866 *ktz) ktz8866_write(ktz, LCD_BIAS_CFG1, LCD_BIAS_EN); } +static int ktz8866_slave_register(struct ktz8866 *ktz) +{ + struct device *dev = &ktz->client->dev; + struct ktz8866_slave *slave; + struct i2c_client *client; + struct device_node *np; + + np = of_find_compatible_node(NULL, NULL, "kinetic,ktz8866-slave"); + if (!np) + return 0; + + client = of_find_i2c_device_by_node(np); + of_node_put(np); + if (!client) + return 0; + + slave = devm_kzalloc(dev, sizeof(*slave), GFP_KERNEL); + if (!slave) + return -ENOMEM; + + slave->client = client; + slave->regmap = devm_regmap_init_i2c(client, &ktz8866_regmap_config); + if (IS_ERR(slave->regmap)) + return dev_err_probe(&client->dev, PTR_ERR(slave->regmap), + "failed to init regmap\n"); + + ktz->slave = slave; + + return 0; +} + static int ktz8866_probe(struct i2c_client *client) { struct backlight_device *backlight_dev; - struct backlight_properties props; + struct backlight_properties props = {}; struct ktz8866 *ktz; int ret = 0; @@ -151,7 +197,6 @@ static int ktz8866_probe(struct i2c_client *client) if (IS_ERR(ktz->enable_gpio)) return PTR_ERR(ktz->enable_gpio); - memset(&props, 0, sizeof(props)); props.type = BACKLIGHT_RAW; props.max_brightness = MAX_BRIGHTNESS; props.brightness = DEFAULT_BRIGHTNESS; @@ -163,6 +208,11 @@ static int ktz8866_probe(struct i2c_client *client) return dev_err_probe(&client->dev, PTR_ERR(backlight_dev), "failed to register backlight device\n"); + ret = ktz8866_slave_register(ktz); + if (ret) + return dev_err_probe(&client->dev, ret, + "failed to register slave\n"); + ktz8866_init(ktz); i2c_set_clientdata(client, backlight_dev); From patchwork Mon Apr 7 09:51:18 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Pengyu Luo X-Patchwork-Id: 879841 Received: from mail-pl1-f175.google.com (mail-pl1-f175.google.com [209.85.214.175]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 529DE23372D; Mon, 7 Apr 2025 09:54:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.175 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744019649; cv=none; b=N5fNbyLeGrIUBtDvDPmLk7DcZtW0plQKbFw6urYJGzH4Yq9xAgdOfxyRTg8590ktneYuNnwM67TMpSFnXwVlmYPsP/xYhRs9S32PsHHt8XJRkIpL/KN0KJdNWhjxJiUNF+Jj6xeYlQaje8xJwMpRTL8JK/JzitTWheX4sNfRgPU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744019649; c=relaxed/simple; bh=/62GKGmmu3E9YZWHOM6Xl3Z0iVTLdRYw5PPueeHH5Dg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=NP4O+FjyrCU5WkembweZO05p0zwU40IcOyp5tJ3H0u26/KSEc1dxtEysItnFtZNDI7TJFOkHwW/zhVQB/gM6NGQ3mxS7zMfPrTgWqJVxSnkHPYkNQySD769PFBgM3SYi0AEQhwit1ll3Vr6iTgX61Q1OBcdQk5UKXYaJr0h4QgM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=jWW1g7qZ; arc=none smtp.client-ip=209.85.214.175 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="jWW1g7qZ" Received: by mail-pl1-f175.google.com with SMTP id d9443c01a7336-227d6b530d8so33591965ad.3; Mon, 07 Apr 2025 02:54:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1744019647; x=1744624447; darn=vger.kernel.org; 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=O8diRuAQehXi7R+D5qp01L9GbmQB2F98eyfpHLigrsU=; b=jWW1g7qZi8bAlcPd31sLQt6Ib7Ve4MRbkCbN+3CmqOdrbNKGT64XITBS/MdgX3oD08 sExi1nvxknXBLtGovey/rcZ8imvQZEQc/iXL5w+afyIB2nhNdIosG3tSVKjW8YvTnrHE OlNEfZT+89qzolyM0jApTMEXyDzQsLmX06aIfo8rKYHHY8F9zvqoC8WREOlPdTM9bOiE oVQgJYFVMJLHTxpNrHsAHUW/WO9LIs8WAKtDbQcyO3AHHh1nWsJ4Iz01IS1qkx4HZuU6 NyyAmhfYZWGZUOVHwfe4X1RIuQ6n/JyjR7n/AWZ6tDn/dB8pnJ8QkpZvi9Y1evWMYl8j hg2A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744019647; x=1744624447; 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=O8diRuAQehXi7R+D5qp01L9GbmQB2F98eyfpHLigrsU=; b=v9A0iYT1Vc9ZVt+8jDvYfHsI8X30P+mPifi72rwL0/EJeG1iKXevnLl01FIrXvkMhi IGvmmIn5v3Prj7nPujE0I9eSHXJ+bjdP2HCeHRGo/Zn0F6TetiMQTC/QX9zEnFhQ3fwo KG7ioOwLBMFNmdf1q+L47rESwOYB+lHy0hmmm3Ha9WpRqtXV/3Hr3hD0Ta4I1sqFtX7H nTygRk2nctB5sOIxOYIfbzr7AJbDkHqGBQiRVT33Tiz+2Iq+FmIrNSJPYC/ID9MEuxje csnt4IscO72MjYH6vc9HVOkz3V9MP7xLc1QNM48JzXlZ9DQnGFXHh1Fsj6iIGnmWx0aR CiUg== X-Forwarded-Encrypted: i=1; AJvYcCVnB5277Rg5MzH9czlwj4q8c6OIdcNhuoTRnKouJmklUeTk32RS+okVJjBW0AxVV3rBN9d1Mp9PpTRPHQ==@vger.kernel.org, AJvYcCXHRb0uK6XvUo+yBuur3fu8KO4dANKIHjLOe0SpvyuKULt1BtfCSYY0J2mR/UYGc8CNdigM3qNzWqPHXslO@vger.kernel.org, AJvYcCXZmgv0e2C++sbzFnny5qnfZWGiXMze9eMhmOjezeD2m6vusAaQxaiYEg04I8MUIRJ1f4POV4/pajd4qSc=@vger.kernel.org, AJvYcCXdP/oGt69JMH4ZoWWExyAtQG+Czn+ZD2PjfXElYMYyo0HJnBxUUcq/yMwZhcGvDo6EbRNN5BNZ0mwF@vger.kernel.org X-Gm-Message-State: AOJu0YyECW4TMR7koTRjh7qZs4DTR7kLr23l5dTY0sQOMwSPik22RSmc 71lVz4j4gX4w0I4ZhJzak2LjlcALoGkuB8YkQCIvfKMaTSYrEfJetlpB/HWNxbI= X-Gm-Gg: ASbGncvByYk0DLR9/I/QF6YUJPSf1lUv1lFQWDO4dZmc7XetmQ/EPT8Cde5Py/4uzRQ kHMmpB1yGrY13RRbuqOpYN7Ut8ayt5FsPLCPYuRTWBrHpZ8iIUAyWm5NYv8MMmuwSL3hS3rMiEN LKzXSj98d8kwpA1HDEcEc/YVJlfLqg876IYU2ATH2KToZb6PElh+WYpim8lCuQyJKcAUxkwWUHZ +ccqy2V1u/FNJq8Xj/GSKDfRbqci1jdbSEagDn7k2hYg7Yc1vKn17VqTfYdxJsDFNtixw4nQ9wE a/H+8cxPivGvlRISkbC4wT9rMtMP/8X1cXlyLO63sIs= X-Google-Smtp-Source: AGHT+IEZza3sL31uGEXE9GqOZmRwDZovRtw/5y2xgKCiRmfb48lzBMArT3fRLQbnoTwMSm5KJMfMfw== X-Received: by 2002:a17:903:18d:b0:225:abd2:5e4b with SMTP id d9443c01a7336-22a8a05e84fmr162795925ad.16.1744019647625; Mon, 07 Apr 2025 02:54:07 -0700 (PDT) Received: from nuvole.. ([144.202.86.13]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-229785bfddfsm77213805ad.66.2025.04.07.02.53.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 07 Apr 2025 02:54:07 -0700 (PDT) From: Pengyu Luo To: Jianhua Lu , Lee Jones , Daniel Thompson , Jingoo Han , Pavel Machek , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Helge Deller Cc: dri-devel@lists.freedesktop.org, linux-leds@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-fbdev@vger.kernel.org, Pengyu Luo Subject: [PATCH 3/4] backlight: ktz8866: improve current sinks setting Date: Mon, 7 Apr 2025 17:51:18 +0800 Message-ID: <20250407095119.588920-4-mitltlatltl@gmail.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250407095119.588920-1-mitltlatltl@gmail.com> References: <20250407095119.588920-1-mitltlatltl@gmail.com> Precedence: bulk X-Mailing-List: linux-fbdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 I polled all registers when the module was loading, found that current sinks have already been configured. Bootloader would set when booting. So checking it before setting the all channels. Signed-off-by: Pengyu Luo --- drivers/video/backlight/ktz8866.c | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/drivers/video/backlight/ktz8866.c b/drivers/video/backlight/ktz8866.c index 017ad80dd..b67ca136d 100644 --- a/drivers/video/backlight/ktz8866.c +++ b/drivers/video/backlight/ktz8866.c @@ -46,6 +46,8 @@ #define LCD_BIAS_EN 0x9F #define PWM_HYST 0x5 +#define CURRENT_SINKS_MASK GENMASK(5, 0) + struct ktz8866_slave { struct i2c_client *client; struct regmap *regmap; @@ -65,6 +67,12 @@ static const struct regmap_config ktz8866_regmap_config = { .max_register = REG_MAX, }; +static inline void ktz8866_read(struct ktz8866 *ktz, unsigned int reg, + unsigned int *val) +{ + regmap_read(ktz->regmap, reg, &val); +} + static void ktz8866_write(struct ktz8866 *ktz, unsigned int reg, unsigned int val) { @@ -112,11 +120,18 @@ static void ktz8866_init(struct ktz8866 *ktz) { unsigned int val = 0; - if (!of_property_read_u32(ktz->client->dev.of_node, "current-num-sinks", &val)) + if (!of_property_read_u32(ktz->client->dev.of_node, "current-num-sinks", &val)) { ktz8866_write(ktz, BL_EN, BIT(val) - 1); - else - /* Enable all 6 current sinks if the number of current sinks isn't specified. */ - ktz8866_write(ktz, BL_EN, BIT(6) - 1); + } else { + /* + * Enable all 6 current sinks if the number of current + * sinks isn't specified and the bootloader didn't set + * the value. + */ + ktz8866_read(ktz, BL_EN, &val); + if (!(val && CURRENT_SINKS_MASK)) + ktz8866_write(ktz, BL_EN, CURRENT_SINKS_MASK); + } if (!of_property_read_u32(ktz->client->dev.of_node, "kinetic,current-ramp-delay-ms", &val)) { if (val <= 128) From patchwork Mon Apr 7 09:51:19 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Pengyu Luo X-Patchwork-Id: 878778 Received: from mail-pl1-f181.google.com (mail-pl1-f181.google.com [209.85.214.181]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7EE7022FF21; Mon, 7 Apr 2025 09:54:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.181 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744019660; cv=none; b=chUX3Fp4gDgc+lZzU433LCwdlQ0WKPxfqrY0f4F3QMyuR1Uxmq10wiNhtGSvA7kpEVD3XZ5TF4gEao+CJZa27iDaZi4iQzA+AH1yA+Q+R6LI0MuEl8e3OW03mtTskPuZqbIyDkCeRTR2sjWkdh2RIKgzzYOxXGEAzBOt+I59UsE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744019660; c=relaxed/simple; bh=U16ykuJVW+RZ2Mtnpc0kC6WlrFpzsu8T5Gn3Qu7BLgQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=uy8OmQMFFX0HIiPo32xgZ0Ali6XVijbcNpLV4/4LbIuIIfH6E14OlnCa22WyYOO/NN8vsf6XxRp20t+/vHlH35JQHn8HUZ8C6SqlGbLMrwmW1trMSgQlFiK8vZfCxryEYH0hHrzdEHite25wdONR0zQxGVdWw3V03Yf7CtyExLY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=cZD9/+jl; arc=none smtp.client-ip=209.85.214.181 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="cZD9/+jl" Received: by mail-pl1-f181.google.com with SMTP id d9443c01a7336-2295d78b433so36905685ad.2; Mon, 07 Apr 2025 02:54:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1744019658; x=1744624458; darn=vger.kernel.org; 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=LkqbTBwPGVLrWizLUawPs+MSKpssOAtGiDagVUV4NJ4=; b=cZD9/+jlbP6IlZPtiInB6s64EYv7fbSsqD2Iqxzjc42i/E5k3gh8gyWMAFX00McSVA DKnac0aVy26/zwgaGqR/wRGdxdURbuSbSJXlLmpgRxdOZoapBvrmdtM7hWqoDG8e9O4a +fc6s2YBWtFPSyzm4y9IYWJwUbbBMzb53/ZDyt+K0dvsONe9cU4tSmEKY+FzbsrY9TXN Che+R4QJHx9JlyCqe0RvcFTkWjWqe0iBR2Cjes6OzFoCaemjEVD1/ZNwhIbnRoIOAIIy 0IEv+zkv7aKoWJ59AueSGxmf1ObETA1Vfvn9QJo7SD+ozxrYRrPGN/YTR0ZO1B3sJZQz xfjA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744019658; x=1744624458; 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=LkqbTBwPGVLrWizLUawPs+MSKpssOAtGiDagVUV4NJ4=; b=oHxApk9jZrSFwlzg39YzNXeTjHjKnpfXJDpHSxfOGm6QLWXSJ1G6UzagWBJNK5sjLZ XcvNW+l+3Ur9ATupSnZwonxWeuuZuoXaqoVwVrwSpT5R2CXT2KbVtrU70qqPxn2L/SOQ pIeyn0w2v+tIi7d43dgeBfbgY3E/4fD9TG58/5hXUhPPYg/7hBsmm4D4Z02zSn5pPJ4w prXHWu7pM8zBePE/PTwnlmmlxI1iaqwoMr6hxe+MSeKkqBeY3CMeeWgQk7VLLSpAXum+ vmcnuFFPlz3Tv/rwat5ZtI1rF3kvIpWNdq47UT2qVFYLlF13+svnUZfV8vTnctXB7JFW REWw== X-Forwarded-Encrypted: i=1; AJvYcCUWAzVNs8sYAXMZ1UsLj/I6nFtVrqFQ4Fa1tXs8NNIHwntBsszuhmDG1/+ovPfbxyTdjb70fRJA0OEe@vger.kernel.org, AJvYcCVawFQdheiTzNkozB9KzAtSxUMrPi6GNqTU4MCf2+nQ+cpH9NFV9smVvUs+sFzTAg5ftIqKcc5AveaaVeo=@vger.kernel.org, AJvYcCWKR1/elTRLd6bt1eGw1VGYy/3XozAS1BVipeb86FSK05Dtx2psrAoh3/OYUisgAkvJuhJmLS8ouChrXg==@vger.kernel.org, AJvYcCWQ2/l3XcqF08POv1+QiGnEVp5zb8jVSjmrCE4DUuwe/hqP5c7E3tzp4eMRT70ZS27uvHg0vHKt86zHW4FV@vger.kernel.org X-Gm-Message-State: AOJu0Yw9DoXvZ2Gu8GvDw2NgZr04kJQ1914p/DfVZ55g5FN2ez+fdNyl 4X5gYh8aRFuPefRN6J6V8df/XhY62WC6n1UjCTlIJ6jyrwWfJ1Qn X-Gm-Gg: ASbGnctbd8jVnYuWwyr6wGEoO0o5JdTwXMtS3ObDtYMWNzZwSVuYNvmiaSGSlHdq91J RzgC9GTtOPhrij2saeGvr0jOP8DwfBeWR4IRWy3eOwKwK5PBAgRTi9P8S2o8HR4YEgbYA7wODSX xy+zkvoRnb1aujdh1RCcutUY91xAPEpryQRapZ96gWwQwCTQBkox9mdJrwzai6TAA98Bz34Xu07 6P5YbFg23veggtviStrtivkqpJTTuhlnzmqOfEjtsHq9YaT0l9O+w8e3qmb8ylMboY6aLkWCMcm TjV2u62+hw3jdh/NkT1wo09TbgegLqtxhN74yQTACWE= X-Google-Smtp-Source: AGHT+IH9E8XsbCxLfsVsslPNMo/cSHYFTOjiDQDxMCuBzObL12vZxjJVRmA/QuSkAieMl45UO5T2kA== X-Received: by 2002:a17:903:2ce:b0:215:9bc2:42ec with SMTP id d9443c01a7336-22a8a0b3744mr133132005ad.47.1744019657677; Mon, 07 Apr 2025 02:54:17 -0700 (PDT) Received: from nuvole.. ([144.202.86.13]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-229785bfddfsm77213805ad.66.2025.04.07.02.54.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 07 Apr 2025 02:54:16 -0700 (PDT) From: Pengyu Luo To: Jianhua Lu , Lee Jones , Daniel Thompson , Jingoo Han , Pavel Machek , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Helge Deller Cc: dri-devel@lists.freedesktop.org, linux-leds@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-fbdev@vger.kernel.org, Pengyu Luo Subject: [PATCH 4/4] backlight: ktz8866: add definitions to make it more readable Date: Mon, 7 Apr 2025 17:51:19 +0800 Message-ID: <20250407095119.588920-5-mitltlatltl@gmail.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250407095119.588920-1-mitltlatltl@gmail.com> References: <20250407095119.588920-1-mitltlatltl@gmail.com> Precedence: bulk X-Mailing-List: linux-fbdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 LSB, MSB and their handling are slightly confused, so improve it. Signed-off-by: Pengyu Luo --- drivers/video/backlight/ktz8866.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/drivers/video/backlight/ktz8866.c b/drivers/video/backlight/ktz8866.c index b67ca136d..5364ecfc0 100644 --- a/drivers/video/backlight/ktz8866.c +++ b/drivers/video/backlight/ktz8866.c @@ -24,7 +24,9 @@ #define DEVICE_ID 0x01 #define BL_CFG1 0x02 #define BL_CFG2 0x03 +/* least significant byte */ #define BL_BRT_LSB 0x04 +/* most significant byte */ #define BL_BRT_MSB 0x05 #define BL_EN 0x08 #define LCD_BIAS_CFG1 0x09 @@ -47,6 +49,8 @@ #define PWM_HYST 0x5 #define CURRENT_SINKS_MASK GENMASK(5, 0) +#define LOWER_BYTE GENMASK(2, 0) +#define HIGHER_BYTE GENMASK(10, 3) struct ktz8866_slave { struct i2c_client *client; @@ -105,8 +109,8 @@ static int ktz8866_backlight_update_status(struct backlight_device *backlight_de } /* Set brightness */ - ktz8866_write(ktz, BL_BRT_LSB, brightness & 0x7); - ktz8866_write(ktz, BL_BRT_MSB, (brightness >> 3) & 0xFF); + ktz8866_write(ktz, BL_BRT_LSB, FIELD_GET(LOWER_BYTE, brightness); + ktz8866_write(ktz, BL_BRT_MSB, FIELD_GET(HIGHER_BYTE, brightness); return 0; }