From nobody Tue Apr 7 21:43:42 2026 Received: from mail-wm1-f53.google.com (mail-wm1-f53.google.com [209.85.128.53]) (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 0A9D83E1CE0 for ; Wed, 11 Mar 2026 16:21:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.53 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773246068; cv=none; b=L2gT8b5KgfyJjT79v9KcHPgei/E7NMhhq1RhYWq1rhD0NrygJ5pmU6CzQIJppkfwzcRL/Vy32BkUO7pSj2kgccTKrPZt+03okV97BKF7alzX4BQhVFhtDyx2vWxMMlR09HntuvbGYKZoa5Ko3DAFmzFOHEILWasJ4xUTqoh+358= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773246068; c=relaxed/simple; bh=HrT7kgAxAewbIt6oxfECG5Zscpfe57igzugyy1/fdnU=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=usMVT5bg/Tq9qcoNbaap5bWtARKjeIj3HHBv8+07fVDOIz+omTJ5NFEN964xXNMhZSlaoShDQa1HCMZKwbohkqbTZem9Afdw0RJgnfo1tpe/FuvvzNks68DDJDIAAiGSCE4pMkdBihNAi1o47Aw5nzHeWHK3SSzGABP2EB/Oizc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=flipper.net; spf=pass smtp.mailfrom=flipper.net; dkim=pass (2048-bit key) header.d=flipper.net header.i=@flipper.net header.b=JAsdAk5J; arc=none smtp.client-ip=209.85.128.53 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=flipper.net Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flipper.net Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=flipper.net header.i=@flipper.net header.b="JAsdAk5J" Received: by mail-wm1-f53.google.com with SMTP id 5b1f17b1804b1-4852afd42ceso138945e9.2 for ; Wed, 11 Mar 2026 09:21:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=flipper.net; s=google; t=1773246063; x=1773850863; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=f4c9O2cAKMzdhEw8waFKH8CurVd4+UFa/RS9fIQimTs=; b=JAsdAk5JX5985CUpsu7DDv7aSFC0lhvSK/CZBOarWZMDP9iL9yOHEaqtGzAQ8et+Dg FHo1xoZwLHKbk+LyODfWpZHqJ+2eGqqlUa/TWLlwaxm2ZvZjeaRym2n8dIQaAoUp6bvY ojpkp3sUzTY7nmwhfp5Wnetuu7eDjPMFMVYo0atQeo8xH+4LB08D1al+FJYdaUP24f0y FqZCYJOKmkq1uy5ANyaHnFHceEKAs1OV97hyO4KKUZ32a+VUBk2ts/0jxJLbsiVxLEjH 0g8a2CZ7tP085lLip8IAbj/31ErkVU390/EvXTibX7HIhPSokAzNOAiiMimbNxjaTXh5 G0Ww== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773246063; x=1773850863; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=f4c9O2cAKMzdhEw8waFKH8CurVd4+UFa/RS9fIQimTs=; b=LdEH4+CqRCTejQwO0p1HdTyb5Dtp0oOlx1Ky/0TMzDOoHvIEm5OErz6uVu/jFc7Kye IkxR0Paeg3AAeqbTq/0FaZRaJ34Ttwm5QnObRlffvWcKin72qiV58Qd9m3WUr6sJinoq mybv6tW/REdQRhI+dftb+dZ22c0xKuCSv5gaLZBPDJdTNl5BVBQtT1wofBV1o8GGn1cw PnpY6IkbBKRKhG/aN4a+BNtt2pLUTY+S22J4ax45YT8hO+ghkEY488rHdaWeHYr+oRVn XnqT8CodZvm+e+3Qm7Q/BUiK29rG3IMVnMwSvL/yoDqrAdebgPqAK7waI0U7/Uk6Xdm8 AmyA== X-Forwarded-Encrypted: i=1; AJvYcCX2/2+y9NpyNzHgGFwnIz3/+xpzEmLN+XlXdnFpqWHl8ILhG9PDujM5snbLlGxGanU+62fuikUtfI4yEq8=@vger.kernel.org X-Gm-Message-State: AOJu0YzwJ7C6uu7qoToG0LlWepJfYYcQv813VxiYU8kcRStAUYhJHqfm S/L9UkIuZPDf+yVJdq1qtd5l8JATtFHJFc10b0NuWcOx7NZ9X77kSAdSIskBP9puxrI= X-Gm-Gg: ATEYQzxlQVeB+J5x4lwPYGEJoBZTkJJFQmrI5A/QH0wYrCw2DbcWujmW6RSL1FmZSvj QjqvtI7OLcY/LgOLXfOoe5ZpsO4bKUtdhqqElSlRlziDI+xK7B9cN6jSvGUKFnhdLNA9j7478eC BIb4rudEhJxZVme7yeoDsgopfuBkswakPXgfgP63i6nPs5JerwJjLJ1XfKTmcPNCkf9ZKKYjBdy IcXi45uwrfRRZJ1UtIIHbJwVufcC3EzuIz+h+g0yETDgHKA8h6PLORLQOIfN/9mGge2aPpxfrfs tK0f3pRyWg8kBZ3gMPBOSYs078ZkZZHk0vpIMUuwO5BJHUSQCa3H5W4Kaw4MxCBPRIuPIlEVj42 dCI43bNJpceJu9969TLWCw8/gmoneddf6CTiKt9HKvGELZa+hW4IWlENXuKYY4WOk3+8fb5JURX 3syhMzNhiShquAr+p5xy1MRsqa4pg2CoFQIYL8eyyFB7YuHa74ADVbTEakcXD72M0N10QZ/SAQU Uc7sQ== X-Received: by 2002:a05:600c:a08:b0:485:2c61:9459 with SMTP id 5b1f17b1804b1-4854b0afb48mr55832705e9.8.1773246062266; Wed, 11 Mar 2026 09:21:02 -0700 (PDT) Received: from alchark-surface.localdomain (bba-86-98-192-109.alshamil.net.ae. [86.98.192.109]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-439fe20b899sm283952f8f.23.2026.03.11.09.20.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 11 Mar 2026 09:21:02 -0700 (PDT) From: Alexey Charkov Date: Wed, 11 Mar 2026 20:20:46 +0400 Subject: [PATCH 3/4] usb: typec: tcpci_rt1711h: Add support for Hynetek HUSB311 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260311-husb311-v1-3-f25bcb58cff7@flipper.net> References: <20260311-husb311-v1-0-f25bcb58cff7@flipper.net> In-Reply-To: <20260311-husb311-v1-0-f25bcb58cff7@flipper.net> To: Rob Herring , Krzysztof Kozlowski , Conor Dooley , Heikki Krogerus , Greg Kroah-Hartman , Gene Chen , Heiko Stuebner Cc: Sebastian Reichel , devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, Alexey Charkov X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=2922; i=alchark@flipper.net; h=from:subject:message-id; bh=HrT7kgAxAewbIt6oxfECG5Zscpfe57igzugyy1/fdnU=; b=owGbwMvMwCW2adGNfoHIK0sZT6slMWRunJZ8Xvo8a6G29Pt9y2ZnbMsOT3v6o1DwLpPF+qncG 46+3fkqomMiC4MYF4OlmCLL3G9LbKca8c3a5eHxFWYOKxPIEGmRBgYgYGHgy03MKzXSMdIz1TbU MzTUMdYxYuDiFICpLhRnZDhZ2FHxqOH18XsqpruYj9qKnZDZxPzhXs1q9nXGBz4cX+7M8D/VWbL zVPjuF3sq27Jtrhv8nzvbSLKUeQfDyfI9OT6bb3MDAA== X-Developer-Key: i=alchark@flipper.net; a=openpgp; fpr=9DF6A43D95320E9ABA4848F5B2A2D88F1059D4A5 HUSB311 is a pin-compatible and register-compatible drop-in replacement for RT1711H, so add its IDs to the existing driver. Link: https://www.hynetek.com/uploadfiles/site/219/news/0863c0c7-f535-4f09-= bacd-0440d2c21088.pdf Link: https://dl.xkwy2018.com/downloads/RK3588S/03_Product%20Line%20Branch_= Tablet/02_Key%20Device%20Specifications/HUSB311%20introduction%2020210526.p= df Signed-off-by: Alexey Charkov --- drivers/usb/typec/tcpm/tcpci_rt1711h.c | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/drivers/usb/typec/tcpm/tcpci_rt1711h.c b/drivers/usb/typec/tcp= m/tcpci_rt1711h.c index 88c50b984e8a..ac5917c1e253 100644 --- a/drivers/usb/typec/tcpm/tcpci_rt1711h.c +++ b/drivers/usb/typec/tcpm/tcpci_rt1711h.c @@ -18,6 +18,9 @@ #include #include =20 +#define HUSB311_VID 0x2E99 +#define HUSB311_PID 0x0311 +#define HUSB311_DID 0x0000 #define RT1711H_VID 0x29CF #define RT1711H_PID 0x1711 #define RT1711H_DID 0x2171 @@ -55,6 +58,8 @@ =20 struct rt1711h_chip_info { u32 rxdz_sel; + u16 vid; + u16 pid; u16 did; bool enable_pd30_extended_message; }; @@ -308,14 +313,14 @@ static int rt1711h_check_revision(struct i2c_client *= i2c, struct rt1711h_chip *c ret =3D i2c_smbus_read_word_data(i2c, TCPC_VENDOR_ID); if (ret < 0) return ret; - if (ret !=3D RT1711H_VID) { + if (ret !=3D chip->info->vid) { dev_err(&i2c->dev, "vid is not correct, 0x%04x\n", ret); return -ENODEV; } ret =3D i2c_smbus_read_word_data(i2c, TCPC_PRODUCT_ID); if (ret < 0) return ret; - if (ret !=3D RT1711H_PID) { + if (ret !=3D chip->info->pid) { dev_err(&i2c->dev, "pid is not correct, 0x%04x\n", ret); return -ENODEV; } @@ -405,17 +410,28 @@ static void rt1711h_remove(struct i2c_client *client) tcpci_unregister_port(chip->tcpci); } =20 +static const struct rt1711h_chip_info husb311 =3D { + .vid =3D HUSB311_VID, + .pid =3D HUSB311_PID, + .did =3D HUSB311_DID, +}; + static const struct rt1711h_chip_info rt1711h =3D { + .vid =3D RT1711H_VID, + .pid =3D RT1711H_PID, .did =3D RT1711H_DID, }; =20 static const struct rt1711h_chip_info rt1715 =3D { .rxdz_sel =3D RT1711H_BMCIO_RXDZSEL, + .vid =3D RT1711H_VID, + .pid =3D RT1711H_PID, .did =3D RT1715_DID, .enable_pd30_extended_message =3D true, }; =20 static const struct i2c_device_id rt1711h_id[] =3D { + { "husb311", (kernel_ulong_t)&husb311 }, { "rt1711h", (kernel_ulong_t)&rt1711h }, { "rt1715", (kernel_ulong_t)&rt1715 }, {} @@ -423,6 +439,7 @@ static const struct i2c_device_id rt1711h_id[] =3D { MODULE_DEVICE_TABLE(i2c, rt1711h_id); =20 static const struct of_device_id rt1711h_of_match[] =3D { + { .compatible =3D "hynetek,husb311", .data =3D &husb311 }, { .compatible =3D "richtek,rt1711h", .data =3D &rt1711h }, { .compatible =3D "richtek,rt1715", .data =3D &rt1715 }, {} --=20 2.52.0