From nobody Mon Jun 29 15:59:43 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id B780AC433F5 for ; Tue, 8 Feb 2022 08:22:23 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1349372AbiBHIWW (ORCPT ); Tue, 8 Feb 2022 03:22:22 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53276 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1349401AbiBHIVy (ORCPT ); Tue, 8 Feb 2022 03:21:54 -0500 Received: from APC01-PSA-obe.outbound.protection.outlook.com (mail-psaapc01on2110.outbound.protection.outlook.com [40.107.255.110]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 00EB3C03E95E; Tue, 8 Feb 2022 00:21:16 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=lJbSRC2rDn5/fKCTv/ApTQ/Kju1TpAQ+thjhK0L3nfV5ZnltdE7uRnUFrpqcjap7QRVzom+Fj4asNT6uTBJcWNb9A++klza9fWJZENmCuk/lb0ygtWF7vJ3+DAudemCFnXdorTQOJX/qBljeWaZ6zcv2KPJDj2+RzcrjvBkkthJYhkE53q9LqKjZ3kdTnxQFrVlwzc+JWA7kPOYGsVilvlyyPcpxjtgfl+NsS7kAOjjARK80O1t41DE3NEPKm3E3dZ3BCwIFxxDgP/Drshz9mSTaBXpYNbQD67ZkIz/k2F7LAve6gm4f9L5L60tjw8+YZLI6l8MKwLy6YKpQ+ogXig== 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=UYJaKg28B6zoRTJXO1MWDAZK5xVdTJW1cs5JYv/Zggc=; b=U+uqINrBCvSQYWidRPo8TQ8gnYUxgjEKaWGX/V2tfRNvgDI7pUQQ7a7xgtrdYMXxmLbziapRSsv5bRNfnXlP/O7gng+r2OyWEIBIMsepMCljiCfIGK9TcSGzGtvQq4Kjgi2iEfMCjSk+F8qN9SS/FqCDBcXMh9AhekCDGn0UeroSRvW1TwBWpS57t9Y1WmD/sOjWsX9knmF9a5wSMFaXvTfSorRvShT7zoJh5LAuRYNh7nRrg9iQSyrwz74n5S6Ugb480bU+Hs/M0ElW8IzYAh/Yhisg4Gufhyf4c11cFBgTjeQtK7KqvK6/5by2iCLbGQ7sy3jcfeDVi3f1h3fX1g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quantacorp.onmicrosoft.com; s=selector2-quantacorp-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=UYJaKg28B6zoRTJXO1MWDAZK5xVdTJW1cs5JYv/Zggc=; b=PHwB+hUjez0On6xTemg7EiTiE6K4P2BQ0wV8W6w0nprN7yIruNTKXGZ940+DuODKl0+jl/b4v7fNSa2kU7FiKYrbJffLKWG+E+NtrPdc2gmbtHUMdHBZWxbJx6L08OSspicNZrxoPK85vWFC/HJmB+JwZS2o2S0dZ9pqYWIagrc= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=quantatw.com; Received: from HK0PR04MB3282.apcprd04.prod.outlook.com (2603:1096:203:89::17) by TYZPR04MB5735.apcprd04.prod.outlook.com (2603:1096:400:1f9::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4951.12; Tue, 8 Feb 2022 08:21:13 +0000 Received: from HK0PR04MB3282.apcprd04.prod.outlook.com ([fe80::8160:1a0:97e1:9e53]) by HK0PR04MB3282.apcprd04.prod.outlook.com ([fe80::8160:1a0:97e1:9e53%3]) with mapi id 15.20.4951.019; Tue, 8 Feb 2022 08:21:13 +0000 From: Potin Lai To: Guenter Roeck , Heikki Krogerus , Greg Kroah-Hartman Cc: linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org, Patrick Williams , Potin Lai Subject: [PATCH 1/2] usb: typec: tcpm: add interface for passing supported_pd_rev from tcpc_dev Date: Tue, 8 Feb 2022 16:20:25 +0800 Message-Id: <20220208082026.4855-2-potin.lai@quantatw.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20220208082026.4855-1-potin.lai@quantatw.com> References: <20220208082026.4855-1-potin.lai@quantatw.com> X-ClientProxiedBy: HK2PR02CA0148.apcprd02.prod.outlook.com (2603:1096:202:16::32) To HK0PR04MB3282.apcprd04.prod.outlook.com (2603:1096:203:89::17) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 39853ba7-4a82-4f9f-d1a0-08d9eadbf86b X-MS-TrafficTypeDiagnostic: TYZPR04MB5735:EE_ X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:7219; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 4+y4pLwGLxzdtImldH7hGsLfmho3hTCPHUfj0zKtTOdAHp8dJiLXEMjjorykyRE9zADiYdRmDvxO5ImStMV/7Yo7c26RGw0dF38nL9w4j35c+TY/BIuy0Gq4Lqa2SjV3jzYmIgEXK+TvkjqJPEHzY0ACI4JdDd6U3fCPtq4QfQ28S57ntZHc0rmrRmlMYxnVAPXkWv1KKsL102jVCNFnWHK/QmQrLQrWsKZh98XSZWVTN6TZsexydKyA74A/+aAujA7gRfKbtVCL7T7EdC3j51sS4PRZvhERto0HPBC6F08MDeHF8tMGZBFiyrIztXAKECqNi0Gbqc5jjJ3/YtROMZoRzdnvGSTxUhs2vde1wUgrHYmgo7oojzk5UI5OSjGYESDjVjk6yydRWUkdCQ+6i3dSFRXXm9n2m5SEREqpsPpyNH/uHs3e1S4QnT+w3pvyNpHAnOUZHsgjGvcpfFFAv1jOxXZwUemizD7YVqaFa6giwxkDtbPhpvxI42Rg4Ce5Ur1P74ByoPi0AxDeGmQm2A1ACx9NLYVhMH23DNiGSiD6CX581ejlK++q8vIvspQuQbUNnky7fYule3Py8YSaur2x4up01gGwBJYhkC1/K1vTJjcUJVnqcrWMmo8lWJnZyB4yr7AUto2zz1RLGCZ7odA0qCCZl5GmQJrdxUZnfizamwWJmxTLiyCSuWDaXlb3/vakyeFwUmV1Cz7BiTYnwQ== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:HK0PR04MB3282.apcprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(4636009)(366004)(4326008)(83380400001)(8676002)(8936002)(36756003)(316002)(5660300002)(66946007)(66556008)(66476007)(6506007)(44832011)(86362001)(2906002)(38100700002)(38350700002)(6666004)(508600001)(52116002)(110136005)(54906003)(6486002)(1076003)(186003)(107886003)(26005)(6512007)(2616005);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?MeBuOigpU3FNFHWSLnx755ix+B/eDFC1cDb1LEjmuVwsjuKFbcdpggDJwxz8?= =?us-ascii?Q?SqezXeQi7oRBQZ7sCexrRw1Mw5V3+zIv5yzKzFr/pLSqna/BuzjtpCC+OfFH?= =?us-ascii?Q?zEHWVGBcHdJXhi+McCHxthc1+G6UdT0rqJ7CqAXA6NZXWt9S4fVUV1paDRxU?= =?us-ascii?Q?OyX5SGvq+HgQSl3JijGIx1oKbo/8ZWGcdTAXdwXrWdGftCpDJPKhXbiiMsz8?= =?us-ascii?Q?7Nbw2abAY3NItpV7WsepvfazRUoD2tqDJdlGKiWaEI8QC1iwbY32KtLp+SJS?= =?us-ascii?Q?nf91TNq3Cgp1440qnHVmS/q155ncu0F4ZA8oO+AEI2hMALMzDQSsWfcU6iOc?= =?us-ascii?Q?ZdTbZZOY3NvJNBVaA8okAvTj0BtZtPuryawJa7HgZLmt5lhaQgDShHwLidvN?= =?us-ascii?Q?JOQ1fR/j1HbsnqQfVpr4ysdt8rC+/g28pFcecylK7BJOQqU0xH59/wxM2WU9?= =?us-ascii?Q?VHnSbK+yWzZeF22oj5aZNzqg4W8nXw7GQ1/clOfNk5tf+kgRisyeeXbdqqlL?= =?us-ascii?Q?IUhb501oQeAZxfbCe+mEPamsvtXCUyeNTcoef0QtLQYdQwtkhl1Q76K0dvJh?= =?us-ascii?Q?wt8WqID8hv9jm0XNHFtojjgeCWgPFt8JIk2Wf47ek6KAH0nb91O4gYydGkqQ?= =?us-ascii?Q?Be/PgpSTWqrNcmNTTz0QB0pvOUG3QHqKkHOReP43tkhnCrPNKAT2/SGsOot/?= =?us-ascii?Q?/zCIUc24Ek5PDgd+IntCajlSaV0EZ+Rfl7LIUf70T2ItjwAMR2pEBtn3gzpT?= =?us-ascii?Q?Pe0gRvgc/zGKjdz6YOc4lyTRrNL0UpakqnnYW44p/Le4fBgZn/8U8KnzemCU?= =?us-ascii?Q?uKAGEGvmdOp2P+V0SGVqtuhAnUJ543lV90z0ObHdEWchHc8xks6MquB9NEYf?= =?us-ascii?Q?I2WYGprvQzhmA63dFHNB/E9j4c7cVz5QbjSJ4DRLYi1K3R6HLHU9Z4ijnhE9?= =?us-ascii?Q?BRdaAopx6+XlHiGzgRbkT71w9SquPp7FTEujvSTQzfVUm2FGN6SkzexM/Vkg?= =?us-ascii?Q?Ah/e1F/DAle5Gyiih+QXLNcbeU2AMy2CCpbCDBnUb6QpMOvXXwsMJDOsSZjJ?= =?us-ascii?Q?nqZYmpoI/9sHRaWx0cc3uN/ZhVP34W2qDVZJTC3LirCZNVlWg5DZjJ2jG3d4?= =?us-ascii?Q?qmreN2MJmJL1Dds9Y0WqtVMprZ4nGgt4HDZvzrkHUv9B0sZnNcoF+JO0w0Ox?= =?us-ascii?Q?Y0x6/DvKBAdY5wWpUNe0VoJS2pJAB4KF5js/IxFY38ztDYz3bc/lxcSHen/d?= =?us-ascii?Q?Qd2Pd3zx3ZsJVovD3nk2ivSFU1+gGBstqxgfbINM7KAxvOP0GhvWmKCP7u6K?= =?us-ascii?Q?JODh7rHYmjNAyEKVDFE+iopQ0f3KYzvGMXd2byraxMZXZFv5p5r44+4bImAC?= =?us-ascii?Q?hApBZcmXE7d3k44SY1xf5ymm1Me5q4xYQGWQHoXoZfE7CiTJsxsOROpZl5e4?= =?us-ascii?Q?+rznKS5+9rbi3lCD2WduRRlG0XeSqpX+XKv4E1+4C0Y0h1Rb9J2WTj//gICg?= =?us-ascii?Q?mM4h6DMGWPFjaLwYtJmKGJGXXn9rk1IlTwUAxYIliIwoAqnJ31plW8dl75Gv?= =?us-ascii?Q?VfVY+Exr3h+W1w8rPh3Itb1tQ+/x7ukMbaw4eoC//jCU6Jnhxy7kFSzzwaLV?= =?us-ascii?Q?gVCRw9D2wzlfhlLaQWGitGM=3D?= X-OriginatorOrg: quantatw.com X-MS-Exchange-CrossTenant-Network-Message-Id: 39853ba7-4a82-4f9f-d1a0-08d9eadbf86b X-MS-Exchange-CrossTenant-AuthSource: HK0PR04MB3282.apcprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Feb 2022 08:21:13.6970 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 179b0327-07fc-4973-ac73-8de7313561b2 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: adWIdN9p4V/AS0O0ofwyI2oPPym9bt4Md+6P7y2rLdJFLI9ZOLY4L3R2cAW3sMzXcd5kCws2zosLupv7kRwGgw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYZPR04MB5735 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Current TCPM allways assume using PD_MAX_REV for negotiation, but for some USB controller only support PD 2.0, adding an interface for passing supported_pd_rev from tcpc_dev. Signed-off-by: Potin Lai --- drivers/usb/typec/tcpm/tcpm.c | 14 ++++++++++++-- include/linux/usb/tcpm.h | 4 ++++ 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/drivers/usb/typec/tcpm/tcpm.c b/drivers/usb/typec/tcpm/tcpm.c index 59d4fa2443f2..31770fa8643d 100644 --- a/drivers/usb/typec/tcpm/tcpm.c +++ b/drivers/usb/typec/tcpm/tcpm.c @@ -571,6 +571,16 @@ static bool tcpm_port_is_disconnected(struct tcpm_port= *port) port->cc2 =3D=3D TYPEC_CC_OPEN))); } =20 +static u32 tcpm_pd_supported_rev(struct tcpm_port *port) +{ + u32 rev =3D PD_MAX_REV; + + if (port->tcpc->supported_pd_rev) + rev =3D port->tcpc->supported_pd_rev(port->tcpc); + + return (rev > PD_MAX_REV) ? PD_MAX_REV : rev; +} + /* * Logging */ @@ -3932,7 +3942,7 @@ static void run_state_machine(struct tcpm_port *port) typec_set_pwr_opmode(port->typec_port, opmode); port->pwr_opmode =3D TYPEC_PWR_MODE_USB; port->caps_count =3D 0; - port->negotiated_rev =3D PD_MAX_REV; + port->negotiated_rev =3D tcpm_pd_supported_rev(port); port->message_id =3D 0; port->rx_msgid =3D -1; port->explicit_contract =3D false; @@ -4167,7 +4177,7 @@ static void run_state_machine(struct tcpm_port *port) port->cc2 : port->cc1); typec_set_pwr_opmode(port->typec_port, opmode); port->pwr_opmode =3D TYPEC_PWR_MODE_USB; - port->negotiated_rev =3D PD_MAX_REV; + port->negotiated_rev =3D tcpm_pd_supported_rev(port); port->message_id =3D 0; port->rx_msgid =3D -1; port->explicit_contract =3D false; diff --git a/include/linux/usb/tcpm.h b/include/linux/usb/tcpm.h index bffc8d3e14ad..36282b2a9d9c 100644 --- a/include/linux/usb/tcpm.h +++ b/include/linux/usb/tcpm.h @@ -114,6 +114,9 @@ enum tcpm_transmit_type { * Optional; The USB Communications Capable bit indicates if = port * partner is capable of communication over the USB data lines * (e.g. D+/- or SS Tx/Rx). Called to notify the status of th= e bit. + * @supported_pd_rev: + * Optional; TCPM call this function to get supported PD reve= sion + * from lower level driver. */ struct tcpc_dev { struct fwnode_handle *fwnode; @@ -148,6 +151,7 @@ struct tcpc_dev { bool pps_active, u32 requested_vbus_voltage); bool (*is_vbus_vsafe0v)(struct tcpc_dev *dev); void (*set_partner_usb_comm_capable)(struct tcpc_dev *dev, bool enable); + u32 (*supported_pd_rev)(struct tcpc_dev *dev); }; =20 struct tcpm_port; --=20 2.17.1 From nobody Mon Jun 29 15:59:43 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 7AC4FC433EF for ; Tue, 8 Feb 2022 08:22:29 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1349432AbiBHIW2 (ORCPT ); Tue, 8 Feb 2022 03:22:28 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54462 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1349344AbiBHIV4 (ORCPT ); Tue, 8 Feb 2022 03:21:56 -0500 Received: from APC01-PSA-obe.outbound.protection.outlook.com (mail-psaapc01on2110.outbound.protection.outlook.com [40.107.255.110]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8C376C03E965; Tue, 8 Feb 2022 00:21:19 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=gVvVK411rfi5211gggMZxVdSUG+EKvRGAdULK44KsHeoDixQfFDMLQGWgfNiXjw759zGVgF1EeTxR/Vvu9hunfW54ca07utaybNceOrH9bS8rkHQ3uvw9CROel6c+anpTgeN7rpaaJaVNoLdhpGYGq4W1MfBHF+3c3SVCyHwPK4V3GW6SlXlVJvT3edDHvRuHnl9aPRVz3JpEIQwN46/gbJzFVKyVJ36tiyJOeVlRzdPiyeb93p8DcCpDhQTQANRsX2cgz8dHCmRO2WlAgMgQadYCtt5nkFulxRLoT8UM412JgWC0wgCppMonRFmLQTVlDviFkpkd0+PphNlb2Rc1g== 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=kgkJPhZdxaN4k8YfU7okIPfT6UEZXl2XOC5ZCMGyn84=; b=gWDUraLGTxFlg00DRBrq1QH4Goz8dv8VHQ8K009gN8NP03N1uRSeZz8SYG4riV9HUn38QXdtX6Ro2QwW1iyx28YBwTaUhOi0sYbcApQSDJ23ymCo54Tc/N/8kTw3VITHccwKU4Q2QmO07gnEWCP1edojpTuVSUn/mLGzchPdRyaED9feER+e/V7b2sUMITHuz1LPi2+IJNJHvUPzLG9g5/mAOHcYHriLFHbTpwFof0WWY1pJf/2dZLaCL0dn3japa2h318cDolnheoSMi9A0Nd8nRNhuOyrWU24ftT9G13DtV7GzW408I8FcaJGlRovFI2eYUbjfZcj9QKaNyq0fcA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quantacorp.onmicrosoft.com; s=selector2-quantacorp-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=kgkJPhZdxaN4k8YfU7okIPfT6UEZXl2XOC5ZCMGyn84=; b=BpOS+0AHZp3oMD60tIbhMtVdH/SR/pe7IqQQITyTHxPwV3p9efomJJB5R3NcjpfpNnVQ3Zzw/vOHVx9R5A2TOiZVpV/bNLNWdbvkwYRJedK0xDAJcokgGX388iwkjts7rO8ANw/eigRLniiezKZDuxV3vJ4a7Q82HkdWr7mzi0k= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=quantatw.com; Received: from HK0PR04MB3282.apcprd04.prod.outlook.com (2603:1096:203:89::17) by TYZPR04MB5735.apcprd04.prod.outlook.com (2603:1096:400:1f9::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4951.12; Tue, 8 Feb 2022 08:21:18 +0000 Received: from HK0PR04MB3282.apcprd04.prod.outlook.com ([fe80::8160:1a0:97e1:9e53]) by HK0PR04MB3282.apcprd04.prod.outlook.com ([fe80::8160:1a0:97e1:9e53%3]) with mapi id 15.20.4951.019; Tue, 8 Feb 2022 08:21:18 +0000 From: Potin Lai To: Guenter Roeck , Heikki Krogerus , Greg Kroah-Hartman Cc: linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org, Patrick Williams , Potin Lai Subject: [PATCH 2/2] usb: typec: fusb302: add support of supported_pd_rev Date: Tue, 8 Feb 2022 16:20:26 +0800 Message-Id: <20220208082026.4855-3-potin.lai@quantatw.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20220208082026.4855-1-potin.lai@quantatw.com> References: <20220208082026.4855-1-potin.lai@quantatw.com> X-ClientProxiedBy: HK2PR02CA0148.apcprd02.prod.outlook.com (2603:1096:202:16::32) To HK0PR04MB3282.apcprd04.prod.outlook.com (2603:1096:203:89::17) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 74f3b4c7-dc0c-4f37-5b06-08d9eadbfae8 X-MS-TrafficTypeDiagnostic: TYZPR04MB5735:EE_ X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:3044; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 7LFUIIbcAEV8hVIck7gbxRgA8V6YVi4LLdm9G76i/KiMYajEEXrSzgLX67I3V0Dbuj6jymR/6LrMSBHJaMziLN4z7jV+Uo2rQCPM/ZIaKYNLupuC1027wTpiJ6gyLQoOn0++0oLhxzA0kQxj5Yjne1c/hp+80JcrM/1NWFV9DGlG8yjSxs/2CYpPkkuiPcFYlAUnWOgoMhZrh0Op6jlfCQSTmcMab/5LhCQW16NY5aXQr7E+ibAAH7KObGg74E4BKFV9Mmvi+oHmRJvUXt4mBwPZ0cfWDqC5D4wpHyqNBRFbrjxXmXhpMTBo6UzrUXA3gm8DJDhMnPZmV9Ftjp9FxiFh++ipg66TDh5SW6M1DXv3cC8MjAoUmVLOLM04eB0lcDybfV/VmWa91z2F5mIxE46n53GeRr2LFWUmeleGnKUr6tBSWcK9yyyCKjk78Z2f4i1p0IpaACIBblhc5w4sz39Y5wgrUn3jg7ZxTPIkzNKvzPvEPxg7fZ8CkafTorzx6g18nAAfFlctZ3ryIZDY1GQn3HNquIs1fK+LT8wiR1oGwnvjwC4AqUXcrbrrl6N7rWGD7PMxUdEMa30MnxPxHOanQqkDwYjnhwGBAGR71UF33PibFonntqyO/kiRMH/9HT9W/xYOz+SbNSh4cfad+pFmt0W3k4+Dunyf4Prj6ghZqVbwb4lOrrB+D/cPiyPPKoDj5xc6gwK4uzHpdKF7FA== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:HK0PR04MB3282.apcprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(4636009)(366004)(4326008)(83380400001)(8676002)(8936002)(36756003)(316002)(5660300002)(66946007)(66556008)(66476007)(6506007)(44832011)(86362001)(2906002)(38100700002)(38350700002)(6666004)(508600001)(52116002)(110136005)(54906003)(6486002)(1076003)(186003)(107886003)(26005)(6512007)(2616005);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?Dp/IwYyffd04eREJiR0qr4P359VmqIKgTAB2Kilo1+r/4RfgZ3NWSiLcMLfR?= =?us-ascii?Q?e+AhtCO9LdMpVrIEf9P74gdgZH09AdA3bY3kB5R93x5J69XxSJH7ELJhD7wa?= =?us-ascii?Q?5JFAdWg0/of2VhBZADl1JO0UEWxMdJs79dgFALWqnqITBHBGvPz8RIx/8LyZ?= =?us-ascii?Q?WuslMPqS7QXBlRZ0y2YJtjJYMkKbmGU8sgFj+tQp2i7mi6EyN1Al8VglG+oG?= =?us-ascii?Q?5iIVDKK2aQB8LDuOXYL7k/ABuqr55/qIm1yFqRgJWbIHmycbd6vhSohw60pU?= =?us-ascii?Q?RFwzxae4zLTiPqv29tpvn2T4IVXT1iixO87JMB4ogU7hyVuhU4nGu5F1/wF1?= =?us-ascii?Q?QwERK/kzFqz+6KkOT8dJ+GclusX5IIkACZpxjhSZP1aXIrAhUt+5kG1eGx5V?= =?us-ascii?Q?5RlUs12lauFBycCG937rkmsQKHSPdhTDV1oJ1CPKap5LbI/iO3vGW68tIX0x?= =?us-ascii?Q?fTn+uTbnv7VfzxAaWktSiIBna5CugABki1HSOiCdpgTH95IizJ/JYwhHGJnN?= =?us-ascii?Q?ctoGbGAQmgWFtP8Qv9FsvdlUMbhNG+nVyL8fs2MEtmKGOO/m6t+9yYV2QJOD?= =?us-ascii?Q?f+cAuFyxlQ3M6XYdFIvu0Xj+87uMe1i02dokrS2JgsnQX1DUxE4pCWEnPKX2?= =?us-ascii?Q?9NWISQfOp/xhJeQB6h8W/Zrf97f0bmt2Pk+EQO55+URIiPTH1eAB0wPXSRod?= =?us-ascii?Q?zhPDyE2cmBQJLdtaINzHGXxvHa9JpbCfrB11g43adVvmiWj1XrAuwFUmgphf?= =?us-ascii?Q?LAtVTm5Ts/D0iQ5FFJ71BFubzwITPWUe31iYeNh0or6xlzpFQMYHmQdHKNKw?= =?us-ascii?Q?R0WFmplXJizXqHNYOh/bzkeayi9mEPowSzwePLOc2Kt7wXCQAbcFzUM/EpLd?= =?us-ascii?Q?Nf4DH9OT5QnG7Cbtv4QhLrkUm5n3tlFPMK1G8ul5YltkleLDvcnPypfT2EpL?= =?us-ascii?Q?cgqcMRdVFj7CBx16Cblsb5i/1EQ/MyRXfPU4kav/JUmWFh0EzIk0zcx5Vq3j?= =?us-ascii?Q?K/7eyDA7HpVmNe8ukkKry36o9gIVs0LaYlHsIda01RH3BgTrM7uqhrsRTc5O?= =?us-ascii?Q?pVk0LS/QxaqVNVXaLPtakOl6/2tnPA/SpcS0MmBiSCSvfANDUpzD1RWjDD9d?= =?us-ascii?Q?/QuT/p4NpF5BkUjPqvBFp/6GqBXL+s/jWGhG8DJNjOw4b/C7Tv+ASfIQOStc?= =?us-ascii?Q?2TwWSfZvrbsFbEBVkmHeinLzn+pBau21ipVihTy5zv9FpFJUI2583FS/DhxO?= =?us-ascii?Q?189fSVXiFtaPDd17cCbgQEIjT1YX368k1eUS5onRQO51Fxk2N1ePqoDEhDN3?= =?us-ascii?Q?UROi0xOQxZwsUCuCkc7EEr3t09L5QyVE5SsgMTFNFIWYpACRIa0IlzVkzhsx?= =?us-ascii?Q?N5scWhQFfkSwZXoIZYh+hB/0plQSXS9rj5ZOcIMiEP1zXiHqb0ug6wdiMqzz?= =?us-ascii?Q?+/AeV3fS5l2mDKAGGg8bDNN3xZMHuyqAl1+3OLBKatAJKtkVZuQ5rSyaouZB?= =?us-ascii?Q?+YYnGSofbLXqDId49QWUwKhWwHOjxtL943YCkh9xJ4oFkoj7Qz/WLqdEYZf3?= =?us-ascii?Q?j8zl3NggAQIjn1B1Dp5RrFadzXtUwaNmi0BNYBLUVLGNmSpLIhVhv+MfJpoA?= =?us-ascii?Q?wY8rL0ZFSXQ+ex7O/EniXJ0=3D?= X-OriginatorOrg: quantatw.com X-MS-Exchange-CrossTenant-Network-Message-Id: 74f3b4c7-dc0c-4f37-5b06-08d9eadbfae8 X-MS-Exchange-CrossTenant-AuthSource: HK0PR04MB3282.apcprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Feb 2022 08:21:17.8842 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 179b0327-07fc-4973-ac73-8de7313561b2 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: Sc8tnzDqi+otD3Ce884DpRLUAaetE7kSx4zqTUGbVSlVjDAkpeTZS39Bgk4KFAYer1uN+1V8m/WMq1FdvQjX+w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYZPR04MB5735 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Add support for passing supported PD rev to TCPM. If "supported-pd-rev" property exist, then return supported_pd_rev as defined value in DTS, otherwise return PD_MAX_REV Example of DTS: fusb302: typec-portc@22 { compatible =3D "fcs,fusb302"; reg =3D <0x22>; ... supported-pd-rev=3D<1>; // PD_REV20 ... }; Signed-off-by: Potin Lai --- drivers/usb/typec/tcpm/fusb302.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/drivers/usb/typec/tcpm/fusb302.c b/drivers/usb/typec/tcpm/fusb= 302.c index 72f9001b0792..8cff92d58b96 100644 --- a/drivers/usb/typec/tcpm/fusb302.c +++ b/drivers/usb/typec/tcpm/fusb302.c @@ -109,6 +109,9 @@ struct fusb302_chip { enum typec_cc_status cc2; u32 snk_pdo[PDO_MAX_OBJECTS]; =20 + /* supported pd rev */ + u32 supported_pd_rev; + #ifdef CONFIG_DEBUG_FS struct dentry *dentry; /* lock for log buffer access */ @@ -1056,6 +1059,13 @@ static int tcpm_pd_transmit(struct tcpc_dev *dev, en= um tcpm_transmit_type type, return ret; } =20 +static u32 tcpm_supported_pd_rev(struct tcpc_dev *dev) +{ + struct fusb302_chip *chip =3D container_of(dev, struct fusb302_chip, + tcpc_dev); + return chip->supported_pd_rev; +} + static enum typec_cc_status fusb302_bc_lvl_to_cc(u8 bc_lvl) { if (bc_lvl =3D=3D FUSB_REG_STATUS0_BC_LVL_1230_MAX) @@ -1129,6 +1139,7 @@ static void init_tcpc_dev(struct tcpc_dev *fusb302_tc= pc_dev) fusb302_tcpc_dev->set_roles =3D tcpm_set_roles; fusb302_tcpc_dev->start_toggling =3D tcpm_start_toggling; fusb302_tcpc_dev->pd_transmit =3D tcpm_pd_transmit; + fusb302_tcpc_dev->supported_pd_rev =3D tcpm_supported_pd_rev; } =20 static const char * const cc_polarity_name[] =3D { @@ -1683,6 +1694,7 @@ static int fusb302_probe(struct i2c_client *client, struct fusb302_chip *chip; struct i2c_adapter *adapter =3D client->adapter; struct device *dev =3D &client->dev; + struct device_node *np =3D dev->of_node; const char *name; int ret =3D 0; =20 @@ -1756,6 +1768,14 @@ static int fusb302_probe(struct i2c_client *client, dev_err(dev, "cannot request IRQ for GPIO Int_N, ret=3D%d", ret); goto tcpm_unregister_port; } + + if (of_property_read_u32(np, "supported-pd-rev", + &chip->supported_pd_rev) < 0) { + chip->supported_pd_rev =3D PD_MAX_REV; + } else if (chip->supported_pd_rev > PD_MAX_REV) { + chip->supported_pd_rev =3D PD_MAX_REV; + } + enable_irq_wake(chip->gpio_int_n_irq); i2c_set_clientdata(client, chip); =20 --=20 2.17.1