Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/2217234/?format=api
{ "id": 2217234, "url": "http://patchwork.ozlabs.org/api/patches/2217234/?format=api", "web_url": "http://patchwork.ozlabs.org/project/linux-ide/patch/20260327184706.1600329-27-vladimir.oltean@nxp.com/", "project": { "id": 13, "url": "http://patchwork.ozlabs.org/api/projects/13/?format=api", "name": "Linux IDE development", "link_name": "linux-ide", "list_id": "linux-ide.vger.kernel.org", "list_email": "linux-ide@vger.kernel.org", "web_url": null, "scm_url": null, "webscm_url": null, "list_archive_url": "", "list_archive_url_format": "", "commit_url_format": "" }, "msgid": "<20260327184706.1600329-27-vladimir.oltean@nxp.com>", "list_archive_url": null, "date": "2026-03-27T18:47:04", "name": "[v6,phy-next,26/28] phy: include PHY provider header (2/2)", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "c6d6104d727dc4d066e2ceb607d29b5614d04dd6", "submitter": { "id": 75582, "url": "http://patchwork.ozlabs.org/api/people/75582/?format=api", "name": "Vladimir Oltean", "email": "vladimir.oltean@nxp.com" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/linux-ide/patch/20260327184706.1600329-27-vladimir.oltean@nxp.com/mbox/", "series": [ { "id": 497820, "url": "http://patchwork.ozlabs.org/api/series/497820/?format=api", "web_url": "http://patchwork.ozlabs.org/project/linux-ide/list/?series=497820", "date": "2026-03-27T18:46:39", "name": "Split Generic PHY consumer and provider", "version": 6, "mbox": "http://patchwork.ozlabs.org/series/497820/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/2217234/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/2217234/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "\n <linux-ide+bounces-5384-incoming=patchwork.ozlabs.org@vger.kernel.org>", "X-Original-To": [ "incoming@patchwork.ozlabs.org", "linux-ide@vger.kernel.org" ], "Delivered-To": "patchwork-incoming@legolas.ozlabs.org", "Authentication-Results": [ "legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=nxp.com header.i=@nxp.com header.a=rsa-sha256\n header.s=selector1 header.b=C0IIpXv5;\n\tdkim-atps=neutral", "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=172.234.253.10; helo=sea.lore.kernel.org;\n envelope-from=linux-ide+bounces-5384-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)", "smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com\n header.b=\"C0IIpXv5\"", "smtp.subspace.kernel.org;\n arc=fail smtp.client-ip=52.101.84.61", "smtp.subspace.kernel.org;\n dmarc=pass (p=none dis=none) header.from=nxp.com", "smtp.subspace.kernel.org;\n spf=pass smtp.mailfrom=nxp.com", "dkim=none (message not signed)\n header.d=none;dmarc=none action=none header.from=nxp.com;" ], "Received": [ "from sea.lore.kernel.org (sea.lore.kernel.org [172.234.253.10])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fj91Q6bMwz1yFp\n\tfor <incoming@patchwork.ozlabs.org>; Sat, 28 Mar 2026 05:59:38 +1100 (AEDT)", "from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sea.lore.kernel.org (Postfix) with ESMTP id 969E93055833\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 27 Mar 2026 18:58:44 +0000 (UTC)", "from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 33AC6423A99;\n\tFri, 27 Mar 2026 18:49:40 +0000 (UTC)", "from DB3PR0202CU003.outbound.protection.outlook.com\n (mail-northeuropeazon11010061.outbound.protection.outlook.com [52.101.84.61])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id 7401442315D;\n\tFri, 27 Mar 2026 18:49:36 +0000 (UTC)", "from DU2PR04MB8584.eurprd04.prod.outlook.com (2603:10a6:10:2db::24)\n by GV1PR04MB9515.eurprd04.prod.outlook.com (2603:10a6:150:24::6) with\n Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.20; Fri, 27 Mar\n 2026 18:49:31 +0000", "from DU2PR04MB8584.eurprd04.prod.outlook.com\n ([fe80::3f9d:4a01:f53c:952d]) by DU2PR04MB8584.eurprd04.prod.outlook.com\n ([fe80::3f9d:4a01:f53c:952d%5]) with mapi id 15.20.9745.019; Fri, 27 Mar 2026\n 18:49:30 +0000" ], "ARC-Seal": [ "i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1774637380; cv=fail;\n b=mZG1R6sJVZfws11VUs6EdFSLSSRMasAooCv9+rjzeSidFty4dw1JuRx7+Zd92Fr+1c0IcLGJakvYX1wFvQ6o0nGtHrWbt1fdA/196yYeTc0m1+hb2V8liv7DaUhUaYe5aATSnzZTo/9XbOKgv/+dQzscM/9AvYG5oEDsibwrVBE=", "i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n b=uQJjyETywcH4KwREGOhfxfy87dKa4FvOv7/FVFNFNdX6GYLVJsQrDf93gBQ/pNjPYy25oBxNhYf2p5usshcnW9/BNrJQtbY82Pe+os1meWXDO3KmwctGsUXKpDZCqVf7N/7Wut+f3QQeL1W5sfXsOAeZHkuy+YQckkc1WwlObBH8GiF4qXodYJJt1qf0gLrOFt6TDnSbgXNbiJQSZlmfU4KMm5TSVp82gBotQ9s2lKBkzd5/+nyep87QsYhS1AO0tyORDM+/l5YEHEF/UuSQNcIuco/hLeiDgsQcJBU38ZyQ1HVeaThYw04xsio7QeUjpst11Yv4VTjngmYD49G+nQ==" ], "ARC-Message-Signature": [ "i=2; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1774637380; c=relaxed/simple;\n\tbh=+gic94PJF4qV/zMthI8vXI60f654L/SFRDJiKg0rjWY=;\n\th=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References:\n\t Content-Type:MIME-Version;\n b=gYTPbfK3t0kKw9/6RvpksDWo7mpdOGkVYXK2S6kULF5Az6L/Mck7eo8sjnjvbYpFvtLNFw3Mi2e2sADH7IP3aeTi7Nfb8USa4eXZPttZzngGiMOrf+v2shbLjh75ZpzCbRxx+YbeJ1cO+/p8/5OnLsYe/5bxEZWjdH9oIuy+mUc=", "i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n s=arcselector10001;\n 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;\n bh=GtoPbaMlp+XVPjptV3psLvzJQH83WQyPLEO2nYkPu2s=;\n b=MtNpgQBzftagzsatba9BYR95nVMndwRFgIRDViv9bv2kv1z2yXiaZZF8A/MZnWrdGZy3XhSm0X39feBrN3uh5eT0WF1INrWr06n9laYV4YC9fPvleGzL50ABNP+1DZadGjR2qPoUGTMgHYf1Y1P1lDbJ66EoDzvucrZZcrq+hRhCwNQv4tYyt3fLNtLn7PD3IroFI+/ksWf9lMaaJkl7foIAe9Z3IFVpaxHBUKMRin6wDwPZiH1Bl+g3s/2Isz1CUahd8G5E/U3h1I4LikqbiaQwXp5pCFYVYM7U/4DHb37PIXI4NlhjxiHaMC49GpE5z6/cY+TUKAYkcsZEgDyO8A==" ], "ARC-Authentication-Results": [ "i=2; smtp.subspace.kernel.org;\n dmarc=pass (p=none dis=none) header.from=nxp.com;\n spf=pass smtp.mailfrom=nxp.com;\n dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com\n header.b=C0IIpXv5; arc=fail smtp.client-ip=52.101.84.61", "i=1; mx.microsoft.com 1; spf=pass\n smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass\n header.d=nxp.com; arc=none" ], "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=GtoPbaMlp+XVPjptV3psLvzJQH83WQyPLEO2nYkPu2s=;\n b=C0IIpXv5yI+cLwQKmyvv+KW8hJGwl/yKgPaq5+XRiBBA5FEro6VuhZJQ9DCFcZWKHLu2Sg11ih61ay+t1Ve7Rb0iVcQ0OJMAbydM80R/w+FWbgQJwMSdgjcc8x1WF3lhcd6KE4HunJ8ntBZ/YSoCpPsocZjbgEFj19H5rXyVL3jLdCFYGBn9Lq/3RJUVOd9P2s2xNPDQc2nqx8VW9V4qit5NZHzfdwsnuaz7VuDL5crlrXRV47J+o9LiZEYZIxhri0p8u15VcbipCit+E4LyyvvUe9B2rI0a5BUve995d4jWy/ewtb+KgAUGyYgRLYubwPrGRrHrObBOnu6M5vIKcw==", "From": "Vladimir Oltean <vladimir.oltean@nxp.com>", "To": "linux-phy@lists.infradead.org", "Cc": "Vinod Koul <vkoul@kernel.org>,\n\tNeil Armstrong <neil.armstrong@linaro.org>,\n\tdri-devel@lists.freedesktop.org,\n\tfreedreno@lists.freedesktop.org,\n\tlinux-arm-kernel@lists.infradead.org,\n\tlinux-arm-msm@vger.kernel.org,\n\tlinux-can@vger.kernel.org,\n\tlinux-gpio@vger.kernel.org,\n\tlinux-ide@vger.kernel.org,\n\tlinux-kernel@vger.kernel.org,\n\tlinux-media@vger.kernel.org,\n\tlinux-pci@vger.kernel.org,\n\tlinux-renesas-soc@vger.kernel.org,\n\tlinux-riscv@lists.infradead.org,\n\tlinux-rockchip@lists.infradead.org,\n\tlinux-samsung-soc@vger.kernel.org,\n\tlinux-scsi@vger.kernel.org,\n\tlinux-sunxi@lists.linux.dev,\n\tlinux-tegra@vger.kernel.org,\n\tlinux-usb@vger.kernel.org,\n\tnetdev@vger.kernel.org,\n\tspacemit@lists.linux.dev,\n\tUNGLinuxDriver@microchip.com,\n\tDmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>,\n\tShawn Lin <shawn.lin@rock-chips.com>", "Subject": "[PATCH v6 phy-next 26/28] phy: include PHY provider header (2/2)", "Date": "Fri, 27 Mar 2026 20:47:04 +0200", "Message-ID": "<20260327184706.1600329-27-vladimir.oltean@nxp.com>", "X-Mailer": "git-send-email 2.43.0", "In-Reply-To": "<20260327184706.1600329-1-vladimir.oltean@nxp.com>", "References": "<20260327184706.1600329-1-vladimir.oltean@nxp.com>", "Content-Transfer-Encoding": "8bit", "Content-Type": "text/plain", "X-ClientProxiedBy": "WA2P291CA0015.POLP291.PROD.OUTLOOK.COM\n (2603:10a6:1d0:1e::28) To DU2PR04MB8584.eurprd04.prod.outlook.com\n (2603:10a6:10:2db::24)", "Precedence": "bulk", "X-Mailing-List": "linux-ide@vger.kernel.org", "List-Id": "<linux-ide.vger.kernel.org>", "List-Subscribe": "<mailto:linux-ide+subscribe@vger.kernel.org>", "List-Unsubscribe": "<mailto:linux-ide+unsubscribe@vger.kernel.org>", "MIME-Version": "1.0", "X-MS-PublicTrafficType": "Email", "X-MS-TrafficTypeDiagnostic": "DU2PR04MB8584:EE_|GV1PR04MB9515:EE_", "X-MS-Office365-Filtering-Correlation-Id": "67f2476c-cb95-44d8-a833-08de8c31947d", "X-MS-Exchange-SenderADCheck": "1", "X-MS-Exchange-AntiSpam-Relay": "0", "X-Microsoft-Antispam": "\n\tBCL:0;ARA:13230040|10070799003|7416014|376014|366016|1800799024|19092799006|56012099003|18002099003|22082099003;", "X-Microsoft-Antispam-Message-Info": "\n\tkRHwHJMKfGFDzqPDwcnc1FDfzeBwDi0yDa5VdS/hAXCobU5Ss7j7Jam17I242HjGXmsMzldxBGrweckFHHp0uBafOKBSebzoSQTPqntKqJsRIincrlSwjQrANcyRm+Gs0pQCDy1mOb1+iIW6Yl2KLQnD7tRu0f+oazEY8fwaZuDqKHcu39YSqUaCRG1Wnz6vJz+4hogmVSMFzlUuxkPGg0A/SDdkr/0g+ULb21Yu3MrNQz+ylwz94sdM+DLG9pu9Hfb6D8QwKtck3tUQDiYr4MLaI1xQSX93ay3+AdU4I4bEbavNng+uWLhJVWijgCwHXkel9MPgpK1lwpQ8G/7SS8dQP7uuPtGpqVrtL94gCD3g6BhhRd98dPsLAoB3ug9IL8+fy3DS7XWAxI6bisj86KCBBFqWfX0qkV0AJvlPPKvX23FjWIQDFAVjuGK3JYSxW0eWXQIbCQna52yvhuOshHfuzZlHZaWZOnhq+r5toVU37HRFtXagQ05eYUi8tluCbGvBhxjJWU7e3KSV5P0MeS7Eh+6LfssJVkVYUGbUXoBIRES548ofYlSGTBIGuCw996KgRpPXNw9zVDiHE0dZTr0rQxD5WLFxBlU3VBDVSghmUa6k2cpLTtnGQYqUyGc0gPVXncBXSWYm1YnSxbhBhV/udptPUy7xvSSHIzSHGD+OMEkxnA+j+h3v/bLiilFj74ShNcWhQCE+BxTIiXoXHNkCC+RMJFQ3p8IzRd1Pmik=", "X-Forefront-Antispam-Report": "\n\tCIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR04MB8584.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(10070799003)(7416014)(376014)(366016)(1800799024)(19092799006)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1101;", "X-MS-Exchange-AntiSpam-MessageData-ChunkCount": "2", "X-MS-Exchange-AntiSpam-MessageData-0": "\n gMADaTZs/hxZWvvYGNr6AeHgjQaHxCw7UVBPrds3a7CsvhZcRhPsaUzPy29gF3Wab0TuNheLKMM8UrwJFMJ2HncvMKXENKJ0Rimk5XdGnW5dSBCv7Evb1CdOPZJ8vTquwG4b3UaiRD2QfRdcR7g3w99pXK8J/Iq7fXkvoKRsSR9nylM+2V4+ld0ZjFhagJNEl0gEu7UaC9A2wcNyJM46L9PcWw2G3tTQNV+jQDBOFT/8sU6yg+rD9TTtNYQwf9lBhNXIkpkgjaUFOK7kzje+O8Oo6A/w83Tlhb6jSVSUDQdertOhy6aM/7083zd0hrXf2B6X4QuztF9NS7Qn9jI/PhibQ7ftQpRFrR6ltQDRQIFhIGDZpUSkveZLP7wW4YtZLdFg0BBqTP99tgU0KQKGWYZRBSryaqzHQZzUbIhc5vHWiEaqFe3aLOGkeceQTRUtpG+WA8fCLzICIBTWlUFzgClFTXElFWdQ40oG/Jlrdsb7FCsZzr4jZ9tMNey8lprO3JOPco8Y+LQF3PY0jc2to6+bb3m9u35eVfyDD75UzakiH3ySFNJeWNvSG7Ky2Lpp38CgiriwgMFMeA9IG+mvX2tPXZSO6KMoMnPIYMjYBC6DTELBVKLr4orGC9KEpjq0eFYkslXhn26LQgIw6MNtBo6b0rxpWUE9ZK87/kY1y9C9EmuTE2Ue/jvMTYgitC0lztJ0t5awU0EOHSWpT+oGcJEMq8JPD90IVF3EdOrXLFpQC3SYQ0/KLnVu4022bkPBQKtRjnpaxtc7Gf77V0sAyhJ3Rn+eakg3KUER2tEtezddAsG2Ha1jooiEZucwgwA9c0Jh1glYMJJRlp4TUS2qiF80/IgDD+jOX61ACpAagyHbwbsEcodDt1bsF1XNviQCKs1kxn6QGDqW+lPcvaupXEo/50nbAN6PxEJjZDg34KXgkqwmUzSggEPrZfzmJ236pPL30JWghCdSTQqafaEd7MM0Hsb/Qu/UyZsPyBNfi98YjNeBrNPDOifOni091+0gejCzCh0yA2Ui4co1iwjkntn+sdGtZJbpDXG+quHdud49k8c8dHu6inoVCBPKkLG1/RNPrDNa/38ajOkOHGDrdYKPLivyoV/0PxOlMiMOSNhkija3Prz582lYLNxR3tTOLD2FAudf3mqzK0YAhxwLY0PIPljQouyVbvbaYrHNW2FJ+ZXydA4oleawzRvxNztknct62GqvNlD+z7IlzzHf8QLnr3gQ8axbNuYoT309Vbt5VkhfWi+JDkQzZvXFbvH99J4Y+Kzzu2+YvSKw621x+V+BPl1A0ruD/PFXUwD1pNxMqdQctNmo51mFs36CPrBqvZJbZp1yzyynRLi0vUMUFw5aoPv+Hg1lunf6mPDhNoTmn6IDJwUhesVmSqqZYsT9I1hpDWUzsIn/glQvh5pOr/JZwIu4UgrEfCWLWY8HV+Cf01ZQN6SPrto08CZfig6jvsXgVD14EFlSyg/sfxJQI1pK0TVl0oDEYZweWuZXleq9a5/+o7U5uFiWW85rm4muiMamX6in6JDMHfIBX+fFw2leC1ZsBxwBulWHHFEBxfE0uN1XyP6Vle+i6YjZbbGq31wD/uRyQG4wdYoaZSdEClrDXJ49WZAGTUHtdh9WN5+/a9avnPy46lwGx4HhgXHJinLFyIUmQttZ9DrmOtQHvIqa3iuJ4Msqf7Tsk7h76w0+n8Xli3NIx+UbgdAy3yqlQqCVhv8tzVVwRsyNPG56Wo21M4eLH9GU9HUuLJAMPxnZnV3QZ7Zp7FeASYhBSp1kXnml3NMw", "X-MS-Exchange-AntiSpam-MessageData-1": "nqoDaiXtt95HgCkwGeFx1KLvEVjrgqdkqpU=", "X-OriginatorOrg": "nxp.com", "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n 67f2476c-cb95-44d8-a833-08de8c31947d", "X-MS-Exchange-CrossTenant-AuthSource": "DU2PR04MB8584.eurprd04.prod.outlook.com", "X-MS-Exchange-CrossTenant-AuthAs": "Internal", "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "27 Mar 2026 18:49:30.9159\n (UTC)", "X-MS-Exchange-CrossTenant-FromEntityHeader": "Hosted", "X-MS-Exchange-CrossTenant-Id": "686ea1d3-bc2b-4c6f-a92c-d99c5c301635", "X-MS-Exchange-CrossTenant-MailboxType": "HOSTED", "X-MS-Exchange-CrossTenant-UserPrincipalName": "\n nhg4kRa9v80LNP7yWhzIIjXCOS7yHaHegPte5nHc7waTU4M3ag/MmAAv77VYZjfUtEh5G5dEb9nhFwcYeQJIag==", "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "GV1PR04MB9515" }, "content": "The majority of PHY drivers are PHY providers (obviously).\n\nSome are chained PHY provider+consumer (phy-qcom-m31-eusb2.c,\nphy-exynos5-usbdrd.c).\n\nOthers include <linux/phy/phy.h> because they call consumer functions\nsuch as phy_pm_runtime_get() - phy-mapphone-mdm6600.c. See commit\n2ad2af081622 (\"phy: mapphone-mdm6600: Improve phy related runtime PM\ncalls\") for the story behind that. My understanding is it's a pragmatic\nshortcut, but it doesn't bother much.\n\nSigned-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>\nReviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com> #phy/qualcomm\nAcked-by: Shawn Lin <shawn.lin@rock-chips.com>\n---\nConflicts in drivers/phy/spacemit/phy-k1-pcie.c with commit 75fb1a33f9ac\n(\"phy: move spacemit pcie driver to its subfolder\"). The recommendation\nis to patch drivers/phy/phy-spacemit-k1-pcie.c with the change found\nhere, in order for the branch to build cleanly on top of v7.0-rc1.\nThen remember to patch back drivers/phy/spacemit/phy-k1-pcie.c during\nthe merge to linux-phy/next. VERY IMPORTANT: on v7.0-rc1, the header\npath is \"phy-provider.h\", whereas in phy-next it is \"../phy-provider.h\",\ndue to the spacemit folder move.\n\nConflicts trivially in drivers/phy/qualcomm/phy-qcom-sgmii-eth.c with\ncommit 4ff5801f45b4 (\"phy: qcom-sgmii-eth: add .set_mode() and\n.validate() methods\").\nThe recommended resolution is to keep their newly introduced adjacent\nline (\"+#include <linux/phy.h>\" - network PHY) while removing our\n\"#include <linux/phy/phy.h>\" - generic PHY.\nThis was previously brought up here:\nhttps://lore.kernel.org/netdev/aa1lIBO3j_apIPjb@shell.armlinux.org.uk/\n\nv4->v6: none\nv3->v4:\n- fix phy-provider.h path from drivers/phy/qualcomm/phy-qcom-ipq806x-sata.c\n- make sure include/linux/phy/tegra/xusb.h is not reliant upon an\n external \"struct phy\" definition\nv2->v3: none\nv1->v2: split in two parts to pass through linux-phy mailing list\nmoderation. The split is at letter 'q' (Qualcomm)\n---\n drivers/phy/qualcomm/phy-ath79-usb.c | 3 ++-\n drivers/phy/qualcomm/phy-qcom-apq8064-sata.c | 3 ++-\n drivers/phy/qualcomm/phy-qcom-edp.c | 3 ++-\n drivers/phy/qualcomm/phy-qcom-eusb2-repeater.c | 3 ++-\n drivers/phy/qualcomm/phy-qcom-ipq4019-usb.c | 3 ++-\n drivers/phy/qualcomm/phy-qcom-ipq806x-sata.c | 3 ++-\n drivers/phy/qualcomm/phy-qcom-ipq806x-usb.c | 3 ++-\n drivers/phy/qualcomm/phy-qcom-m31-eusb2.c | 2 ++\n drivers/phy/qualcomm/phy-qcom-m31.c | 3 ++-\n drivers/phy/qualcomm/phy-qcom-pcie2.c | 3 ++-\n drivers/phy/qualcomm/phy-qcom-qmp-combo.c | 3 ++-\n drivers/phy/qualcomm/phy-qcom-qmp-pcie-msm8996.c | 3 ++-\n drivers/phy/qualcomm/phy-qcom-qmp-pcie.c | 3 ++-\n drivers/phy/qualcomm/phy-qcom-qmp-ufs.c | 3 ++-\n drivers/phy/qualcomm/phy-qcom-qmp-usb-legacy.c | 3 ++-\n drivers/phy/qualcomm/phy-qcom-qmp-usb.c | 3 ++-\n drivers/phy/qualcomm/phy-qcom-qmp-usbc.c | 3 ++-\n drivers/phy/qualcomm/phy-qcom-qusb2.c | 4 ++--\n drivers/phy/qualcomm/phy-qcom-sgmii-eth.c | 3 ++-\n drivers/phy/qualcomm/phy-qcom-snps-femto-v2.c | 3 ++-\n drivers/phy/qualcomm/phy-qcom-uniphy-pcie-28lp.c | 3 ++-\n drivers/phy/qualcomm/phy-qcom-usb-hs-28nm.c | 3 ++-\n drivers/phy/qualcomm/phy-qcom-usb-hs.c | 3 ++-\n drivers/phy/qualcomm/phy-qcom-usb-hsic.c | 3 ++-\n drivers/phy/qualcomm/phy-qcom-usb-ss.c | 3 ++-\n drivers/phy/ralink/phy-mt7621-pci.c | 3 ++-\n drivers/phy/ralink/phy-ralink-usb.c | 3 ++-\n drivers/phy/realtek/phy-rtk-usb2.c | 3 ++-\n drivers/phy/realtek/phy-rtk-usb3.c | 3 ++-\n drivers/phy/renesas/phy-rcar-gen2.c | 3 ++-\n drivers/phy/renesas/phy-rcar-gen3-pcie.c | 3 ++-\n drivers/phy/renesas/phy-rcar-gen3-usb2.c | 3 ++-\n drivers/phy/renesas/phy-rcar-gen3-usb3.c | 3 ++-\n drivers/phy/renesas/phy-rzg3e-usb3.c | 3 ++-\n drivers/phy/renesas/r8a779f0-ether-serdes.c | 3 ++-\n drivers/phy/rockchip/phy-rockchip-dp.c | 3 ++-\n drivers/phy/rockchip/phy-rockchip-dphy-rx0.c | 3 ++-\n drivers/phy/rockchip/phy-rockchip-emmc.c | 3 ++-\n drivers/phy/rockchip/phy-rockchip-inno-csidphy.c | 3 ++-\n drivers/phy/rockchip/phy-rockchip-inno-dsidphy.c | 4 ++--\n drivers/phy/rockchip/phy-rockchip-inno-hdmi.c | 2 ++\n drivers/phy/rockchip/phy-rockchip-inno-usb2.c | 3 ++-\n drivers/phy/rockchip/phy-rockchip-naneng-combphy.c | 3 ++-\n drivers/phy/rockchip/phy-rockchip-pcie.c | 2 +-\n drivers/phy/rockchip/phy-rockchip-samsung-dcphy.c | 3 ++-\n drivers/phy/rockchip/phy-rockchip-samsung-hdptx.c | 2 ++\n drivers/phy/rockchip/phy-rockchip-snps-pcie3.c | 3 ++-\n drivers/phy/rockchip/phy-rockchip-typec.c | 4 ++--\n drivers/phy/rockchip/phy-rockchip-usb.c | 3 ++-\n drivers/phy/rockchip/phy-rockchip-usbdp.c | 2 ++\n drivers/phy/samsung/phy-exynos-dp-video.c | 3 ++-\n drivers/phy/samsung/phy-exynos-mipi-video.c | 3 ++-\n drivers/phy/samsung/phy-exynos-pcie.c | 3 ++-\n drivers/phy/samsung/phy-exynos4210-usb2.c | 3 ++-\n drivers/phy/samsung/phy-exynos4x12-usb2.c | 3 ++-\n drivers/phy/samsung/phy-exynos5-usbdrd.c | 2 ++\n drivers/phy/samsung/phy-exynos5250-sata.c | 3 ++-\n drivers/phy/samsung/phy-exynos5250-usb2.c | 3 ++-\n drivers/phy/samsung/phy-s5pv210-usb2.c | 3 ++-\n drivers/phy/samsung/phy-samsung-ufs.c | 2 +-\n drivers/phy/samsung/phy-samsung-ufs.h | 3 ++-\n drivers/phy/samsung/phy-samsung-usb2.c | 2 ++\n drivers/phy/samsung/phy-samsung-usb2.h | 3 ++-\n drivers/phy/socionext/phy-uniphier-ahci.c | 3 ++-\n drivers/phy/socionext/phy-uniphier-pcie.c | 3 ++-\n drivers/phy/socionext/phy-uniphier-usb2.c | 3 ++-\n drivers/phy/socionext/phy-uniphier-usb3hs.c | 3 ++-\n drivers/phy/socionext/phy-uniphier-usb3ss.c | 3 ++-\n drivers/phy/sophgo/phy-cv1800-usb2.c | 3 ++-\n drivers/phy/spacemit/phy-k1-pcie.c | 4 ++--\n drivers/phy/spacemit/phy-k1-usb2.c | 3 ++-\n drivers/phy/st/phy-miphy28lp.c | 4 ++--\n drivers/phy/st/phy-spear1310-miphy.c | 3 ++-\n drivers/phy/st/phy-spear1340-miphy.c | 3 ++-\n drivers/phy/st/phy-stih407-usb.c | 3 ++-\n drivers/phy/st/phy-stm32-combophy.c | 3 ++-\n drivers/phy/st/phy-stm32-usbphyc.c | 2 ++\n drivers/phy/starfive/phy-jh7110-dphy-rx.c | 3 ++-\n drivers/phy/starfive/phy-jh7110-dphy-tx.c | 3 ++-\n drivers/phy/starfive/phy-jh7110-pcie.c | 3 ++-\n drivers/phy/starfive/phy-jh7110-usb.c | 3 ++-\n drivers/phy/sunplus/phy-sunplus-usb2.c | 3 ++-\n drivers/phy/tegra/phy-tegra194-p2u.c | 3 ++-\n drivers/phy/tegra/xusb-tegra124.c | 2 +-\n drivers/phy/tegra/xusb-tegra186.c | 2 +-\n drivers/phy/tegra/xusb-tegra210.c | 2 +-\n drivers/phy/tegra/xusb.c | 2 +-\n drivers/phy/ti/phy-am654-serdes.c | 3 ++-\n drivers/phy/ti/phy-da8xx-usb.c | 3 ++-\n drivers/phy/ti/phy-dm816x-usb.c | 3 ++-\n drivers/phy/ti/phy-gmii-sel.c | 3 ++-\n drivers/phy/ti/phy-omap-usb2.c | 3 ++-\n drivers/phy/ti/phy-ti-pipe3.c | 3 ++-\n drivers/phy/ti/phy-twl4030-usb.c | 3 ++-\n drivers/phy/xilinx/phy-zynqmp.c | 4 ++--\n include/linux/phy/phy-sun4i-usb.h | 2 +-\n include/linux/phy/tegra/xusb.h | 1 +\n include/linux/phy/ulpi_phy.h | 2 +-\n 98 files changed, 187 insertions(+), 96 deletions(-)", "diff": "diff --git a/drivers/phy/qualcomm/phy-ath79-usb.c b/drivers/phy/qualcomm/phy-ath79-usb.c\nindex f8d0199c6e78..2f07241be600 100644\n--- a/drivers/phy/qualcomm/phy-ath79-usb.c\n+++ b/drivers/phy/qualcomm/phy-ath79-usb.c\n@@ -8,9 +8,10 @@\n #include <linux/mod_devicetable.h>\n #include <linux/module.h>\n #include <linux/platform_device.h>\n-#include <linux/phy/phy.h>\n #include <linux/reset.h>\n \n+#include \"../phy-provider.h\"\n+\n struct ath79_usb_phy {\n \tstruct reset_control *reset;\n \t/* The suspend override logic is inverted, hence the no prefix\ndiff --git a/drivers/phy/qualcomm/phy-qcom-apq8064-sata.c b/drivers/phy/qualcomm/phy-qcom-apq8064-sata.c\nindex cae290a6e19f..dd73ecbb6c1e 100644\n--- a/drivers/phy/qualcomm/phy-qcom-apq8064-sata.c\n+++ b/drivers/phy/qualcomm/phy-qcom-apq8064-sata.c\n@@ -13,7 +13,8 @@\n #include <linux/clk.h>\n #include <linux/slab.h>\n #include <linux/platform_device.h>\n-#include <linux/phy/phy.h>\n+\n+#include \"../phy-provider.h\"\n \n /* PHY registers */\n #define UNIPHY_PLL_REFCLK_CFG\t\t0x000\ndiff --git a/drivers/phy/qualcomm/phy-qcom-edp.c b/drivers/phy/qualcomm/phy-qcom-edp.c\nindex 7372de05a0b8..faddba0f20c7 100644\n--- a/drivers/phy/qualcomm/phy-qcom-edp.c\n+++ b/drivers/phy/qualcomm/phy-qcom-edp.c\n@@ -13,7 +13,6 @@\n #include <linux/kernel.h>\n #include <linux/module.h>\n #include <linux/of.h>\n-#include <linux/phy/phy.h>\n #include <linux/phy/phy-dp.h>\n #include <linux/platform_device.h>\n #include <linux/regulator/consumer.h>\n@@ -22,6 +21,8 @@\n \n #include <dt-bindings/phy/phy.h>\n \n+#include \"../phy-provider.h\"\n+\n #include \"phy-qcom-qmp-dp-phy.h\"\n #include \"phy-qcom-qmp-qserdes-com-v4.h\"\n #include \"phy-qcom-qmp-qserdes-com-v6.h\"\ndiff --git a/drivers/phy/qualcomm/phy-qcom-eusb2-repeater.c b/drivers/phy/qualcomm/phy-qcom-eusb2-repeater.c\nindex efeec4709a15..5783bdabc287 100644\n--- a/drivers/phy/qualcomm/phy-qcom-eusb2-repeater.c\n+++ b/drivers/phy/qualcomm/phy-qcom-eusb2-repeater.c\n@@ -8,7 +8,8 @@\n #include <linux/regulator/consumer.h>\n #include <linux/regmap.h>\n #include <linux/of.h>\n-#include <linux/phy/phy.h>\n+\n+#include \"../phy-provider.h\"\n \n /* eUSB2 status registers */\n #define EUSB2_RPTR_STATUS\t\t0x08\ndiff --git a/drivers/phy/qualcomm/phy-qcom-ipq4019-usb.c b/drivers/phy/qualcomm/phy-qcom-ipq4019-usb.c\nindex da6f290af722..f1c1c2969e37 100644\n--- a/drivers/phy/qualcomm/phy-qcom-ipq4019-usb.c\n+++ b/drivers/phy/qualcomm/phy-qcom-ipq4019-usb.c\n@@ -14,10 +14,11 @@\n #include <linux/module.h>\n #include <linux/mutex.h>\n #include <linux/of.h>\n-#include <linux/phy/phy.h>\n #include <linux/platform_device.h>\n #include <linux/reset.h>\n \n+#include \"../phy-provider.h\"\n+\n struct ipq4019_usb_phy {\n \tstruct device\t\t*dev;\n \tstruct phy\t\t*phy;\ndiff --git a/drivers/phy/qualcomm/phy-qcom-ipq806x-sata.c b/drivers/phy/qualcomm/phy-qcom-ipq806x-sata.c\nindex f5eb0bdac418..d5407784c18f 100644\n--- a/drivers/phy/qualcomm/phy-qcom-ipq806x-sata.c\n+++ b/drivers/phy/qualcomm/phy-qcom-ipq806x-sata.c\n@@ -13,7 +13,8 @@\n #include <linux/clk.h>\n #include <linux/slab.h>\n #include <linux/platform_device.h>\n-#include <linux/phy/phy.h>\n+\n+#include \"../phy-provider.h\"\n \n struct qcom_ipq806x_sata_phy {\n \tvoid __iomem *mmio;\ndiff --git a/drivers/phy/qualcomm/phy-qcom-ipq806x-usb.c b/drivers/phy/qualcomm/phy-qcom-ipq806x-usb.c\nindex f22c0000479f..54144f0547f0 100644\n--- a/drivers/phy/qualcomm/phy-qcom-ipq806x-usb.c\n+++ b/drivers/phy/qualcomm/phy-qcom-ipq806x-usb.c\n@@ -5,13 +5,14 @@\n #include <linux/io.h>\n #include <linux/module.h>\n #include <linux/of.h>\n-#include <linux/phy/phy.h>\n #include <linux/platform_device.h>\n #include <linux/delay.h>\n #include <linux/regmap.h>\n #include <linux/mfd/syscon.h>\n #include <linux/bitfield.h>\n \n+#include \"../phy-provider.h\"\n+\n /* USB QSCRATCH Hardware registers */\n #define QSCRATCH_GENERAL_CFG\t\t(0x08)\n #define HSUSB_PHY_CTRL_REG\t\t(0x10)\ndiff --git a/drivers/phy/qualcomm/phy-qcom-m31-eusb2.c b/drivers/phy/qualcomm/phy-qcom-m31-eusb2.c\nindex 68f1ba8fec4a..9e3a911023cd 100644\n--- a/drivers/phy/qualcomm/phy-qcom-m31-eusb2.c\n+++ b/drivers/phy/qualcomm/phy-qcom-m31-eusb2.c\n@@ -18,6 +18,8 @@\n \n #include <linux/regulator/consumer.h>\n \n+#include \"../phy-provider.h\"\n+\n #define USB_PHY_UTMI_CTRL0\t\t(0x3c)\n #define SLEEPM\t\t\t\tBIT(0)\n \ndiff --git a/drivers/phy/qualcomm/phy-qcom-m31.c b/drivers/phy/qualcomm/phy-qcom-m31.c\nindex 168ea980fda0..1a63a5807d37 100644\n--- a/drivers/phy/qualcomm/phy-qcom-m31.c\n+++ b/drivers/phy/qualcomm/phy-qcom-m31.c\n@@ -10,11 +10,12 @@\n #include <linux/kernel.h>\n #include <linux/module.h>\n #include <linux/of.h>\n-#include <linux/phy/phy.h>\n #include <linux/platform_device.h>\n #include <linux/reset.h>\n #include <linux/slab.h>\n \n+#include \"../phy-provider.h\"\n+\n #define USB2PHY_PORT_UTMI_CTRL1\t\t0x40\n \n #define USB2PHY_PORT_UTMI_CTRL2\t\t0x44\ndiff --git a/drivers/phy/qualcomm/phy-qcom-pcie2.c b/drivers/phy/qualcomm/phy-qcom-pcie2.c\nindex 11a2bb958681..4c74d8e7722d 100644\n--- a/drivers/phy/qualcomm/phy-qcom-pcie2.c\n+++ b/drivers/phy/qualcomm/phy-qcom-pcie2.c\n@@ -8,11 +8,12 @@\n #include <linux/clk.h>\n #include <linux/iopoll.h>\n #include <linux/module.h>\n-#include <linux/phy/phy.h>\n #include <linux/platform_device.h>\n #include <linux/reset.h>\n #include <linux/slab.h>\n \n+#include \"../phy-provider.h\"\n+\n #include <dt-bindings/phy/phy.h>\n \n #define PCIE20_PARF_PHY_STTS 0x3c\ndiff --git a/drivers/phy/qualcomm/phy-qcom-qmp-combo.c b/drivers/phy/qualcomm/phy-qcom-qmp-combo.c\nindex b9ea7d058e93..04c54c229f08 100644\n--- a/drivers/phy/qualcomm/phy-qcom-qmp-combo.c\n+++ b/drivers/phy/qualcomm/phy-qcom-qmp-combo.c\n@@ -14,7 +14,6 @@\n #include <linux/of.h>\n #include <linux/of_address.h>\n #include <linux/of_graph.h>\n-#include <linux/phy/phy.h>\n #include <linux/platform_device.h>\n #include <linux/pm_runtime.h>\n #include <linux/regulator/consumer.h>\n@@ -28,6 +27,8 @@\n \n #include <dt-bindings/phy/phy-qcom-qmp.h>\n \n+#include \"../phy-provider.h\"\n+\n #include \"phy-qcom-qmp-common.h\"\n \n #include \"phy-qcom-qmp.h\"\ndiff --git a/drivers/phy/qualcomm/phy-qcom-qmp-pcie-msm8996.c b/drivers/phy/qualcomm/phy-qcom-qmp-pcie-msm8996.c\nindex a7c65cfe31df..df38d5b6d5be 100644\n--- a/drivers/phy/qualcomm/phy-qcom-qmp-pcie-msm8996.c\n+++ b/drivers/phy/qualcomm/phy-qcom-qmp-pcie-msm8996.c\n@@ -13,12 +13,13 @@\n #include <linux/module.h>\n #include <linux/of.h>\n #include <linux/of_address.h>\n-#include <linux/phy/phy.h>\n #include <linux/platform_device.h>\n #include <linux/regulator/consumer.h>\n #include <linux/reset.h>\n #include <linux/slab.h>\n \n+#include \"../phy-provider.h\"\n+\n #include \"phy-qcom-qmp-common.h\"\n \n #include \"phy-qcom-qmp.h\"\ndiff --git a/drivers/phy/qualcomm/phy-qcom-qmp-pcie.c b/drivers/phy/qualcomm/phy-qcom-qmp-pcie.c\nindex fed2fc9bb311..06680151360e 100644\n--- a/drivers/phy/qualcomm/phy-qcom-qmp-pcie.c\n+++ b/drivers/phy/qualcomm/phy-qcom-qmp-pcie.c\n@@ -15,7 +15,6 @@\n #include <linux/of.h>\n #include <linux/of_address.h>\n #include <linux/phy/pcie.h>\n-#include <linux/phy/phy.h>\n #include <linux/platform_device.h>\n #include <linux/regmap.h>\n #include <linux/regulator/consumer.h>\n@@ -24,6 +23,8 @@\n \n #include <dt-bindings/phy/phy-qcom-qmp.h>\n \n+#include \"../phy-provider.h\"\n+\n #include \"phy-qcom-qmp-common.h\"\n \n #include \"phy-qcom-qmp.h\"\ndiff --git a/drivers/phy/qualcomm/phy-qcom-qmp-ufs.c b/drivers/phy/qualcomm/phy-qcom-qmp-ufs.c\nindex df138a5442eb..75cd5b10fdb2 100644\n--- a/drivers/phy/qualcomm/phy-qcom-qmp-ufs.c\n+++ b/drivers/phy/qualcomm/phy-qcom-qmp-ufs.c\n@@ -13,7 +13,6 @@\n #include <linux/module.h>\n #include <linux/of.h>\n #include <linux/of_address.h>\n-#include <linux/phy/phy.h>\n #include <linux/platform_device.h>\n #include <linux/regulator/consumer.h>\n #include <linux/reset.h>\n@@ -21,6 +20,8 @@\n \n #include <ufs/unipro.h>\n \n+#include \"../phy-provider.h\"\n+\n #include \"phy-qcom-qmp-common.h\"\n \n #include \"phy-qcom-qmp.h\"\ndiff --git a/drivers/phy/qualcomm/phy-qcom-qmp-usb-legacy.c b/drivers/phy/qualcomm/phy-qcom-qmp-usb-legacy.c\nindex 2bd5862c5ba8..a682b30db03e 100644\n--- a/drivers/phy/qualcomm/phy-qcom-qmp-usb-legacy.c\n+++ b/drivers/phy/qualcomm/phy-qcom-qmp-usb-legacy.c\n@@ -14,13 +14,14 @@\n #include <linux/of.h>\n #include <linux/of_device.h>\n #include <linux/of_address.h>\n-#include <linux/phy/phy.h>\n #include <linux/platform_device.h>\n #include <linux/pm_runtime.h>\n #include <linux/regulator/consumer.h>\n #include <linux/reset.h>\n #include <linux/slab.h>\n \n+#include \"../phy-provider.h\"\n+\n #include \"phy-qcom-qmp.h\"\n #include \"phy-qcom-qmp-pcs-misc-v3.h\"\n #include \"phy-qcom-qmp-pcs-usb-v4.h\"\ndiff --git a/drivers/phy/qualcomm/phy-qcom-qmp-usb.c b/drivers/phy/qualcomm/phy-qcom-qmp-usb.c\nindex d88b8a415e85..3db0a5282dbf 100644\n--- a/drivers/phy/qualcomm/phy-qcom-qmp-usb.c\n+++ b/drivers/phy/qualcomm/phy-qcom-qmp-usb.c\n@@ -13,13 +13,14 @@\n #include <linux/module.h>\n #include <linux/of.h>\n #include <linux/of_address.h>\n-#include <linux/phy/phy.h>\n #include <linux/platform_device.h>\n #include <linux/pm_runtime.h>\n #include <linux/regulator/consumer.h>\n #include <linux/reset.h>\n #include <linux/slab.h>\n \n+#include \"../phy-provider.h\"\n+\n #include \"phy-qcom-qmp-common.h\"\n \n #include \"phy-qcom-qmp.h\"\ndiff --git a/drivers/phy/qualcomm/phy-qcom-qmp-usbc.c b/drivers/phy/qualcomm/phy-qcom-qmp-usbc.c\nindex f62e1f6ecc07..b77007f8fee3 100644\n--- a/drivers/phy/qualcomm/phy-qcom-qmp-usbc.c\n+++ b/drivers/phy/qualcomm/phy-qcom-qmp-usbc.c\n@@ -14,7 +14,6 @@\n #include <linux/module.h>\n #include <linux/of.h>\n #include <linux/of_address.h>\n-#include <linux/phy/phy.h>\n #include <linux/platform_device.h>\n #include <linux/pm_runtime.h>\n #include <linux/regmap.h>\n@@ -25,6 +24,8 @@\n #include <linux/usb/typec_mux.h>\n #include <dt-bindings/phy/phy-qcom-qmp.h>\n \n+#include \"../phy-provider.h\"\n+\n #include \"phy-qcom-qmp-common.h\"\n \n #include \"phy-qcom-qmp.h\"\ndiff --git a/drivers/phy/qualcomm/phy-qcom-qusb2.c b/drivers/phy/qualcomm/phy-qcom-qusb2.c\nindex 191040f6d60f..e5516099b911 100644\n--- a/drivers/phy/qualcomm/phy-qcom-qusb2.c\n+++ b/drivers/phy/qualcomm/phy-qcom-qusb2.c\n@@ -3,6 +3,7 @@\n * Copyright (c) 2017, 2019, The Linux Foundation. All rights reserved.\n */\n \n+#include <dt-bindings/phy/phy-qcom-qusb2.h>\n #include <linux/clk.h>\n #include <linux/delay.h>\n #include <linux/err.h>\n@@ -12,7 +13,6 @@\n #include <linux/module.h>\n #include <linux/nvmem-consumer.h>\n #include <linux/of.h>\n-#include <linux/phy/phy.h>\n #include <linux/platform_device.h>\n #include <linux/pm_runtime.h>\n #include <linux/regmap.h>\n@@ -20,7 +20,7 @@\n #include <linux/reset.h>\n #include <linux/slab.h>\n \n-#include <dt-bindings/phy/phy-qcom-qusb2.h>\n+#include \"../phy-provider.h\"\n \n #define QUSB2PHY_PLL\t\t\t0x0\n #define QUSB2PHY_PLL_TEST\t\t0x04\ndiff --git a/drivers/phy/qualcomm/phy-qcom-sgmii-eth.c b/drivers/phy/qualcomm/phy-qcom-sgmii-eth.c\nindex 5b1c82459c12..4f8ffc6524ab 100644\n--- a/drivers/phy/qualcomm/phy-qcom-sgmii-eth.c\n+++ b/drivers/phy/qualcomm/phy-qcom-sgmii-eth.c\n@@ -7,10 +7,11 @@\n #include <linux/ethtool.h>\n #include <linux/module.h>\n #include <linux/of.h>\n-#include <linux/phy/phy.h>\n #include <linux/platform_device.h>\n #include <linux/regmap.h>\n \n+#include \"../phy-provider.h\"\n+\n #include \"phy-qcom-qmp-pcs-sgmii.h\"\n #include \"phy-qcom-qmp-qserdes-com-v5.h\"\n #include \"phy-qcom-qmp-qserdes-txrx-v5.h\"\ndiff --git a/drivers/phy/qualcomm/phy-qcom-snps-femto-v2.c b/drivers/phy/qualcomm/phy-qcom-snps-femto-v2.c\nindex 8915fa250e81..17a33e545008 100644\n--- a/drivers/phy/qualcomm/phy-qcom-snps-femto-v2.c\n+++ b/drivers/phy/qualcomm/phy-qcom-snps-femto-v2.c\n@@ -10,7 +10,6 @@\n #include <linux/kernel.h>\n #include <linux/module.h>\n #include <linux/of.h>\n-#include <linux/phy/phy.h>\n #include <linux/platform_device.h>\n #include <linux/pm_runtime.h>\n #include <linux/regmap.h>\n@@ -18,6 +17,8 @@\n #include <linux/reset.h>\n #include <linux/slab.h>\n \n+#include \"../phy-provider.h\"\n+\n #define USB2_PHY_USB_PHY_UTMI_CTRL0\t\t(0x3c)\n #define SLEEPM\t\t\t\t\tBIT(0)\n #define OPMODE_MASK\t\t\t\tGENMASK(4, 3)\ndiff --git a/drivers/phy/qualcomm/phy-qcom-uniphy-pcie-28lp.c b/drivers/phy/qualcomm/phy-qcom-uniphy-pcie-28lp.c\nindex 324c0a5d658e..13828d4f788e 100644\n--- a/drivers/phy/qualcomm/phy-qcom-uniphy-pcie-28lp.c\n+++ b/drivers/phy/qualcomm/phy-qcom-uniphy-pcie-28lp.c\n@@ -12,12 +12,13 @@\n #include <linux/module.h>\n #include <linux/of_device.h>\n #include <linux/of.h>\n-#include <linux/phy/phy.h>\n #include <linux/platform_device.h>\n #include <linux/regmap.h>\n #include <linux/reset.h>\n #include <linux/units.h>\n \n+#include \"../phy-provider.h\"\n+\n #define RST_ASSERT_DELAY_MIN_US\t\t100\n #define RST_ASSERT_DELAY_MAX_US\t\t150\n #define PIPE_CLK_DELAY_MIN_US\t\t5000\ndiff --git a/drivers/phy/qualcomm/phy-qcom-usb-hs-28nm.c b/drivers/phy/qualcomm/phy-qcom-usb-hs-28nm.c\nindex a52a9bf13b75..ce317deaeacb 100644\n--- a/drivers/phy/qualcomm/phy-qcom-usb-hs-28nm.c\n+++ b/drivers/phy/qualcomm/phy-qcom-usb-hs-28nm.c\n@@ -11,12 +11,13 @@\n #include <linux/module.h>\n #include <linux/of.h>\n #include <linux/of_graph.h>\n-#include <linux/phy/phy.h>\n #include <linux/platform_device.h>\n #include <linux/regulator/consumer.h>\n #include <linux/reset.h>\n #include <linux/slab.h>\n \n+#include \"../phy-provider.h\"\n+\n /* PHY register and bit definitions */\n #define PHY_CTRL_COMMON0\t\t0x078\n #define SIDDQ\t\t\t\tBIT(2)\ndiff --git a/drivers/phy/qualcomm/phy-qcom-usb-hs.c b/drivers/phy/qualcomm/phy-qcom-usb-hs.c\nindex 98a18987f1be..95581926023f 100644\n--- a/drivers/phy/qualcomm/phy-qcom-usb-hs.c\n+++ b/drivers/phy/qualcomm/phy-qcom-usb-hs.c\n@@ -8,11 +8,12 @@\n #include <linux/clk.h>\n #include <linux/regulator/consumer.h>\n #include <linux/of.h>\n-#include <linux/phy/phy.h>\n #include <linux/reset.h>\n #include <linux/extcon.h>\n #include <linux/notifier.h>\n \n+#include \"../phy-provider.h\"\n+\n #define ULPI_PWR_CLK_MNG_REG\t\t0x88\n # define ULPI_PWR_OTG_COMP_DISABLE\tBIT(0)\n \ndiff --git a/drivers/phy/qualcomm/phy-qcom-usb-hsic.c b/drivers/phy/qualcomm/phy-qcom-usb-hsic.c\nindex 20f6dd37c7c1..fe9315a2f207 100644\n--- a/drivers/phy/qualcomm/phy-qcom-usb-hsic.c\n+++ b/drivers/phy/qualcomm/phy-qcom-usb-hsic.c\n@@ -5,12 +5,13 @@\n #include <linux/module.h>\n #include <linux/ulpi/driver.h>\n #include <linux/ulpi/regs.h>\n-#include <linux/phy/phy.h>\n #include <linux/pinctrl/consumer.h>\n #include <linux/pinctrl/pinctrl-state.h>\n #include <linux/delay.h>\n #include <linux/clk.h>\n \n+#include \"../phy-provider.h\"\n+\n #define ULPI_HSIC_CFG\t\t0x30\n #define ULPI_HSIC_IO_CAL\t0x33\n \ndiff --git a/drivers/phy/qualcomm/phy-qcom-usb-ss.c b/drivers/phy/qualcomm/phy-qcom-usb-ss.c\nindex a3a6d3ce7ea1..17ca14a0b34d 100644\n--- a/drivers/phy/qualcomm/phy-qcom-usb-ss.c\n+++ b/drivers/phy/qualcomm/phy-qcom-usb-ss.c\n@@ -11,12 +11,13 @@\n #include <linux/kernel.h>\n #include <linux/module.h>\n #include <linux/of.h>\n-#include <linux/phy/phy.h>\n #include <linux/platform_device.h>\n #include <linux/regulator/consumer.h>\n #include <linux/reset.h>\n #include <linux/slab.h>\n \n+#include \"../phy-provider.h\"\n+\n #define PHY_CTRL0\t\t\t0x6C\n #define PHY_CTRL1\t\t\t0x70\n #define PHY_CTRL2\t\t\t0x74\ndiff --git a/drivers/phy/ralink/phy-mt7621-pci.c b/drivers/phy/ralink/phy-mt7621-pci.c\nindex a591ad95347c..4865a264136d 100644\n--- a/drivers/phy/ralink/phy-mt7621-pci.c\n+++ b/drivers/phy/ralink/phy-mt7621-pci.c\n@@ -10,11 +10,12 @@\n #include <linux/bitops.h>\n #include <linux/module.h>\n #include <linux/of.h>\n-#include <linux/phy/phy.h>\n #include <linux/platform_device.h>\n #include <linux/regmap.h>\n #include <linux/sys_soc.h>\n \n+#include \"../phy-provider.h\"\n+\n #define RG_PE1_PIPE_REG\t\t\t\t0x02c\n #define RG_PE1_PIPE_RST\t\t\t\tBIT(12)\n #define RG_PE1_PIPE_CMD_FRC\t\t\tBIT(4)\ndiff --git a/drivers/phy/ralink/phy-ralink-usb.c b/drivers/phy/ralink/phy-ralink-usb.c\nindex 0ff07e210769..cc61139ce157 100644\n--- a/drivers/phy/ralink/phy-ralink-usb.c\n+++ b/drivers/phy/ralink/phy-ralink-usb.c\n@@ -14,11 +14,12 @@\n #include <linux/module.h>\n #include <linux/mutex.h>\n #include <linux/of.h>\n-#include <linux/phy/phy.h>\n #include <linux/platform_device.h>\n #include <linux/regmap.h>\n #include <linux/reset.h>\n \n+#include \"../phy-provider.h\"\n+\n #define RT_SYSC_REG_SYSCFG1\t\t0x014\n #define RT_SYSC_REG_CLKCFG1\t\t0x030\n #define RT_SYSC_REG_USB_PHY_CFG\t\t0x05c\ndiff --git a/drivers/phy/realtek/phy-rtk-usb2.c b/drivers/phy/realtek/phy-rtk-usb2.c\nindex 248550ef98ca..a0431f11972e 100644\n--- a/drivers/phy/realtek/phy-rtk-usb2.c\n+++ b/drivers/phy/realtek/phy-rtk-usb2.c\n@@ -16,9 +16,10 @@\n #include <linux/regmap.h>\n #include <linux/sys_soc.h>\n #include <linux/mfd/syscon.h>\n-#include <linux/phy/phy.h>\n #include <linux/usb.h>\n \n+#include \"../phy-provider.h\"\n+\n /* GUSB2PHYACCn register */\n #define PHY_NEW_REG_REQ BIT(25)\n #define PHY_VSTS_BUSY BIT(23)\ndiff --git a/drivers/phy/realtek/phy-rtk-usb3.c b/drivers/phy/realtek/phy-rtk-usb3.c\nindex cce453686db2..3f565c4d96be 100644\n--- a/drivers/phy/realtek/phy-rtk-usb3.c\n+++ b/drivers/phy/realtek/phy-rtk-usb3.c\n@@ -16,9 +16,10 @@\n #include <linux/regmap.h>\n #include <linux/sys_soc.h>\n #include <linux/mfd/syscon.h>\n-#include <linux/phy/phy.h>\n #include <linux/usb.h>\n \n+#include \"../phy-provider.h\"\n+\n #define USB_MDIO_CTRL_PHY_BUSY BIT(7)\n #define USB_MDIO_CTRL_PHY_WRITE BIT(0)\n #define USB_MDIO_CTRL_PHY_ADDR_SHIFT 8\ndiff --git a/drivers/phy/renesas/phy-rcar-gen2.c b/drivers/phy/renesas/phy-rcar-gen2.c\nindex 6c671254c625..ca5498986120 100644\n--- a/drivers/phy/renesas/phy-rcar-gen2.c\n+++ b/drivers/phy/renesas/phy-rcar-gen2.c\n@@ -12,11 +12,12 @@\n #include <linux/io.h>\n #include <linux/module.h>\n #include <linux/of.h>\n-#include <linux/phy/phy.h>\n #include <linux/platform_device.h>\n #include <linux/spinlock.h>\n #include <linux/atomic.h>\n \n+#include \"../phy-provider.h\"\n+\n #define USBHS_LPSTS\t\t\t0x02\n #define USBHS_UGCTRL\t\t\t0x80\n #define USBHS_UGCTRL2\t\t\t0x84\ndiff --git a/drivers/phy/renesas/phy-rcar-gen3-pcie.c b/drivers/phy/renesas/phy-rcar-gen3-pcie.c\nindex 3e2cf59ad480..747a1cd74639 100644\n--- a/drivers/phy/renesas/phy-rcar-gen3-pcie.c\n+++ b/drivers/phy/renesas/phy-rcar-gen3-pcie.c\n@@ -9,11 +9,12 @@\n #include <linux/io.h>\n #include <linux/module.h>\n #include <linux/of.h>\n-#include <linux/phy/phy.h>\n #include <linux/platform_device.h>\n #include <linux/pm_runtime.h>\n #include <linux/spinlock.h>\n \n+#include \"../phy-provider.h\"\n+\n #define PHY_CTRL\t\t0x4000\t\t/* R8A77980 only */\n \n /* PHY control register (PHY_CTRL) */\ndiff --git a/drivers/phy/renesas/phy-rcar-gen3-usb2.c b/drivers/phy/renesas/phy-rcar-gen3-usb2.c\nindex cfc2a8d9028d..48ae5a507752 100644\n--- a/drivers/phy/renesas/phy-rcar-gen3-usb2.c\n+++ b/drivers/phy/renesas/phy-rcar-gen3-usb2.c\n@@ -19,7 +19,6 @@\n #include <linux/mutex.h>\n #include <linux/mux/consumer.h>\n #include <linux/of.h>\n-#include <linux/phy/phy.h>\n #include <linux/platform_device.h>\n #include <linux/pm_runtime.h>\n #include <linux/regulator/consumer.h>\n@@ -29,6 +28,8 @@\n #include <linux/usb/of.h>\n #include <linux/workqueue.h>\n \n+#include \"../phy-provider.h\"\n+\n /******* USB2.0 Host registers (original offset is +0x200) *******/\n #define USB2_INT_ENABLE\t\t0x000\n #define USB2_AHB_BUS_CTR\t0x008\ndiff --git a/drivers/phy/renesas/phy-rcar-gen3-usb3.c b/drivers/phy/renesas/phy-rcar-gen3-usb3.c\nindex 0420f5b283ce..3511831e95d2 100644\n--- a/drivers/phy/renesas/phy-rcar-gen3-usb3.c\n+++ b/drivers/phy/renesas/phy-rcar-gen3-usb3.c\n@@ -10,10 +10,11 @@\n #include <linux/io.h>\n #include <linux/module.h>\n #include <linux/of.h>\n-#include <linux/phy/phy.h>\n #include <linux/platform_device.h>\n #include <linux/pm_runtime.h>\n \n+#include \"../phy-provider.h\"\n+\n #define USB30_CLKSET0\t\t0x034\n #define USB30_CLKSET1\t\t0x036\n #define USB30_SSC_SET\t\t0x038\ndiff --git a/drivers/phy/renesas/phy-rzg3e-usb3.c b/drivers/phy/renesas/phy-rzg3e-usb3.c\nindex 6b3453ea0004..1c9e2276bb73 100644\n--- a/drivers/phy/renesas/phy-rzg3e-usb3.c\n+++ b/drivers/phy/renesas/phy-rzg3e-usb3.c\n@@ -11,11 +11,12 @@\n #include <linux/iopoll.h>\n #include <linux/module.h>\n #include <linux/of.h>\n-#include <linux/phy/phy.h>\n #include <linux/platform_device.h>\n #include <linux/pm_runtime.h>\n #include <linux/reset.h>\n \n+#include \"../phy-provider.h\"\n+\n #define USB3_TEST_RESET\t\t\t\t0x0000\n #define USB3_TEST_UTMICTRL2\t\t\t0x0b04\n #define USB3_TEST_PRMCTRL5_R\t\t\t0x0c10\ndiff --git a/drivers/phy/renesas/r8a779f0-ether-serdes.c b/drivers/phy/renesas/r8a779f0-ether-serdes.c\nindex c34427ac4fdb..807af518aeda 100644\n--- a/drivers/phy/renesas/r8a779f0-ether-serdes.c\n+++ b/drivers/phy/renesas/r8a779f0-ether-serdes.c\n@@ -10,11 +10,12 @@\n #include <linux/kernel.h>\n #include <linux/of.h>\n #include <linux/phy.h>\n-#include <linux/phy/phy.h>\n #include <linux/platform_device.h>\n #include <linux/pm_runtime.h>\n #include <linux/reset.h>\n \n+#include \"../phy-provider.h\"\n+\n #define R8A779F0_ETH_SERDES_NUM\t\t\t3\n #define R8A779F0_ETH_SERDES_OFFSET\t\t0x0400\n #define R8A779F0_ETH_SERDES_BANK_SELECT\t\t0x03fc\ndiff --git a/drivers/phy/rockchip/phy-rockchip-dp.c b/drivers/phy/rockchip/phy-rockchip-dp.c\nindex 592aa956eead..63e972969379 100644\n--- a/drivers/phy/rockchip/phy-rockchip-dp.c\n+++ b/drivers/phy/rockchip/phy-rockchip-dp.c\n@@ -10,10 +10,11 @@\n #include <linux/mfd/syscon.h>\n #include <linux/module.h>\n #include <linux/of.h>\n-#include <linux/phy/phy.h>\n #include <linux/platform_device.h>\n #include <linux/regmap.h>\n \n+#include \"../phy-provider.h\"\n+\n #define GRF_SOC_CON12 0x0274\n \n #define GRF_EDP_REF_CLK_SEL_INTER_HIWORD_MASK BIT(20)\ndiff --git a/drivers/phy/rockchip/phy-rockchip-dphy-rx0.c b/drivers/phy/rockchip/phy-rockchip-dphy-rx0.c\nindex e6a768bbb9b3..de7e00580e20 100644\n--- a/drivers/phy/rockchip/phy-rockchip-dphy-rx0.c\n+++ b/drivers/phy/rockchip/phy-rockchip-dphy-rx0.c\n@@ -21,11 +21,12 @@\n #include <linux/mfd/syscon.h>\n #include <linux/module.h>\n #include <linux/of.h>\n-#include <linux/phy/phy.h>\n #include <linux/phy/phy-mipi-dphy.h>\n #include <linux/platform_device.h>\n #include <linux/regmap.h>\n \n+#include \"../phy-provider.h\"\n+\n #define RK3399_GRF_SOC_CON9\t\t0x6224\n #define RK3399_GRF_SOC_CON21\t\t0x6254\n #define RK3399_GRF_SOC_CON22\t\t0x6258\ndiff --git a/drivers/phy/rockchip/phy-rockchip-emmc.c b/drivers/phy/rockchip/phy-rockchip-emmc.c\nindex 5187983c58e5..fd292f063f48 100644\n--- a/drivers/phy/rockchip/phy-rockchip-emmc.c\n+++ b/drivers/phy/rockchip/phy-rockchip-emmc.c\n@@ -13,10 +13,11 @@\n #include <linux/module.h>\n #include <linux/of.h>\n #include <linux/of_address.h>\n-#include <linux/phy/phy.h>\n #include <linux/platform_device.h>\n #include <linux/regmap.h>\n \n+#include \"../phy-provider.h\"\n+\n /*\n * The higher 16-bit of this register is used for write protection\n * only if BIT(x + 16) set to 1 the BIT(x) can be written.\ndiff --git a/drivers/phy/rockchip/phy-rockchip-inno-csidphy.c b/drivers/phy/rockchip/phy-rockchip-inno-csidphy.c\nindex c79fb53d8ee5..3b5d86b07564 100644\n--- a/drivers/phy/rockchip/phy-rockchip-inno-csidphy.c\n+++ b/drivers/phy/rockchip/phy-rockchip-inno-csidphy.c\n@@ -13,13 +13,14 @@\n #include <linux/module.h>\n #include <linux/of.h>\n #include <linux/of_platform.h>\n-#include <linux/phy/phy.h>\n #include <linux/phy/phy-mipi-dphy.h>\n #include <linux/platform_device.h>\n #include <linux/pm_runtime.h>\n #include <linux/regmap.h>\n #include <linux/reset.h>\n \n+#include \"../phy-provider.h\"\n+\n /* GRF */\n #define RK1808_GRF_PD_VI_CON_OFFSET\t0x0430\n \ndiff --git a/drivers/phy/rockchip/phy-rockchip-inno-dsidphy.c b/drivers/phy/rockchip/phy-rockchip-inno-dsidphy.c\nindex 30d5e5ddff4a..5613b34958fe 100644\n--- a/drivers/phy/rockchip/phy-rockchip-inno-dsidphy.c\n+++ b/drivers/phy/rockchip/phy-rockchip-inno-dsidphy.c\n@@ -15,13 +15,13 @@\n #include <linux/mfd/syscon.h>\n #include <linux/module.h>\n #include <linux/of.h>\n+#include <linux/phy/phy-mipi-dphy.h>\n #include <linux/platform_device.h>\n #include <linux/pm_runtime.h>\n #include <linux/reset.h>\n #include <linux/time64.h>\n \n-#include <linux/phy/phy.h>\n-#include <linux/phy/phy-mipi-dphy.h>\n+#include \"../phy-provider.h\"\n \n #define UPDATE(x, h, l)\t(((x) << (l)) & GENMASK((h), (l)))\n \ndiff --git a/drivers/phy/rockchip/phy-rockchip-inno-hdmi.c b/drivers/phy/rockchip/phy-rockchip-inno-hdmi.c\nindex 1483907413fa..82b5e7434f83 100644\n--- a/drivers/phy/rockchip/phy-rockchip-inno-hdmi.c\n+++ b/drivers/phy/rockchip/phy-rockchip-inno-hdmi.c\n@@ -20,6 +20,8 @@\n #include <linux/phy/phy.h>\n #include <linux/slab.h>\n \n+#include \"../phy-provider.h\"\n+\n #define UPDATE(x, h, l)\t\t(((x) << (l)) & GENMASK((h), (l)))\n \n /* REG: 0x00 */\ndiff --git a/drivers/phy/rockchip/phy-rockchip-inno-usb2.c b/drivers/phy/rockchip/phy-rockchip-inno-usb2.c\nindex 8f4c08e599aa..f88e09f61994 100644\n--- a/drivers/phy/rockchip/phy-rockchip-inno-usb2.c\n+++ b/drivers/phy/rockchip/phy-rockchip-inno-usb2.c\n@@ -18,7 +18,6 @@\n #include <linux/mutex.h>\n #include <linux/of.h>\n #include <linux/of_irq.h>\n-#include <linux/phy/phy.h>\n #include <linux/platform_device.h>\n #include <linux/power_supply.h>\n #include <linux/regmap.h>\n@@ -27,6 +26,8 @@\n #include <linux/usb/of.h>\n #include <linux/usb/otg.h>\n \n+#include \"../phy-provider.h\"\n+\n #define BIT_WRITEABLE_SHIFT\t16\n #define SCHEDULE_DELAY\t\t(60 * HZ)\n #define OTG_SCHEDULE_DELAY\t(2 * HZ)\ndiff --git a/drivers/phy/rockchip/phy-rockchip-naneng-combphy.c b/drivers/phy/rockchip/phy-rockchip-naneng-combphy.c\nindex b60d6bf3f33c..2deb2666acb1 100644\n--- a/drivers/phy/rockchip/phy-rockchip-naneng-combphy.c\n+++ b/drivers/phy/rockchip/phy-rockchip-naneng-combphy.c\n@@ -9,12 +9,13 @@\n #include <linux/clk.h>\n #include <linux/mfd/syscon.h>\n #include <linux/of.h>\n-#include <linux/phy/phy.h>\n #include <linux/platform_device.h>\n #include <linux/regmap.h>\n #include <linux/reset.h>\n #include <linux/units.h>\n \n+#include \"../phy-provider.h\"\n+\n #define BIT_WRITEABLE_SHIFT\t\t16\n #define REF_CLOCK_24MHz\t\t\t(24 * HZ_PER_MHZ)\n #define REF_CLOCK_25MHz\t\t\t(25 * HZ_PER_MHZ)\ndiff --git a/drivers/phy/rockchip/phy-rockchip-pcie.c b/drivers/phy/rockchip/phy-rockchip-pcie.c\nindex 126306c01454..604ff00653b0 100644\n--- a/drivers/phy/rockchip/phy-rockchip-pcie.c\n+++ b/drivers/phy/rockchip/phy-rockchip-pcie.c\n@@ -13,12 +13,12 @@\n #include <linux/mfd/syscon.h>\n #include <linux/module.h>\n #include <linux/of.h>\n-#include <linux/phy/phy.h>\n #include <linux/platform_device.h>\n #include <linux/property.h>\n #include <linux/regmap.h>\n #include <linux/reset.h>\n \n+#include \"../phy-provider.h\"\n \n #define PHY_MAX_LANE_NUM 4\n #define PHY_CFG_DATA_MASK GENMASK(10, 7)\ndiff --git a/drivers/phy/rockchip/phy-rockchip-samsung-dcphy.c b/drivers/phy/rockchip/phy-rockchip-samsung-dcphy.c\nindex 0f69060aa5d5..78a0446b81df 100644\n--- a/drivers/phy/rockchip/phy-rockchip-samsung-dcphy.c\n+++ b/drivers/phy/rockchip/phy-rockchip-samsung-dcphy.c\n@@ -15,12 +15,13 @@\n #include <linux/module.h>\n #include <linux/mod_devicetable.h>\n #include <linux/of.h>\n-#include <linux/phy/phy.h>\n #include <linux/platform_device.h>\n #include <linux/pm_runtime.h>\n #include <linux/regmap.h>\n #include <linux/reset.h>\n \n+#include \"../phy-provider.h\"\n+\n #define BIAS_CON0\t\t0x0000\n #define I_RES_CNTL_MASK\t\tGENMASK(6, 4)\n #define I_RES_CNTL(x)\t\tFIELD_PREP(I_RES_CNTL_MASK, x)\ndiff --git a/drivers/phy/rockchip/phy-rockchip-samsung-hdptx.c b/drivers/phy/rockchip/phy-rockchip-samsung-hdptx.c\nindex 2d973bc37f07..01801a4dc436 100644\n--- a/drivers/phy/rockchip/phy-rockchip-samsung-hdptx.c\n+++ b/drivers/phy/rockchip/phy-rockchip-samsung-hdptx.c\n@@ -21,6 +21,8 @@\n #include <linux/regmap.h>\n #include <linux/reset.h>\n \n+#include \"../phy-provider.h\"\n+\n #define GRF_HDPTX_CON0\t\t\t0x00\n #define LC_REF_CLK_SEL\t\t\tBIT(11)\n #define HDPTX_I_PLL_EN\t\t\tBIT(7)\ndiff --git a/drivers/phy/rockchip/phy-rockchip-snps-pcie3.c b/drivers/phy/rockchip/phy-rockchip-snps-pcie3.c\nindex 4e8ffd173096..029566330aa0 100644\n--- a/drivers/phy/rockchip/phy-rockchip-snps-pcie3.c\n+++ b/drivers/phy/rockchip/phy-rockchip-snps-pcie3.c\n@@ -14,11 +14,12 @@\n #include <linux/module.h>\n #include <linux/of.h>\n #include <linux/phy/pcie.h>\n-#include <linux/phy/phy.h>\n #include <linux/platform_device.h>\n #include <linux/regmap.h>\n #include <linux/reset.h>\n \n+#include \"../phy-provider.h\"\n+\n /* Register for RK3568 */\n #define GRF_PCIE30PHY_CON1\t\t\t0x4\n #define GRF_PCIE30PHY_CON6\t\t\t0x18\ndiff --git a/drivers/phy/rockchip/phy-rockchip-typec.c b/drivers/phy/rockchip/phy-rockchip-typec.c\nindex 0a318ccf1bbf..4a9756ca4f68 100644\n--- a/drivers/phy/rockchip/phy-rockchip-typec.c\n+++ b/drivers/phy/rockchip/phy-rockchip-typec.c\n@@ -43,6 +43,7 @@\n #include <linux/io.h>\n #include <linux/iopoll.h>\n #include <linux/kernel.h>\n+#include <linux/mfd/syscon.h>\n #include <linux/module.h>\n #include <linux/mutex.h>\n #include <linux/of.h>\n@@ -53,8 +54,7 @@\n #include <linux/regmap.h>\n #include <linux/reset.h>\n \n-#include <linux/mfd/syscon.h>\n-#include <linux/phy/phy.h>\n+#include \"../phy-provider.h\"\n \n #define CMN_SSM_BANDGAP\t\t\t(0x21 << 2)\n #define CMN_SSM_BIAS\t\t\t(0x22 << 2)\ndiff --git a/drivers/phy/rockchip/phy-rockchip-usb.c b/drivers/phy/rockchip/phy-rockchip-usb.c\nindex cef96739cf3f..0652f821332b 100644\n--- a/drivers/phy/rockchip/phy-rockchip-usb.c\n+++ b/drivers/phy/rockchip/phy-rockchip-usb.c\n@@ -14,7 +14,6 @@\n #include <linux/module.h>\n #include <linux/mutex.h>\n #include <linux/of.h>\n-#include <linux/phy/phy.h>\n #include <linux/platform_device.h>\n #include <linux/property.h>\n #include <linux/regulator/consumer.h>\n@@ -23,6 +22,8 @@\n #include <linux/mfd/syscon.h>\n #include <linux/delay.h>\n \n+#include \"../phy-provider.h\"\n+\n static int enable_usb_uart;\n \n #define UOC_CON0\t\t\t\t\t0x00\ndiff --git a/drivers/phy/rockchip/phy-rockchip-usbdp.c b/drivers/phy/rockchip/phy-rockchip-usbdp.c\nindex fba35510d88c..cf2abf29512f 100644\n--- a/drivers/phy/rockchip/phy-rockchip-usbdp.c\n+++ b/drivers/phy/rockchip/phy-rockchip-usbdp.c\n@@ -25,6 +25,8 @@\n #include <linux/usb/typec_dp.h>\n #include <linux/usb/typec_mux.h>\n \n+#include \"../phy-provider.h\"\n+\n /* USBDP PHY Register Definitions */\n #define UDPHY_PCS\t\t\t\t0x4000\n #define UDPHY_PMA\t\t\t\t0x8000\ndiff --git a/drivers/phy/samsung/phy-exynos-dp-video.c b/drivers/phy/samsung/phy-exynos-dp-video.c\nindex a636dee07585..00d0ed82a620 100644\n--- a/drivers/phy/samsung/phy-exynos-dp-video.c\n+++ b/drivers/phy/samsung/phy-exynos-dp-video.c\n@@ -12,11 +12,12 @@\n #include <linux/module.h>\n #include <linux/mfd/syscon.h>\n #include <linux/of.h>\n-#include <linux/phy/phy.h>\n #include <linux/platform_device.h>\n #include <linux/regmap.h>\n #include <linux/soc/samsung/exynos-regs-pmu.h>\n \n+#include \"../phy-provider.h\"\n+\n struct exynos_dp_video_phy_drvdata {\n \tu32 phy_ctrl_offset;\n };\ndiff --git a/drivers/phy/samsung/phy-exynos-mipi-video.c b/drivers/phy/samsung/phy-exynos-mipi-video.c\nindex be925508ed97..ce8a258a104e 100644\n--- a/drivers/phy/samsung/phy-exynos-mipi-video.c\n+++ b/drivers/phy/samsung/phy-exynos-mipi-video.c\n@@ -11,13 +11,14 @@\n #include <linux/kernel.h>\n #include <linux/module.h>\n #include <linux/of.h>\n-#include <linux/phy/phy.h>\n #include <linux/platform_device.h>\n #include <linux/regmap.h>\n #include <linux/spinlock.h>\n #include <linux/soc/samsung/exynos-regs-pmu.h>\n #include <linux/mfd/syscon.h>\n \n+#include \"../phy-provider.h\"\n+\n enum exynos_mipi_phy_id {\n \tEXYNOS_MIPI_PHY_ID_NONE = -1,\n \tEXYNOS_MIPI_PHY_ID_CSIS0,\ndiff --git a/drivers/phy/samsung/phy-exynos-pcie.c b/drivers/phy/samsung/phy-exynos-pcie.c\nindex 53c9230c2907..9dd3a4a90fa7 100644\n--- a/drivers/phy/samsung/phy-exynos-pcie.c\n+++ b/drivers/phy/samsung/phy-exynos-pcie.c\n@@ -12,9 +12,10 @@\n #include <linux/mfd/syscon.h>\n #include <linux/of_platform.h>\n #include <linux/platform_device.h>\n-#include <linux/phy/phy.h>\n #include <linux/regmap.h>\n \n+#include \"../phy-provider.h\"\n+\n #define PCIE_PHY_OFFSET(x)\t\t((x) * 0x4)\n \n /* Sysreg FSYS register offsets and bits for Exynos5433 */\ndiff --git a/drivers/phy/samsung/phy-exynos4210-usb2.c b/drivers/phy/samsung/phy-exynos4210-usb2.c\nindex 3898a7f58217..beb2f96bebbf 100644\n--- a/drivers/phy/samsung/phy-exynos4210-usb2.c\n+++ b/drivers/phy/samsung/phy-exynos4210-usb2.c\n@@ -8,8 +8,9 @@\n \n #include <linux/delay.h>\n #include <linux/io.h>\n-#include <linux/phy/phy.h>\n #include <linux/regmap.h>\n+\n+#include \"../phy-provider.h\"\n #include \"phy-samsung-usb2.h\"\n \n /* Exynos USB PHY registers */\ndiff --git a/drivers/phy/samsung/phy-exynos4x12-usb2.c b/drivers/phy/samsung/phy-exynos4x12-usb2.c\nindex b528a5d037fe..a402f80d0aab 100644\n--- a/drivers/phy/samsung/phy-exynos4x12-usb2.c\n+++ b/drivers/phy/samsung/phy-exynos4x12-usb2.c\n@@ -8,8 +8,9 @@\n \n #include <linux/delay.h>\n #include <linux/io.h>\n-#include <linux/phy/phy.h>\n #include <linux/regmap.h>\n+\n+#include \"../phy-provider.h\"\n #include \"phy-samsung-usb2.h\"\n \n /* Exynos USB PHY registers */\ndiff --git a/drivers/phy/samsung/phy-exynos5-usbdrd.c b/drivers/phy/samsung/phy-exynos5-usbdrd.c\nindex 5a181cb4597e..cb476d007e3f 100644\n--- a/drivers/phy/samsung/phy-exynos5-usbdrd.c\n+++ b/drivers/phy/samsung/phy-exynos5-usbdrd.c\n@@ -26,6 +26,8 @@\n #include <linux/usb/typec.h>\n #include <linux/usb/typec_mux.h>\n \n+#include \"../phy-provider.h\"\n+\n /* Exynos USB PHY registers */\n #define EXYNOS5_FSEL_9MHZ6\t\t0x0\n #define EXYNOS5_FSEL_10MHZ\t\t0x1\ndiff --git a/drivers/phy/samsung/phy-exynos5250-sata.c b/drivers/phy/samsung/phy-exynos5250-sata.c\nindex 595adba5fb8f..0f85ae0a5901 100644\n--- a/drivers/phy/samsung/phy-exynos5250-sata.c\n+++ b/drivers/phy/samsung/phy-exynos5250-sata.c\n@@ -15,12 +15,13 @@\n #include <linux/module.h>\n #include <linux/of.h>\n #include <linux/of_address.h>\n-#include <linux/phy/phy.h>\n #include <linux/platform_device.h>\n #include <linux/regmap.h>\n #include <linux/spinlock.h>\n #include <linux/mfd/syscon.h>\n \n+#include \"../phy-provider.h\"\n+\n #define SATAPHY_CONTROL_OFFSET\t\t0x0724\n #define EXYNOS5_SATAPHY_PMU_ENABLE\tBIT(0)\n #define EXYNOS5_SATA_RESET\t\t0x4\ndiff --git a/drivers/phy/samsung/phy-exynos5250-usb2.c b/drivers/phy/samsung/phy-exynos5250-usb2.c\nindex 21b06072f866..04815633f290 100644\n--- a/drivers/phy/samsung/phy-exynos5250-usb2.c\n+++ b/drivers/phy/samsung/phy-exynos5250-usb2.c\n@@ -8,8 +8,9 @@\n \n #include <linux/delay.h>\n #include <linux/io.h>\n-#include <linux/phy/phy.h>\n #include <linux/regmap.h>\n+\n+#include \"../phy-provider.h\"\n #include \"phy-samsung-usb2.h\"\n \n /* Exynos USB PHY registers */\ndiff --git a/drivers/phy/samsung/phy-s5pv210-usb2.c b/drivers/phy/samsung/phy-s5pv210-usb2.c\nindex 32be62e49804..4d72559d29a9 100644\n--- a/drivers/phy/samsung/phy-s5pv210-usb2.c\n+++ b/drivers/phy/samsung/phy-s5pv210-usb2.c\n@@ -8,7 +8,8 @@\n \n #include <linux/delay.h>\n #include <linux/io.h>\n-#include <linux/phy/phy.h>\n+\n+#include \"../phy-provider.h\"\n #include \"phy-samsung-usb2.h\"\n \n /* Exynos USB PHY registers */\ndiff --git a/drivers/phy/samsung/phy-samsung-ufs.c b/drivers/phy/samsung/phy-samsung-ufs.c\nindex ee665f26c236..b55a726cd44e 100644\n--- a/drivers/phy/samsung/phy-samsung-ufs.c\n+++ b/drivers/phy/samsung/phy-samsung-ufs.c\n@@ -15,10 +15,10 @@\n #include <linux/iopoll.h>\n #include <linux/mfd/syscon.h>\n #include <linux/module.h>\n-#include <linux/phy/phy.h>\n #include <linux/platform_device.h>\n #include <linux/regmap.h>\n \n+#include \"../phy-provider.h\"\n #include \"phy-samsung-ufs.h\"\n \n #define for_each_phy_lane(phy, i) \\\ndiff --git a/drivers/phy/samsung/phy-samsung-ufs.h b/drivers/phy/samsung/phy-samsung-ufs.h\nindex f2c2e744e5ba..90f4d4cef631 100644\n--- a/drivers/phy/samsung/phy-samsung-ufs.h\n+++ b/drivers/phy/samsung/phy-samsung-ufs.h\n@@ -10,9 +10,10 @@\n #ifndef _PHY_SAMSUNG_UFS_\n #define _PHY_SAMSUNG_UFS_\n \n-#include <linux/phy/phy.h>\n #include <linux/regmap.h>\n \n+#include \"../phy-provider.h\"\n+\n #define PHY_COMN_BLK\t1\n #define PHY_TRSV_BLK\t2\n #define END_UFS_PHY_CFG { 0 }\ndiff --git a/drivers/phy/samsung/phy-samsung-usb2.c b/drivers/phy/samsung/phy-samsung-usb2.c\nindex d2749b67cf8f..362dd4ae3cab 100644\n--- a/drivers/phy/samsung/phy-samsung-usb2.c\n+++ b/drivers/phy/samsung/phy-samsung-usb2.c\n@@ -13,6 +13,8 @@\n #include <linux/phy/phy.h>\n #include <linux/platform_device.h>\n #include <linux/spinlock.h>\n+\n+#include \"../phy-provider.h\"\n #include \"phy-samsung-usb2.h\"\n \n static int samsung_usb2_phy_power_on(struct phy *phy)\ndiff --git a/drivers/phy/samsung/phy-samsung-usb2.h b/drivers/phy/samsung/phy-samsung-usb2.h\nindex ebaf43bfc5a2..515c7938fccd 100644\n--- a/drivers/phy/samsung/phy-samsung-usb2.h\n+++ b/drivers/phy/samsung/phy-samsung-usb2.h\n@@ -10,12 +10,13 @@\n #define _PHY_EXYNOS_USB2_H\n \n #include <linux/clk.h>\n-#include <linux/phy/phy.h>\n #include <linux/device.h>\n #include <linux/regmap.h>\n #include <linux/spinlock.h>\n #include <linux/regulator/consumer.h>\n \n+#include \"../phy-provider.h\"\n+\n #define KHZ 1000\n #define MHZ (KHZ * KHZ)\n \ndiff --git a/drivers/phy/socionext/phy-uniphier-ahci.c b/drivers/phy/socionext/phy-uniphier-ahci.c\nindex 28cf3efe0695..6b3ce56c7f0c 100644\n--- a/drivers/phy/socionext/phy-uniphier-ahci.c\n+++ b/drivers/phy/socionext/phy-uniphier-ahci.c\n@@ -12,10 +12,11 @@\n #include <linux/module.h>\n #include <linux/of.h>\n #include <linux/of_platform.h>\n-#include <linux/phy/phy.h>\n #include <linux/platform_device.h>\n #include <linux/reset.h>\n \n+#include \"../phy-provider.h\"\n+\n struct uniphier_ahciphy_priv {\n \tstruct device *dev;\n \tvoid __iomem *base;\ndiff --git a/drivers/phy/socionext/phy-uniphier-pcie.c b/drivers/phy/socionext/phy-uniphier-pcie.c\nindex c19173492b79..00f6cdf846f1 100644\n--- a/drivers/phy/socionext/phy-uniphier-pcie.c\n+++ b/drivers/phy/socionext/phy-uniphier-pcie.c\n@@ -12,12 +12,13 @@\n #include <linux/mfd/syscon.h>\n #include <linux/module.h>\n #include <linux/of.h>\n-#include <linux/phy/phy.h>\n #include <linux/platform_device.h>\n #include <linux/regmap.h>\n #include <linux/reset.h>\n #include <linux/resource.h>\n \n+#include \"../phy-provider.h\"\n+\n /* PHY */\n #define PCL_PHY_CLKCTRL\t\t0x0000\n #define PORT_SEL_MASK\t\tGENMASK(11, 9)\ndiff --git a/drivers/phy/socionext/phy-uniphier-usb2.c b/drivers/phy/socionext/phy-uniphier-usb2.c\nindex c49d432e526b..6ee566478be0 100644\n--- a/drivers/phy/socionext/phy-uniphier-usb2.c\n+++ b/drivers/phy/socionext/phy-uniphier-usb2.c\n@@ -10,11 +10,12 @@\n #include <linux/module.h>\n #include <linux/of.h>\n #include <linux/of_platform.h>\n-#include <linux/phy/phy.h>\n #include <linux/platform_device.h>\n #include <linux/regmap.h>\n #include <linux/regulator/consumer.h>\n \n+#include \"../phy-provider.h\"\n+\n #define SG_USBPHY1CTRL\t\t0x500\n #define SG_USBPHY1CTRL2\t\t0x504\n #define SG_USBPHY2CTRL\t\t0x508\ndiff --git a/drivers/phy/socionext/phy-uniphier-usb3hs.c b/drivers/phy/socionext/phy-uniphier-usb3hs.c\nindex 8c8673df0084..a08db863223f 100644\n--- a/drivers/phy/socionext/phy-uniphier-usb3hs.c\n+++ b/drivers/phy/socionext/phy-uniphier-usb3hs.c\n@@ -17,12 +17,13 @@\n #include <linux/nvmem-consumer.h>\n #include <linux/of.h>\n #include <linux/of_platform.h>\n-#include <linux/phy/phy.h>\n #include <linux/platform_device.h>\n #include <linux/regulator/consumer.h>\n #include <linux/reset.h>\n #include <linux/slab.h>\n \n+#include \"../phy-provider.h\"\n+\n #define HSPHY_CFG0\t\t0x0\n #define HSPHY_CFG0_HS_I_MASK\tGENMASK(31, 28)\n #define HSPHY_CFG0_HSDISC_MASK\tGENMASK(27, 26)\ndiff --git a/drivers/phy/socionext/phy-uniphier-usb3ss.c b/drivers/phy/socionext/phy-uniphier-usb3ss.c\nindex f402ed8732fd..8829305e9d4c 100644\n--- a/drivers/phy/socionext/phy-uniphier-usb3ss.c\n+++ b/drivers/phy/socionext/phy-uniphier-usb3ss.c\n@@ -16,11 +16,12 @@\n #include <linux/module.h>\n #include <linux/of.h>\n #include <linux/of_platform.h>\n-#include <linux/phy/phy.h>\n #include <linux/platform_device.h>\n #include <linux/regulator/consumer.h>\n #include <linux/reset.h>\n \n+#include \"../phy-provider.h\"\n+\n #define SSPHY_TESTI\t\t0x0\n #define TESTI_DAT_MASK\t\tGENMASK(13, 6)\n #define TESTI_ADR_MASK\t\tGENMASK(5, 1)\ndiff --git a/drivers/phy/sophgo/phy-cv1800-usb2.c b/drivers/phy/sophgo/phy-cv1800-usb2.c\nindex 6fe846534e9c..1fd7bba498ad 100644\n--- a/drivers/phy/sophgo/phy-cv1800-usb2.c\n+++ b/drivers/phy/sophgo/phy-cv1800-usb2.c\n@@ -12,10 +12,11 @@\n #include <linux/of.h>\n #include <linux/of_address.h>\n #include <linux/platform_device.h>\n-#include <linux/phy/phy.h>\n #include <linux/regmap.h>\n #include <linux/spinlock.h>\n \n+#include \"../phy-provider.h\"\n+\n #define REG_USB_PHY_CTRL\t\t0x048\n \n #define PHY_VBUS_POWER_EN\t\tBIT(0)\ndiff --git a/drivers/phy/spacemit/phy-k1-pcie.c b/drivers/phy/spacemit/phy-k1-pcie.c\nindex 75477bea7f70..6f8f2f39f7f8 100644\n--- a/drivers/phy/spacemit/phy-k1-pcie.c\n+++ b/drivers/phy/spacemit/phy-k1-pcie.c\n@@ -5,6 +5,7 @@\n * Copyright (C) 2025 by RISCstar Solutions Corporation. All rights reserved.\n */\n \n+#include <dt-bindings/phy/phy.h>\n #include <linux/bitfield.h>\n #include <linux/clk.h>\n #include <linux/clk-provider.h>\n@@ -12,12 +13,11 @@\n #include <linux/kernel.h>\n #include <linux/mfd/syscon.h>\n #include <linux/module.h>\n-#include <linux/phy/phy.h>\n #include <linux/platform_device.h>\n #include <linux/regmap.h>\n #include <linux/reset.h>\n \n-#include <dt-bindings/phy/phy.h>\n+#include \"../phy-provider.h\"\n \n /*\n * Three PCIe ports are supported in the SpacemiT K1 SoC, and this driver\ndiff --git a/drivers/phy/spacemit/phy-k1-usb2.c b/drivers/phy/spacemit/phy-k1-usb2.c\nindex 14a02f554810..f482b6c9b6d4 100644\n--- a/drivers/phy/spacemit/phy-k1-usb2.c\n+++ b/drivers/phy/spacemit/phy-k1-usb2.c\n@@ -9,11 +9,12 @@\n #include <linux/bitfield.h>\n #include <linux/clk.h>\n #include <linux/iopoll.h>\n-#include <linux/phy/phy.h>\n #include <linux/platform_device.h>\n #include <linux/regmap.h>\n #include <linux/usb/of.h>\n \n+#include \"../phy-provider.h\"\n+\n #define PHY_RST_MODE_CTRL\t\t0x04\n #define PHY_PLL_RDY\t\t\tBIT(0)\n #define PHY_CLK_CDR_EN\t\t\tBIT(1)\ndiff --git a/drivers/phy/st/phy-miphy28lp.c b/drivers/phy/st/phy-miphy28lp.c\nindex 43cef89af55e..e9792deb629a 100644\n--- a/drivers/phy/st/phy-miphy28lp.c\n+++ b/drivers/phy/st/phy-miphy28lp.c\n@@ -7,6 +7,7 @@\n * Author: Alexandre Torgue <alexandre.torgue@st.com>\n */\n \n+#include <dt-bindings/phy/phy.h>\n #include <linux/platform_device.h>\n #include <linux/io.h>\n #include <linux/iopoll.h>\n@@ -16,13 +17,12 @@\n #include <linux/of_platform.h>\n #include <linux/of_address.h>\n #include <linux/clk.h>\n-#include <linux/phy/phy.h>\n #include <linux/delay.h>\n #include <linux/mfd/syscon.h>\n #include <linux/regmap.h>\n #include <linux/reset.h>\n \n-#include <dt-bindings/phy/phy.h>\n+#include \"../phy-provider.h\"\n \n /* MiPHY registers */\n #define MIPHY_CONF_RESET\t\t0x00\ndiff --git a/drivers/phy/st/phy-spear1310-miphy.c b/drivers/phy/st/phy-spear1310-miphy.c\nindex c661ab63505f..86acc2412c46 100644\n--- a/drivers/phy/st/phy-spear1310-miphy.c\n+++ b/drivers/phy/st/phy-spear1310-miphy.c\n@@ -14,10 +14,11 @@\n #include <linux/mfd/syscon.h>\n #include <linux/module.h>\n #include <linux/of.h>\n-#include <linux/phy/phy.h>\n #include <linux/platform_device.h>\n #include <linux/regmap.h>\n \n+#include \"../phy-provider.h\"\n+\n /* SPEAr1310 Registers */\n #define SPEAR1310_PCIE_SATA_CFG\t\t\t0x3A4\n \t#define SPEAR1310_PCIE_SATA2_SEL_PCIE\t\t(0 << 31)\ndiff --git a/drivers/phy/st/phy-spear1340-miphy.c b/drivers/phy/st/phy-spear1340-miphy.c\nindex 85a60d64ebb7..4dbd3158c060 100644\n--- a/drivers/phy/st/phy-spear1340-miphy.c\n+++ b/drivers/phy/st/phy-spear1340-miphy.c\n@@ -14,10 +14,11 @@\n #include <linux/mfd/syscon.h>\n #include <linux/module.h>\n #include <linux/of.h>\n-#include <linux/phy/phy.h>\n #include <linux/platform_device.h>\n #include <linux/regmap.h>\n \n+#include \"../phy-provider.h\"\n+\n /* SPEAr1340 Registers */\n /* Power Management Registers */\n #define SPEAR1340_PCM_CFG\t\t\t0x100\ndiff --git a/drivers/phy/st/phy-stih407-usb.c b/drivers/phy/st/phy-stih407-usb.c\nindex 7a3e4584895c..497f9aa4139d 100644\n--- a/drivers/phy/st/phy-stih407-usb.c\n+++ b/drivers/phy/st/phy-stih407-usb.c\n@@ -16,7 +16,8 @@\n #include <linux/regmap.h>\n #include <linux/reset.h>\n #include <linux/mfd/syscon.h>\n-#include <linux/phy/phy.h>\n+\n+#include \"../phy-provider.h\"\n \n #define PHYPARAM_REG\t0\n #define PHYCTRL_REG\t1\ndiff --git a/drivers/phy/st/phy-stm32-combophy.c b/drivers/phy/st/phy-stm32-combophy.c\nindex 607b4d607eb5..8757b1993e90 100644\n--- a/drivers/phy/st/phy-stm32-combophy.c\n+++ b/drivers/phy/st/phy-stm32-combophy.c\n@@ -10,12 +10,13 @@\n #include <linux/clk.h>\n #include <linux/mfd/syscon.h>\n #include <linux/platform_device.h>\n-#include <linux/phy/phy.h>\n #include <linux/pm_runtime.h>\n #include <linux/regmap.h>\n #include <linux/reset.h>\n #include <dt-bindings/phy/phy.h>\n \n+#include \"../phy-provider.h\"\n+\n #define SYSCFG_COMBOPHY_CR1 0x4c00\n #define SYSCFG_COMBOPHY_CR2 0x4c04\n #define SYSCFG_COMBOPHY_CR4 0x4c0c\ndiff --git a/drivers/phy/st/phy-stm32-usbphyc.c b/drivers/phy/st/phy-stm32-usbphyc.c\nindex b44afbff8616..647fbbe5c734 100644\n--- a/drivers/phy/st/phy-stm32-usbphyc.c\n+++ b/drivers/phy/st/phy-stm32-usbphyc.c\n@@ -18,6 +18,8 @@\n #include <linux/reset.h>\n #include <linux/units.h>\n \n+#include \"../phy-provider.h\"\n+\n #define STM32_USBPHYC_PLL\t0x0\n #define STM32_USBPHYC_MISC\t0x8\n #define STM32_USBPHYC_MONITOR(X) (0x108 + ((X) * 0x100))\ndiff --git a/drivers/phy/starfive/phy-jh7110-dphy-rx.c b/drivers/phy/starfive/phy-jh7110-dphy-rx.c\nindex 0b039e1f71c5..099a1ebf6194 100644\n--- a/drivers/phy/starfive/phy-jh7110-dphy-rx.c\n+++ b/drivers/phy/starfive/phy-jh7110-dphy-rx.c\n@@ -13,11 +13,12 @@\n #include <linux/io.h>\n #include <linux/module.h>\n #include <linux/of.h>\n-#include <linux/phy/phy.h>\n #include <linux/platform_device.h>\n #include <linux/pm_runtime.h>\n #include <linux/reset.h>\n \n+#include \"../phy-provider.h\"\n+\n #define STF_DPHY_APBCFGSAIF_SYSCFG(x)\t\t(x)\n \n #define STF_DPHY_ENABLE_CLK\t\t\tBIT(6)\ndiff --git a/drivers/phy/starfive/phy-jh7110-dphy-tx.c b/drivers/phy/starfive/phy-jh7110-dphy-tx.c\nindex c64d1c91b130..a5faf06b6d14 100644\n--- a/drivers/phy/starfive/phy-jh7110-dphy-tx.c\n+++ b/drivers/phy/starfive/phy-jh7110-dphy-tx.c\n@@ -15,12 +15,13 @@\n #include <linux/module.h>\n #include <linux/of.h>\n #include <linux/of_device.h>\n-#include <linux/phy/phy.h>\n #include <linux/phy/phy-mipi-dphy.h>\n #include <linux/platform_device.h>\n #include <linux/pm_runtime.h>\n #include <linux/reset.h>\n \n+#include \"../phy-provider.h\"\n+\n #define STF_DPHY_APBIFSAIF_SYSCFG(x)\t\t\t(x)\n \n #define STF_DPHY_AON_POWER_READY_N_ACTIVE\t\t0\ndiff --git a/drivers/phy/starfive/phy-jh7110-pcie.c b/drivers/phy/starfive/phy-jh7110-pcie.c\nindex 734c8e007727..d68d396ac3cc 100644\n--- a/drivers/phy/starfive/phy-jh7110-pcie.c\n+++ b/drivers/phy/starfive/phy-jh7110-pcie.c\n@@ -12,10 +12,11 @@\n #include <linux/io.h>\n #include <linux/module.h>\n #include <linux/mfd/syscon.h>\n-#include <linux/phy/phy.h>\n #include <linux/platform_device.h>\n #include <linux/regmap.h>\n \n+#include \"../phy-provider.h\"\n+\n #define PCIE_KVCO_LEVEL_OFF\t\t0x28\n #define PCIE_USB3_PHY_PLL_CTL_OFF\t0x7c\n #define PCIE_KVCO_TUNE_SIGNAL_OFF\t0x80\ndiff --git a/drivers/phy/starfive/phy-jh7110-usb.c b/drivers/phy/starfive/phy-jh7110-usb.c\nindex b505d89860b4..5762586e5c7d 100644\n--- a/drivers/phy/starfive/phy-jh7110-usb.c\n+++ b/drivers/phy/starfive/phy-jh7110-usb.c\n@@ -12,11 +12,12 @@\n #include <linux/io.h>\n #include <linux/mfd/syscon.h>\n #include <linux/module.h>\n-#include <linux/phy/phy.h>\n #include <linux/platform_device.h>\n #include <linux/regmap.h>\n #include <linux/usb/of.h>\n \n+#include \"../phy-provider.h\"\n+\n #define USB_125M_CLK_RATE\t\t125000000\n #define USB_CLK_MODE_OFF\t\t0x0\n #define USB_CLK_MODE_RX_NORMAL_PWR\tBIT(1)\ndiff --git a/drivers/phy/sunplus/phy-sunplus-usb2.c b/drivers/phy/sunplus/phy-sunplus-usb2.c\nindex 637a5fbae6d9..2ddbc37d09ee 100644\n--- a/drivers/phy/sunplus/phy-sunplus-usb2.c\n+++ b/drivers/phy/sunplus/phy-sunplus-usb2.c\n@@ -17,10 +17,11 @@\n #include <linux/module.h>\n #include <linux/nvmem-consumer.h>\n #include <linux/of.h>\n-#include <linux/phy/phy.h>\n #include <linux/platform_device.h>\n #include <linux/reset.h>\n \n+#include \"../phy-provider.h\"\n+\n #define HIGH_MASK_BITS\t\t\t\tGENMASK(31, 16)\n #define LOW_MASK_BITS\t\t\t\tGENMASK(15, 0)\n #define OTP_DISC_LEVEL_DEFAULT\t\t\t0xd\ndiff --git a/drivers/phy/tegra/phy-tegra194-p2u.c b/drivers/phy/tegra/phy-tegra194-p2u.c\nindex f49b417c9eb6..467b6b97e53d 100644\n--- a/drivers/phy/tegra/phy-tegra194-p2u.c\n+++ b/drivers/phy/tegra/phy-tegra194-p2u.c\n@@ -11,9 +11,10 @@\n #include <linux/io.h>\n #include <linux/module.h>\n #include <linux/of.h>\n-#include <linux/phy/phy.h>\n #include <linux/platform_device.h>\n \n+#include \"../phy-provider.h\"\n+\n #define P2U_CONTROL_CMN\t\t\t0x74\n #define P2U_CONTROL_CMN_ENABLE_L2_EXIT_RATE_CHANGE\t\tBIT(13)\n #define P2U_CONTROL_CMN_SKP_SIZE_PROTECTION_EN\t\t\tBIT(20)\ndiff --git a/drivers/phy/tegra/xusb-tegra124.c b/drivers/phy/tegra/xusb-tegra124.c\nindex 70b6213370a8..21686c6fb2d7 100644\n--- a/drivers/phy/tegra/xusb-tegra124.c\n+++ b/drivers/phy/tegra/xusb-tegra124.c\n@@ -8,7 +8,6 @@\n #include <linux/mailbox_client.h>\n #include <linux/module.h>\n #include <linux/of.h>\n-#include <linux/phy/phy.h>\n #include <linux/platform_device.h>\n #include <linux/regulator/consumer.h>\n #include <linux/reset.h>\n@@ -16,6 +15,7 @@\n \n #include <soc/tegra/fuse.h>\n \n+#include \"../phy-provider.h\"\n #include \"xusb.h\"\n \n #define FUSE_SKU_CALIB_HS_CURR_LEVEL_PADX_SHIFT(x) ((x) ? 15 : 0)\ndiff --git a/drivers/phy/tegra/xusb-tegra186.c b/drivers/phy/tegra/xusb-tegra186.c\nindex 1ddf11265974..e017cb1ff484 100644\n--- a/drivers/phy/tegra/xusb-tegra186.c\n+++ b/drivers/phy/tegra/xusb-tegra186.c\n@@ -7,7 +7,6 @@\n #include <linux/io.h>\n #include <linux/module.h>\n #include <linux/of.h>\n-#include <linux/phy/phy.h>\n #include <linux/regulator/consumer.h>\n #include <linux/platform_device.h>\n #include <linux/clk.h>\n@@ -15,6 +14,7 @@\n \n #include <soc/tegra/fuse.h>\n \n+#include \"../phy-provider.h\"\n #include \"xusb.h\"\n \n /* FUSE USB_CALIB registers */\ndiff --git a/drivers/phy/tegra/xusb-tegra210.c b/drivers/phy/tegra/xusb-tegra210.c\nindex 1abc5913ec49..006aba47b93d 100644\n--- a/drivers/phy/tegra/xusb-tegra210.c\n+++ b/drivers/phy/tegra/xusb-tegra210.c\n@@ -12,7 +12,6 @@\n #include <linux/module.h>\n #include <linux/of.h>\n #include <linux/of_platform.h>\n-#include <linux/phy/phy.h>\n #include <linux/platform_device.h>\n #include <linux/regmap.h>\n #include <linux/regulator/consumer.h>\n@@ -21,6 +20,7 @@\n \n #include <soc/tegra/fuse.h>\n \n+#include \"../phy-provider.h\"\n #include \"xusb.h\"\n \n #define FUSE_SKU_CALIB_HS_CURR_LEVEL_PADX_SHIFT(x) \\\ndiff --git a/drivers/phy/tegra/xusb.c b/drivers/phy/tegra/xusb.c\nindex 9d74c0ecc31b..07a2f5a4dbee 100644\n--- a/drivers/phy/tegra/xusb.c\n+++ b/drivers/phy/tegra/xusb.c\n@@ -9,7 +9,6 @@\n #include <linux/module.h>\n #include <linux/of.h>\n #include <linux/of_platform.h>\n-#include <linux/phy/phy.h>\n #include <linux/phy/tegra/xusb.h>\n #include <linux/platform_device.h>\n #include <linux/regulator/consumer.h>\n@@ -19,6 +18,7 @@\n \n #include <soc/tegra/fuse.h>\n \n+#include \"../phy-provider.h\"\n #include \"xusb.h\"\n \n static struct phy *tegra_xusb_pad_of_xlate(struct device *dev,\ndiff --git a/drivers/phy/ti/phy-am654-serdes.c b/drivers/phy/ti/phy-am654-serdes.c\nindex 5b6c27aa7e8b..8990b715525e 100644\n--- a/drivers/phy/ti/phy-am654-serdes.c\n+++ b/drivers/phy/ti/phy-am654-serdes.c\n@@ -15,11 +15,12 @@\n #include <linux/mfd/syscon.h>\n #include <linux/mux/consumer.h>\n #include <linux/of_address.h>\n-#include <linux/phy/phy.h>\n #include <linux/platform_device.h>\n #include <linux/pm_runtime.h>\n #include <linux/regmap.h>\n \n+#include \"../phy-provider.h\"\n+\n #define CMU_R004\t\t0x4\n #define CMU_R060\t\t0x60\n #define CMU_R07C\t\t0x7c\ndiff --git a/drivers/phy/ti/phy-da8xx-usb.c b/drivers/phy/ti/phy-da8xx-usb.c\nindex 62fa6f89c0e6..261b65abd38b 100644\n--- a/drivers/phy/ti/phy-da8xx-usb.c\n+++ b/drivers/phy/ti/phy-da8xx-usb.c\n@@ -11,12 +11,13 @@\n #include <linux/mfd/da8xx-cfgchip.h>\n #include <linux/mfd/syscon.h>\n #include <linux/module.h>\n-#include <linux/phy/phy.h>\n #include <linux/platform_data/phy-da8xx-usb.h>\n #include <linux/platform_device.h>\n #include <linux/pm_runtime.h>\n #include <linux/regmap.h>\n \n+#include \"../phy-provider.h\"\n+\n #define PHY_INIT_BITS\t(CFGCHIP2_SESENDEN | CFGCHIP2_VBDTCTEN)\n \n struct da8xx_usb_phy {\ndiff --git a/drivers/phy/ti/phy-dm816x-usb.c b/drivers/phy/ti/phy-dm816x-usb.c\nindex d274831b731c..515ef7812bde 100644\n--- a/drivers/phy/ti/phy-dm816x-usb.c\n+++ b/drivers/phy/ti/phy-dm816x-usb.c\n@@ -12,10 +12,11 @@\n #include <linux/err.h>\n #include <linux/pm_runtime.h>\n #include <linux/delay.h>\n-#include <linux/phy/phy.h>\n \n #include <linux/mfd/syscon.h>\n \n+#include \"../phy-provider.h\"\n+\n /*\n * TRM has two sets of USB_CTRL registers.. The correct register bits\n * are in TRM section 24.9.8.2 USB_CTRL Register. The TRM documents the\ndiff --git a/drivers/phy/ti/phy-gmii-sel.c b/drivers/phy/ti/phy-gmii-sel.c\nindex 6213c2b6005a..ce7dc692d7be 100644\n--- a/drivers/phy/ti/phy-gmii-sel.c\n+++ b/drivers/phy/ti/phy-gmii-sel.c\n@@ -14,9 +14,10 @@\n #include <linux/of_address.h>\n #include <linux/of_net.h>\n #include <linux/phy.h>\n-#include <linux/phy/phy.h>\n #include <linux/regmap.h>\n \n+#include \"../phy-provider.h\"\n+\n /* AM33xx SoC specific definitions for the CONTROL port */\n #define AM33XX_GMII_SEL_MODE_MII\t0\n #define AM33XX_GMII_SEL_MODE_RMII\t1\ndiff --git a/drivers/phy/ti/phy-omap-usb2.c b/drivers/phy/ti/phy-omap-usb2.c\nindex 1eb252604441..318f51d09c28 100644\n--- a/drivers/phy/ti/phy-omap-usb2.c\n+++ b/drivers/phy/ti/phy-omap-usb2.c\n@@ -16,7 +16,6 @@\n #include <linux/of_platform.h>\n #include <linux/phy/omap_control_phy.h>\n #include <linux/phy/omap_usb.h>\n-#include <linux/phy/phy.h>\n #include <linux/platform_device.h>\n #include <linux/pm_runtime.h>\n #include <linux/property.h>\n@@ -25,6 +24,8 @@\n #include <linux/sys_soc.h>\n #include <linux/usb/phy_companion.h>\n \n+#include \"../phy-provider.h\"\n+\n #define USB2PHY_ANA_CONFIG1\t\t0x4c\n #define USB2PHY_DISCON_BYP_LATCH\tBIT(31)\n \ndiff --git a/drivers/phy/ti/phy-ti-pipe3.c b/drivers/phy/ti/phy-ti-pipe3.c\nindex b5543b5c674c..d63c8e872d5b 100644\n--- a/drivers/phy/ti/phy-ti-pipe3.c\n+++ b/drivers/phy/ti/phy-ti-pipe3.c\n@@ -10,7 +10,6 @@\n #include <linux/platform_device.h>\n #include <linux/property.h>\n #include <linux/slab.h>\n-#include <linux/phy/phy.h>\n #include <linux/of.h>\n #include <linux/clk.h>\n #include <linux/err.h>\n@@ -22,6 +21,8 @@\n #include <linux/mfd/syscon.h>\n #include <linux/regmap.h>\n \n+#include \"../phy-provider.h\"\n+\n #define\tPLL_STATUS\t\t0x00000004\n #define\tPLL_GO\t\t\t0x00000008\n #define\tPLL_CONFIGURATION1\t0x0000000C\ndiff --git a/drivers/phy/ti/phy-twl4030-usb.c b/drivers/phy/ti/phy-twl4030-usb.c\nindex a26aec3ab29e..67c9883691fc 100644\n--- a/drivers/phy/ti/phy-twl4030-usb.c\n+++ b/drivers/phy/ti/phy-twl4030-usb.c\n@@ -20,7 +20,6 @@\n #include <linux/io.h>\n #include <linux/delay.h>\n #include <linux/usb/otg.h>\n-#include <linux/phy/phy.h>\n #include <linux/pm_runtime.h>\n #include <linux/usb/musb.h>\n #include <linux/usb/ulpi.h>\n@@ -29,6 +28,8 @@\n #include <linux/err.h>\n #include <linux/slab.h>\n \n+#include \"../phy-provider.h\"\n+\n /* Register defines */\n \n #define MCPC_CTRL\t\t\t0x30\ndiff --git a/drivers/phy/xilinx/phy-zynqmp.c b/drivers/phy/xilinx/phy-zynqmp.c\nindex fe6b4925d166..db40594622da 100644\n--- a/drivers/phy/xilinx/phy-zynqmp.c\n+++ b/drivers/phy/xilinx/phy-zynqmp.c\n@@ -12,6 +12,7 @@\n * PCIe should also work but that is experimental as of now.\n */\n \n+#include <dt-bindings/phy/phy.h>\n #include <linux/clk.h>\n #include <linux/debugfs.h>\n #include <linux/delay.h>\n@@ -19,12 +20,11 @@\n #include <linux/kernel.h>\n #include <linux/module.h>\n #include <linux/of.h>\n-#include <linux/phy/phy.h>\n #include <linux/platform_device.h>\n #include <linux/pm_runtime.h>\n #include <linux/slab.h>\n \n-#include <dt-bindings/phy/phy.h>\n+#include \"../phy-provider.h\"\n \n /*\n * Lane Registers\ndiff --git a/include/linux/phy/phy-sun4i-usb.h b/include/linux/phy/phy-sun4i-usb.h\nindex f3e7b13608e4..66612be0dac5 100644\n--- a/include/linux/phy/phy-sun4i-usb.h\n+++ b/include/linux/phy/phy-sun4i-usb.h\n@@ -6,7 +6,7 @@\n #ifndef PHY_SUN4I_USB_H_\n #define PHY_SUN4I_USB_H_\n \n-#include \"phy.h\"\n+struct phy;\n \n /**\n * sun4i_usb_phy_set_squelch_detect() - Enable/disable squelch detect\ndiff --git a/include/linux/phy/tegra/xusb.h b/include/linux/phy/tegra/xusb.h\nindex 6ca51e0080ec..e6c613f9bef2 100644\n--- a/include/linux/phy/tegra/xusb.h\n+++ b/include/linux/phy/tegra/xusb.h\n@@ -8,6 +8,7 @@\n \n struct tegra_xusb_padctl;\n struct device;\n+struct phy;\n enum usb_device_speed;\n \n struct tegra_xusb_padctl *tegra_xusb_padctl_get(struct device *dev);\ndiff --git a/include/linux/phy/ulpi_phy.h b/include/linux/phy/ulpi_phy.h\nindex 7054b440347c..0f9e8430d398 100644\n--- a/include/linux/phy/ulpi_phy.h\n+++ b/include/linux/phy/ulpi_phy.h\n@@ -1,5 +1,5 @@\n /* SPDX-License-Identifier: GPL-2.0 */\n-#include <linux/phy/phy.h>\n+#include \"../../drivers/phy/phy-provider.h\"\n \n /**\n * Helper that registers PHY for a ULPI device and adds a lookup for binding it\n", "prefixes": [ "v6", "phy-next", "26/28" ] }