From nobody Sun Feb 8 14:59:30 2026 Received: from GVXPR05CU001.outbound.protection.outlook.com (mail-swedencentralazon11013048.outbound.protection.outlook.com [52.101.83.48]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6E27333064A; Sun, 11 Jan 2026 09:41:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.83.48 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768124465; cv=fail; b=NdjkfTMrNIXKEFmIq+kICaQB4b5DcYQ0qhd1BEXITMuELUvu0Am22eW9zkLO1hNoDyHsJmTPxmfCCiF5XfIpho6I/lJTG2O0Hsscxmu7Jlvq/HfxoVJj8KfmHaLi0SSXd2c0B+h63v57xt5RbxhLV4yKwd+6InqsohavY4MxupM= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768124465; c=relaxed/simple; bh=o1R+dSRx0PxLtt3+Bp/p3Yr/mJ/6xWdQVDi6kK+27ao=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=Tr8KD2qZ4i2/W0rfmzuufcn1Ky1bA7AJ0Nzn1RswDRgSiRSJwws+KMB1cXbvUKxXLFRNvewh8Mc0MUPdZ7MhsrlYy7lew2poW0TBPhZhiqmleRmpvrNS9OvWUGJJ6MRv770eaDQrDqHBUr9eKKsMEVTvQ6yKiLkJ7QCFXVUfMdo= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b=mks2jgMM; arc=fail smtp.client-ip=52.101.83.48 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b="mks2jgMM" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=XPA72y9sVMJIE1djqvzmFGOjksy00fSF7kv0K0RoOt7hZmfsbYDg8hJFaUPlpRmUqLOu5tIQhhRp8PicynAPKZEghD6n2mt6eD2R3sV9Amb2hGA5M3pRsDaCp1EqMayxT0CMklanNahzJdzAqua+X+3QUQzwO8t6g7KWdMdAjZP5AD0mOpnxNBHLSSBAVocv9cRYlcKEsgedKM8Xn/WwcOiY02EAiTLVJTLuwq2ytKTMs1tPV+1FZWRyDcOuJ7au/KxgrjEZeBkeUmHuzJ4qdZk6GEUH5jcIIwnRO8Ky8cD7zPeoBuw7MxdGwff5c9gYAhwyJAXH+FJwgxpidCM11g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=oMifGfZWqExURlipKxAQvVQxYjRaxAtF5HZ3ivTnHPM=; b=UKMSvQjilIbXy0d1Y3gnlxvIo8vH/P9USvWdAvFo8d3cDaWTnlWlAh9PXUNKyI1omGuLBWpvNvt1PoI+k5/mo9cJj/pZfrz0hJMl7O0locDIen6DmyUg91ULQXzpHQEmK7RuKDq9bM2j990gB2JNqNpmeYnFGurCTWuwUfGuZYUfwzJlR5FOB4AUUEHDlhw0O3YqH095XOrs0ofYebhITcgsxW8+XvldyuRWXe29jawlf+/NDdzumXQi/CmBOtug+NB4SffUWXvohI+rBBBf3JRZ6azchY0h3yT/5RLvxNYF2wfnb5aErib6yraeD6DLXt45vkYKatB/3c1xTESWrQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=oMifGfZWqExURlipKxAQvVQxYjRaxAtF5HZ3ivTnHPM=; b=mks2jgMMsFpdasxjylbMlJOPjWFQVbOLxlIvTtM4FIE2S1CTV52I99/h/BQOSzmCkJR37ZL0RWBZLX1KeG91H/Y4fEhjO5zANDDzhx+DMUqv6TW7HF/KTPd22ZpnmhBSEmpNSTlVLF7Me/9O7/7keF0S4nYEkzs4wwrpDU2qQmxRLAmsCBR9MCJ62RKqXoy81CJaqwuVWTRe7DVUdRxbSr+rvxjdb09QkyPuyfBZomNAFrZGDpy0vOcKIzYHgs2mYQTedFjR/Byh07FUFp3vQ30NppEAvfXMH1SArZ8bPAjH085+ZslWS9YL+Aiq6SEfViKlxZemYSkn1/x8//ATgg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from AM9PR04MB8585.eurprd04.prod.outlook.com (2603:10a6:20b:438::13) by AS8PR04MB7592.eurprd04.prod.outlook.com (2603:10a6:20b:23f::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9499.6; Sun, 11 Jan 2026 09:40:59 +0000 Received: from AM9PR04MB8585.eurprd04.prod.outlook.com ([fe80::f010:fca8:7ef:62f4]) by AM9PR04MB8585.eurprd04.prod.outlook.com ([fe80::f010:fca8:7ef:62f4%4]) with mapi id 15.20.9499.005; Sun, 11 Jan 2026 09:40:59 +0000 From: Vladimir Oltean To: netdev@vger.kernel.org, devicetree@vger.kernel.org, linux-phy@lists.infradead.org Cc: linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org, Daniel Golle , Horatiu Vultur , =?UTF-8?q?Bj=C3=B8rn=20Mork?= , Andrew Lunn , Heiner Kallweit , Russell King , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Vinod Koul , Neil Armstrong , Matthias Brugger , AngeloGioacchino Del Regno , Eric Woudstra , =?UTF-8?q?Marek=20Beh=C3=BAn?= , Lee Jones , Patrice Chotard Subject: [PATCH v3 net-next 01/10] dt-bindings: phy: rename transmit-amplitude.yaml to phy-common-props.yaml Date: Sun, 11 Jan 2026 11:39:30 +0200 Message-ID: <20260111093940.975359-2-vladimir.oltean@nxp.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260111093940.975359-1-vladimir.oltean@nxp.com> References: <20260111093940.975359-1-vladimir.oltean@nxp.com> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: VI1P189CA0004.EURP189.PROD.OUTLOOK.COM (2603:10a6:802:2a::17) To AM9PR04MB8585.eurprd04.prod.outlook.com (2603:10a6:20b:438::13) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM9PR04MB8585:EE_|AS8PR04MB7592:EE_ X-MS-Office365-Filtering-Correlation-Id: 7453f7e7-95c0-4834-db92-08de50f586c6 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|19092799006|7416014|52116014|1800799024|10070799003|376014; X-Microsoft-Antispam-Message-Info: =?utf-8?B?c2MyUElqVmMyQWsyT0pNVWQ5MGNFblhscDFrVGg2RnB1cUorb0JtRWYzT2lY?= =?utf-8?B?VGdQR3Q3NUFXQk5SVlJ3TXFKNGNXb21mNGg2MTdkT3V0MWRzS0c5Z2k1cEVt?= =?utf-8?B?ampUdC9ScHd5aWJMQlpnQms3RUN5amdmd0Qzdjh6a0FTV1E0Y21NY1FmUjla?= =?utf-8?B?ZEtQVnpvSkdmL2RwSmlsYVgyUys5aTk1Q0ovMXkzWXlNb0ZEMmFMZm9UNklQ?= =?utf-8?B?bWZ1OXBrWlZGQlJJeGNwMVRXWkxzTGdxakVCeGZjaSt5aGVwaXMraitjYVR2?= =?utf-8?B?RTVFNHQzSFh1eWRsbWx6UTZveE9sSHAwMm05MUg2Ti93NC81V1l6QVg2V0FN?= =?utf-8?B?TXJUK0R5STdla0FIZjIzSXp4UnZ2MUhUSEd3ZnlaVnEwdGtwRlRRLzJKK0kz?= =?utf-8?B?L3UrVFlTUnlQUzRybVZSejlvYVZ3bEhiVm9BUENQMElXazVwb08wUDJ2V1Fl?= =?utf-8?B?NjRDaEx6RVZ1eXJpTmI3WS9BaG5HcWM3SXkrSkRHZGdXbGJSaWkyVExzTEhp?= =?utf-8?B?ZGdzWXhma0ZtcUgyQkxQTTFCcTVHL3djcklDZFRmdFBRazZSdkg2bjBJZjA0?= =?utf-8?B?RmVjaTFiaCtFUDZwaUdCbXI4Q3Bqd3ZMZzBEcmxvZGRDVm4vaVBLcHpseTJH?= =?utf-8?B?UGVESzFRUEtwUVpWVk5UaVBBdWJtTnkvaklyZmpPWnJ0c0h0bWd1Zkp6TXIy?= =?utf-8?B?YWVCSnRyRlRqSkpsZjNYQ1p3dEFNaVY1YWMwZUZjNVBsVXBmeGh4TkNlMVVl?= =?utf-8?B?Z1dFUHR0WU0rT09ZK3lyTGtSZXV2KzNlTGgydWJGQmI1Y1U3QmdSNHdScTBB?= =?utf-8?B?a3lZMFFwKzZUYjQvTndkZkdIeUJtU2hhNFI1V2U2R1d1aEpTSE14eXdHSlho?= =?utf-8?B?SGlWb2JLUHNxS0Nxckpld3hyMDlXWFk4TzlXVi9UK3NMME1aSkt2bmxDaFo0?= =?utf-8?B?aGRONTRoK2hPZ3BJQit2b1BRR252UUVaT1ZMdzZ6U3J6alpYWFFPLzRKa0dK?= =?utf-8?B?VHRiOHVabU1ZY2dkV1JrdG84TTNjYm1YRGFPMmI3dkJvMUtiUVhMc2s4MnVJ?= =?utf-8?B?dUVYRnZ2aThGOUFPWkYxV2srYnoyQXBoa3J4ODdNZ3IvRyt2NlZDTG95b3F6?= =?utf-8?B?SUVFWGdEblNYdi9jbTI2QTljOFFybkdQd1JVd3dFQkpqV2lRTXhZSktEeFlM?= =?utf-8?B?QnlPUWtUL1N4VzdNaHB4L0pMbngzTTBMb2JWdnVLRGZBS0gxemY2Y1hKck1B?= =?utf-8?B?T0htd3pLaUFxeVd3TGZnZWEvVGd3cG9pbStabW9KSEVZSTRJTFl6TVBhUmU4?= =?utf-8?B?VHB0OG0vMTZuZTVFMVoxNWlSNXlHckZLbWNGZjgrcDlwcmdtY1lweklveWVa?= =?utf-8?B?eHlkUFd5OFdBb1ZLR0VjL053czA3N0V1dDNBVG8vaEZwVzdrTWZUbTBqMVlz?= =?utf-8?B?N252QkNEVEJtOWI0MlUvbTcraUhkRGdsTFJFdWFtZXBJbmdlZXVsbS8zSzhN?= =?utf-8?B?TW40bjNaYVc5c3pneHg4RHZvS1RZOVlSRHpXNGp1dkF5dkpsVEdwWUJyS0FZ?= =?utf-8?B?S05sbDJFRGhaM0dnZVJkT3Nrd040djBPam4yWEMwTjhsSmRWYWFSZEtUdkJN?= =?utf-8?B?cXlGdGp5ZlYxOTdRV3E2Z3hSNk1vbkQyOTlPVGt1ejYza0p1Q3NQRi9adXBY?= =?utf-8?B?WnRGZS9FUkFweG16NHBWRTl6eVBZNzdZbXM0YjdjM25rdjRmd1M1QU15Mkp5?= =?utf-8?B?d3NPdFpVUkpwMWpoWWJwb3dMcTdZT2pUbnJrdTRwL3RHK00yaWNaYkp0dVNN?= =?utf-8?B?MTdVVVhDSW1lcFdnY1JmQWpJRGUvL3k4eU5CYkJOWHk5MGxmN2hrS014clMx?= =?utf-8?B?M29WRUp0anNaQnZxemt2ZWthTk5NaE9lcEJUZm4rZHZBNzFtTWx0aVRDME1k?= =?utf-8?B?S3BhSEJ1Y0x1aUoyUjFKMUw0Z1ArYkk0dkltVmVETXYrQWsvNUdkeXczaStC?= =?utf-8?B?TWVzWm9ZYVhRPT0=?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM9PR04MB8585.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(19092799006)(7416014)(52116014)(1800799024)(10070799003)(376014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?TlhTMzc4TTRSRC84QnI2VHY3QkdwU0hXV1FERHNWZUxqcm5zNVcrVVBReitF?= =?utf-8?B?L1lXOGpCVzJrakVRVVREbnhxeEM3cjk4US8xNUU5RzJCWDhCVzFqNS96WWRC?= =?utf-8?B?T1ZJUVZXZVdZY3hrWFZCYmVYcjBvbEZiYW9wTHRTTFRSTnRXK1pObHE1VUVw?= =?utf-8?B?RkYxSlRKRlVnRllrTFVnYU50VXB1ZVNNcURsR09rWFNTVkNab1U3TzNrSDl3?= =?utf-8?B?SThSOURuTkJLRE9XMm5yaW14VnVkR1pQRERtOUdwK1ZRKytxK1hyMkZYOFNF?= =?utf-8?B?RjVvMHh2L1EyTU5VdXROaFFQS0VqYkhqWkF3SEJFSzJ3WWhnV3VFOTA4a0JE?= =?utf-8?B?OFhLaFU2YVU0c2NsTkpZRjdXK0tBdXdvelU2VmVJVm9IU3l1QWc5Tkg0ZjV5?= =?utf-8?B?ZE84VDZudGhEaWhlUytzNWpqMmEyVHpDNE1SQkdENUx1NDh5QjB6bGdhaU1X?= =?utf-8?B?S2NTMTRmWWNGU2s1ajFnNk5jN2F2QzY3ZzVQM3dvRW5FVno0elhVanhxR2dl?= =?utf-8?B?a3FHMHkwZ1dGM0J2YkRUTEFqY1NzczJIcm94MldqSXBSdkNodEYzRk5Edmtq?= =?utf-8?B?emZQMzQzWEN1Njhwb3l4aURIZ0JLckJCcWQ0T3dBb216MUx3N1FPenZ3amNO?= =?utf-8?B?T1U4Q3lEUzVrSkpzNWdWbEhwZTBIVFhlWUlJeDdZSC9EUEtQRExEc1RNVlVG?= =?utf-8?B?T1Y2ME15Tm5CMUhNSG9JdS9iL3o4YmU2eDhVZlZhdTJNRlNGb0c3bmdVdTZ6?= =?utf-8?B?MFVvay9SRlhldEpBcFVndDg5T2VkSHpvMEpkblBxMU5oRXNZOHVRY3FsQWdp?= =?utf-8?B?bHNCVUs0MkJkWm83NTI3NzhFbzV4MlBFY1JGTDh4bGw1NmRudTJ4UFpjNjB2?= =?utf-8?B?aW9qUm8xNTNNa3dzNklWeC9QdEFFT2RZRWVpVFFaYTQ3ZDh1dVE4VmlDN3Bx?= =?utf-8?B?OEF6bGhKK3Q0QXY2ZVJEUlZWaFRpUXB6dmlrY1FTVXBjL3lLRkJORjN2UFNs?= =?utf-8?B?M2l1Z09TdFhjbDk0d2U0SU80bi9hT2l0KzdVdWtISkpZdEhDaVpUVkJhb0Jr?= =?utf-8?B?UURmUGRIZ0NaNS9FYmJ0WDFwQU1ib1J4UU5ZUEtnclJkQWtEdFFzYUliSjNw?= =?utf-8?B?UGlaaUVHZVNMTzlNcHphYTY0QThSbjlFQXVGNnlzUGFHNnRjNGhLaFcvRlgw?= =?utf-8?B?WSt6aEZCLzMrVHQ3RnBQekJDSlRGZDdtdUx3MHp0TTFtaU9GbklMTUNQdnhm?= =?utf-8?B?ZkNINHg0cEw0MkhIQXJqVjBRYVZCN21EeWNjSjNEVFZWWnl3cUJnS2dVZEZs?= =?utf-8?B?YVBwNlhTdSt2d3lBdEh6b0tsVVBGUlJTVFZwTmRXR3JpZjBMTHNTNXhJMUUz?= =?utf-8?B?ZXg1cDBCeFVUVmhjN2hxVklVRzU5dVVrTWpvSVVhNGlCSlVvUUFiMmhnY216?= =?utf-8?B?NURDZU90NTg2dEdSdGd1NU01TWhzL3hiZVVJRDZITVRCb3dVZnFQYmlhTlBp?= =?utf-8?B?QmZ1UUxGVldDR0o5RjRGbVNyK29NdnM0ODd3RkxxK1RTRlFJZ0xGVWdzV3Fm?= =?utf-8?B?dkNUcFpsRThJcS94V1FxdXkrcXR6SnU4RkJNdXAwdUdIekVQREFBQU5BTG5W?= =?utf-8?B?S0l0aTAvdnlreGEzbXg2UHVEUWFraHowSUYzcjNldmxHMExFTUZyaUNzWk1I?= =?utf-8?B?NkJuWGQvTVZhZ2lEMEl1Y1ZabzREMmtBZVpnQnhTbFA2TVVrRFdRUGR2VldG?= =?utf-8?B?N3M5Q3AyU3VtSEwvZTVqalNtWWNPSWRjaW5TemRYUFYzV3VVYzFONC9uMlpN?= =?utf-8?B?YmpsYlViNVNtU1l2TjlpZlhxcnc5QmsrY0RoV3V0czE1RjQwdnFaYnVxT2k5?= =?utf-8?B?bXBXeENleE1VRmtHeks2UWFXQllnWk1Sdng5aUhaUVR2dlBrbDFzN0Z2NmpD?= =?utf-8?B?ZjdnSE5NRkVtSlZRcEwvajVjVVpPU1ExRlI2cVdreGw3SlpBTkdvYnh6TzVR?= =?utf-8?B?N0pEMWUrYm1uWFIzYXRkcUdpL1kwQitjcmJreHplamhKYUsvK0NJeGIrV0RC?= =?utf-8?B?WlJvNi9YOSt3V1FNWUsrNm5MRllEOHJPTkFROUFmT1Vad0t4VjJ2aWdoVTdD?= =?utf-8?B?Rk9pZUY0UitZRVpTRnhUcUovbkRIZ1ZkSVl6bDlqSm9lbUVBWlM4VENYdTRT?= =?utf-8?B?aFEwS0l2T0RONm5aOE1kMHNwRXlwZ0hadXZiVWFveHp4UnpWbE5zUDNuT3l3?= =?utf-8?B?YnkvYkNCWkVJcDh2NzBDaFZNTlZxTHkveG1LcW9IWWUydSsyeG9rQ2ZPR1F5?= =?utf-8?B?RlZ5Z1NscmtpNlhuNXZFRXNzeHROOE40bi9wM3NJbFVWR2lvemx4d3lIN3Vr?= =?utf-8?Q?LbpI/7kGRVflLQzQuufbz8S+byEa7S7wh8dXLKibs6Kyi?= X-MS-Exchange-AntiSpam-MessageData-1: dBTqK20qU9s+Kiu4F1+KS8ba5B7jEfTmX40= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7453f7e7-95c0-4834-db92-08de50f586c6 X-MS-Exchange-CrossTenant-AuthSource: AM9PR04MB8585.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Jan 2026 09:40:59.3306 (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: csfLcLdB4pOpEs6TMwLTwrB9wrrfnvQeRdRy5WU3QSiVE+0N01U2jgA9+TwM76Dd+PghrrfpCxKFvX1VUc/RMQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR04MB7592 I would like to add more properties similar to tx-p2p-microvolt, and I don't think it makes sense to create one schema for each such property (transmit-amplitude.yaml, lane-polarity.yaml, transmit-equalization.yaml etc). Instead, let's rename to phy-common-props.yaml, which makes it a more adequate host schema for all the above properties. Signed-off-by: Vladimir Oltean Acked-by: Rob Herring (Arm) --- v1->v3: none .../{transmit-amplitude.yaml =3D> phy-common-props.yaml} | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) rename Documentation/devicetree/bindings/phy/{transmit-amplitude.yaml =3D>= phy-common-props.yaml} (90%) diff --git a/Documentation/devicetree/bindings/phy/transmit-amplitude.yaml = b/Documentation/devicetree/bindings/phy/phy-common-props.yaml similarity index 90% rename from Documentation/devicetree/bindings/phy/transmit-amplitude.yaml rename to Documentation/devicetree/bindings/phy/phy-common-props.yaml index 617f3c0b3dfb..255205ac09cd 100644 --- a/Documentation/devicetree/bindings/phy/transmit-amplitude.yaml +++ b/Documentation/devicetree/bindings/phy/phy-common-props.yaml @@ -1,14 +1,14 @@ # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) %YAML 1.2 --- -$id: http://devicetree.org/schemas/phy/transmit-amplitude.yaml# +$id: http://devicetree.org/schemas/phy/phy-common-props.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# =20 -title: Common PHY and network PCS transmit amplitude property +title: Common PHY and network PCS properties =20 description: - Binding describing the peak-to-peak transmit amplitude for common PHYs - and network PCSes. + Common PHY and network PCS properties, such as peak-to-peak transmit + amplitude. =20 maintainers: - Marek Beh=C3=BAn --=20 2.43.0 From nobody Sun Feb 8 14:59:30 2026 Received: from GVXPR05CU001.outbound.protection.outlook.com (mail-swedencentralazon11013048.outbound.protection.outlook.com [52.101.83.48]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CE749330D24; Sun, 11 Jan 2026 09:41:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.83.48 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768124474; cv=fail; b=rW7bzoFomZ06AkdGNZce6pztksN3XzGLiUSDtgGcjHlhEDE6reKpBkYzMnj+/wC2uuPcSe1/0Nts4sRMYXOwFw5sVrkPEtndFnRcKFGR3qDLxGKPW4aeI1nScFTJsUSmohdMATnmxeXdyN2eXDawUQ4Nm4ZXbIsdr0qJRNBAIaA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768124474; c=relaxed/simple; bh=9uYrVeNdlAl+2cMXH9HilTG7wZuEVXq4Hsv4KTRCsiE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=aAJRfuyr4UZgHvdzR/gOo8+b99rCNvTu3f3yKF5TPah0BywC7un7nyFKGtKG5nS/Zt0B7pObXM1gv4tm7Gp8kpIH5L6sy023+XA3yrkb1ZHwErsSheel/E+fODWknFUx5DP2esj+FvElqDjrXrILVFHSxt0l/jZIjQJn3sBkaFM= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b=NaqSwQGD; arc=fail smtp.client-ip=52.101.83.48 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b="NaqSwQGD" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=dRPWJsHgRrmlDS9MUy/pQ7wEm1zzazuB5cD2Hwu8GUEPCaKC6DyIJKyTMpkTQWedY3to96XnrBK9CvvazSpBO1dIY6Gc94U+sbzl7SByG6idrk5ObFQMlSkAd8OYBBZvx9XLRC1Ify1D2szN3yo4Q3VJ1uGEW6atZQza6rgHF+eMxkLLzmRkWW3drdNyrr/fb0bzCviZ6jDiqCKY64Z5vcP/BK9h9WDoFfTx2uCxqLB/G3qq+xnSuyxMJyhiraDZjqMWq4su7oEUgQbdMUuCXQzOhXlEAF1dMayCUrUEcnZt/b2A8faFEM0fDDAeGMRVxEUwZ/qJ72uo3Iy6Io6utA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=sYOLm7GSbuvgfoLUnJbrZGdPj50GkY5zgegZwR5nsQ4=; b=ndh8iAOlTCJfrpHHi5PK0nIpn5ShzCjdYuzu6zWSfuPXq7KCH1nuHxuqctTcFomSapy77J26nUrlbMhVCr9PIjIETzIEFGQmbymJglYqNXuE+mrcbH06TsjkvZFpkURgNc2Qz6u+QcRK2pI5uH2HjY4S+SFHhz6xpnZHJC+F+G+hKhyK3Ey0+51OGsX49T1KBlchMX9shSf7AMler9KFXgryeu22TzloRlA4kSjjgRp2FAwOnueFaDTRNKAlqvnneikUlO/pz6/6Ms78upi0wQJuE6lQ94h/9uJbxgJpUQ1sAK/tsB3/vsvIN5L+zL0Y4a3+LO9FAqPgaKYFCuUMeg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=sYOLm7GSbuvgfoLUnJbrZGdPj50GkY5zgegZwR5nsQ4=; b=NaqSwQGDp4+PuSv3cJmxLQwxL2Sioi1N2w8Rn+nBVv8slp2AoBro1Gh4jQXuhvdlv7dOu5+te7Jr75hwz4AfudqOAicZ696c3/vqlvXXHv/qSDVBBm3iwXZmBfs34njrhMkrqIHU/z+RDsg0EnUxlwFkGUozEWorM+Y7NERYi51uKE/hxxCvV7OfpQqRJsoyBAkErMSlfktz4cW2snX6YGAl9tP8j7jFxDw/hPa39ORI9BvQTyFGWXI98r8VaSpSrAQ7lDEk7oQY83QBsyFZiciiVdNeOuPbJPhY3VRmWXHd1Qc1ihPvz1Obr2YIBHb6pWBpTWCU7rGcXFp3cEQnXA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from AM9PR04MB8585.eurprd04.prod.outlook.com (2603:10a6:20b:438::13) by AS8PR04MB7592.eurprd04.prod.outlook.com (2603:10a6:20b:23f::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9499.6; Sun, 11 Jan 2026 09:41:01 +0000 Received: from AM9PR04MB8585.eurprd04.prod.outlook.com ([fe80::f010:fca8:7ef:62f4]) by AM9PR04MB8585.eurprd04.prod.outlook.com ([fe80::f010:fca8:7ef:62f4%4]) with mapi id 15.20.9499.005; Sun, 11 Jan 2026 09:41:01 +0000 From: Vladimir Oltean To: netdev@vger.kernel.org, devicetree@vger.kernel.org, linux-phy@lists.infradead.org Cc: linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org, Daniel Golle , Horatiu Vultur , =?UTF-8?q?Bj=C3=B8rn=20Mork?= , Andrew Lunn , Heiner Kallweit , Russell King , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Vinod Koul , Neil Armstrong , Matthias Brugger , AngeloGioacchino Del Regno , Eric Woudstra , =?UTF-8?q?Marek=20Beh=C3=BAn?= , Lee Jones , Patrice Chotard Subject: [PATCH v3 net-next 02/10] dt-bindings: phy-common-props: create a reusable "protocol-names" definition Date: Sun, 11 Jan 2026 11:39:31 +0200 Message-ID: <20260111093940.975359-3-vladimir.oltean@nxp.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260111093940.975359-1-vladimir.oltean@nxp.com> References: <20260111093940.975359-1-vladimir.oltean@nxp.com> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: VI1P189CA0004.EURP189.PROD.OUTLOOK.COM (2603:10a6:802:2a::17) To AM9PR04MB8585.eurprd04.prod.outlook.com (2603:10a6:20b:438::13) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM9PR04MB8585:EE_|AS8PR04MB7592:EE_ X-MS-Office365-Filtering-Correlation-Id: 59149fab-ffbc-4f50-bbfa-08de50f587d4 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|19092799006|7416014|52116014|1800799024|10070799003|376014; X-Microsoft-Antispam-Message-Info: =?utf-8?B?bzdwSzdnZHIwV0E5TkFocHR6NlNWWWZ5WFJIMFJ1WG1IUVpQa3NyM3dlMzlz?= =?utf-8?B?OG5uVjZEd0liYUZaK3djMGVJaXQ5eDhYMWx6ZC9hMFpGR0t1NEQ5RDdpTE5B?= =?utf-8?B?bnl2MWtNZ2ZmSk5LK1F3QkNJK1E1Zzk5UlBvb1UwRkpwVld6T3VPcjRWWGF5?= =?utf-8?B?by84QU52WnUyNGp4SG04YkxYZ3dqdVFBMk5TbXB3L0ZDbkw0U081WnJwS2Iz?= =?utf-8?B?VXNUODhDbGJCaFNJVSsyVnovLzcrZnNiUVh4QSs0YlBKQzlFWXU1azFBQ2w4?= =?utf-8?B?ZitwQUsxSzR6T2JDT1M5d2Vka0RtQ0RHK0tEdXNYWUxjWXExTUM0emRaaSt2?= =?utf-8?B?TzdjdklHV04wRlNMRktpQkVaSWtPT2Ryd1JkWU4xQWhUMVRFTzlRb3g5T2pP?= =?utf-8?B?RjdFVnVMSERnaUJlVEw3bnpNNTBiRjNRUForVDFscUYvQ1BKK09BSXNvdW0r?= =?utf-8?B?aGlLeVpaQWJHSnk0NTU2bW1pWEdSZDYvY1d0Ui9QQUJRTU5laytzT1lNTWly?= =?utf-8?B?emMxM1FMeG5wQVNNZDFxQ0VDVSs0emEycHlRQjRmRWdHOC9HMnlSbGFnN0NL?= =?utf-8?B?dGxndWIxMzdCcC9EY1VXQ3pSL0xxc1ZscHJIT1BZeTZOcyt5Ry9rQVU4bzRh?= =?utf-8?B?TVVsWmp1SWdqMXRSUjBnWjIra2hISlFuSUI4VlZVTGpCc3JUQktEcEpSNk9U?= =?utf-8?B?YW1mWnpwTnYveENXWC9RQXV4V3c1cGtsblU4WnNpOFNSSnRCK3YvbGVyaE9r?= =?utf-8?B?czJhQWNhcTgraE5ZK1JWMUZSRzBKQlZqcFRtdktEM0ZtQi84NDNTU1pZdHpW?= =?utf-8?B?QlpGS2NmUk1TbFNmaXJQTDJUT3dPTzFqV2U5ZXdPN1k4aEwvS3lDSk5LaUNL?= =?utf-8?B?SUY1ZnNJeUlCN2tZMnNnZHhhVzFLZlRjdDVKbnA2OUNXNmtIejBLL09ueE5v?= =?utf-8?B?TWdaTnAzRVpCaEZMdDMxUkRIbWdzelp1Nkg0UEJ0VktjSHVKaDBpRFJwQ0Rk?= =?utf-8?B?U0lIZjRmeWFtR3pxbXE5QjZOSFVxTjYzSExiTGk3bFJhMkhkV004ekd2R3ph?= =?utf-8?B?MkxBM3JoY0NXNG9pVUsvaEtjRjB6VU8zQ2V2WERBQ0NVMGVBRFk1Z3ByVGVL?= =?utf-8?B?SS9SaXlpMldaWEZ1SVA4YVQzTTMrSGlEbXBIMnkxalgrbWtOU1pLVmYzVXMv?= =?utf-8?B?TTFkK1FkZE1TY3JvT1d3NUljWjBWQlhqSlVSeXplSElpNzgxcUdMODlTTFFk?= =?utf-8?B?czluSzJvQ1J1ZzZpL0lTNmtGMS96dEFmRUs0UUIrMjJpV053dzBWUFNxT3RG?= =?utf-8?B?Zy9vOVFsVlV2TjNjc0NqWHBMZHZWUFRZUGdaL0UxaUpyWWlKV2JSaUNudFVm?= =?utf-8?B?OGZCOC9BQTkxQkNtUVhJSXBsUkVlQnhOb011bmJaMTdlRHk2TzZCK2FoSmND?= =?utf-8?B?c21NYzVubmhVWnlweFBKdmoySk1wNUhjWWE5Lzd1RnF6dU80RE01Y21JNUJV?= =?utf-8?B?b3pCVzFuOG1vZGZRL2IyNmxCMVFvWERYOWpHNUVOZTJqSlI3Tmpjbm1XcFVQ?= =?utf-8?B?MkREZVRYc05RWi9qU2JpZjdJMEl1ZkZ4dVg4WTlIMFBtS1NFaDNIY0YwSWJK?= =?utf-8?B?Z01zRzBoWXozUHBlZU9BSmRVbkdMbDBjTGFyT3FEaWduQ2hUUmVvK1NJRisw?= =?utf-8?B?dWMrR0dYUFVVZXJOdW52NTM2Y2pyZWdMNWhWTU5lUm4xTnE1MXhNbGtaZ2xK?= =?utf-8?B?UktyaXVpME9pWmV1ano3c2ZrVU5sMHZvMDF0VmNIaTdEU1JlUUE5WnJiWFdv?= =?utf-8?B?MitkdXRsc1NLVTlpR0p2TlR2UG5vTlI1a2tvWHlOam5PZmt0ZVowdlk4RmtR?= =?utf-8?B?THN6RUJtS0lPZ05GZzl4T3pJNDRCQWdMVlIrS3VCOVJLeWlPNUVHYTNneUpK?= =?utf-8?Q?YKZcqN4nQd0AappAN7u00/v+S9XnN2tu?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM9PR04MB8585.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(19092799006)(7416014)(52116014)(1800799024)(10070799003)(376014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?MkYwTmx4cnJmd21pQzJsalJsbGsyOWxEaFNuQUN3OXFVbWZ5N1l0MHRaV1pB?= =?utf-8?B?SGEvOWwrZ1NNWlhraU15NFFkS29scFpRczRpdVpVUW1CbnBnU1BrKzhPNkQ2?= =?utf-8?B?bGhSK3pOQ1BNN29kZkZNcmwrc1htTmd4OEVzQzgxWkNGTFhnbGlnaWJGN1lC?= =?utf-8?B?TFZMZDRXVmdBZEExWFdhNDEzTlFIMTBHQnlya1hXekYxVXZxSmVzSlh3VWZ1?= =?utf-8?B?amJmTXVHVTlISWRIRnU4aFhPbTdtd1hrUEJ6ZmRGdk5aUTdlVnFQSEwvU0hK?= =?utf-8?B?TFllS2tVM0F2NFpWTVlPbFltZnMzc0ZOTkJHemgzYVM4c0M3TTFic21kblNU?= =?utf-8?B?RFZ4c3V3RlVDeFBaSm9EZmovejU3b0JBdkgrTFVBbENQYWg3V1lObGljOFl0?= =?utf-8?B?dXo0amZCdktBWHpNSDNvK1VvczU3YUNNOU1lMEN2cmxDTW42Rys3alRnalpU?= =?utf-8?B?NEs4V2UzQ25UcVBqcjFIV0NxRG96djNWR1hYRFFoUnpNZ3R5a2RXK2J3ekJW?= =?utf-8?B?VVRxd2NCVDBQcllxZ2VzWVpLYjl3VnFGelJhQnhabytKRUI1M2ZWMlg4cmFP?= =?utf-8?B?SHowczRQdDVPUFE5OWIvKzRwSFFGaUs2bkVqZTJlUGtYbENKSnJ0UFk2QWZw?= =?utf-8?B?ZDBQaHNlWU85QkcydVV5akpSVy9PNWVSVTdJS2pJdGMrc2ZrdDN6NFBnU2VV?= =?utf-8?B?VGdZZHJkTzArRXEyTEorNGNCenlHdldaV1BObk4xSEwzY0FhOXQrcmZTUEUr?= =?utf-8?B?dDBPdVRqV3JOSlY3eloxQlF0dzNRUzYwenQvTU0ybVB5YUxZdTFVNStSTTcy?= =?utf-8?B?T2VkL3U5aFhndVk4dUpSbDVocEJ6RjVyODJpa0pWOUQ4YTlTUEd1NUllTTZX?= =?utf-8?B?VkVwbTljRVR4Wnl2cDV5bXhJei9MQnl2dDVGK1lqVVQ3dlh5YXNBeFZsZG5F?= =?utf-8?B?NUZ5cEFHOEhHSVdGWjdCK0VaWllvVnhhVTBLZy9HeE1xS0FyNkxTeG90VGlP?= =?utf-8?B?YVZaREVvb0ljZ2duS3kvZ1FEVjNSeUxQeExRV3FhQklySXA4Vk9telZXL2xq?= =?utf-8?B?M2tsNTNDUmdZMDNVd0IraUpsWDBlb200QmsyQitxb0x1elBCK0ZoNjFINFFm?= =?utf-8?B?Q1ltTWdrSmZGeGt5OEpTOXFBcTY2Ymp6WmZic3hSSTJFM29Jby9zQjRDTStI?= =?utf-8?B?eVk2NGdpcXRsbUtpMmtDNWVGeTF4L0VHK1VYb0dySzNSVEJsNWVNR0RSVm5G?= =?utf-8?B?cWJUTUlRTnhiMDdCVXZvM0hMa0Fsby9VS1RtN3F0dk15QitCSm82bWRMRGhM?= =?utf-8?B?WHZtVTJrUUpvQkdHRS9mR2orb3U2NVhuNlgrbTFxSjBuNUxhazMvc0VFamt2?= =?utf-8?B?QW1oLzJrQ1ZCMjdXYXZUamFnaCs3OUg2TTZCSDZqMndGNU5iT2VhSzAwVCt2?= =?utf-8?B?UHdMU3pBUGRWSnJhSHZOd1lvdnY2NnFDWk1lRmdTTHc3cGZ1Nit6NFc4TUY5?= =?utf-8?B?KzQ0UnQ0WkNiVUIvTkhlRFVOWTNlclZrSWtHWE9Tc2JBV2IyWFJjRzN1dVpD?= =?utf-8?B?YlJiR0d6bkJkdlVBZnhCNmZONndCOGlNYXlMbGxiS2UrVmQyREpZQ216QVNq?= =?utf-8?B?b3lrN1c4aTFLNkVzYWdSR0I5TE55bWU2RUVHc3ovc01oWWZPSGF2TnZNTEhU?= =?utf-8?B?NE8rbXBTcThWRVRXR3ZTL0JUL3lxZ1Fpcm9SdEdoYkpNdFg1Z21FTEthc25a?= =?utf-8?B?bXFYRDA2ZEdCM3htSVlMajdoZDRiU2J4V3FzMGlNREdtMk85dmVtT3BqMmhj?= =?utf-8?B?ZGZaelpscXRPajFRb2NOMDViSFVHN3p4Tm5xUnEybUFNZkxuaW8ybXQ3RkZI?= =?utf-8?B?b01hcmJ4aTd2MVcxa0k3dTdKellKalFFTmlMUFFNZ2orT2ZXYzJkMHNnMnlu?= =?utf-8?B?blRHUlQ4QktxU29VcVVQaDFPZnpmb2F3QndRL2RnOHd6ckFaNE0rUTV1eGVL?= =?utf-8?B?ejdyNE5DV2ZNTk5TVDh2WklxVDRVMnJBN0hCUXdvb1lFZUZTeXhHVERZRzRi?= =?utf-8?B?b1ZMZFR4YllTVDZxUXhlU2RwNC95b3hVQW5JU3FHSHYraWxNdEttVjU3Uy9F?= =?utf-8?B?UDdicWVxWEs4VHEveE1Eb3FuanhOQmpydHBxMDd6STFXcHNDbmpIQmdUaXhU?= =?utf-8?B?Ny9pTyt0eEo3Z25OOGdyd1VyOENxU0M4TTMvOFQrOGs0VHBqVFoycVVMUWs5?= =?utf-8?B?R0tkbXlvb1llR3RXYmtpTHRyRkpZYmE2ZmVFMkV5UU5DL0hQbmhTem9zbGhx?= =?utf-8?B?QVJ2S2ZtckFoOFdNUkNWYUtlYjltOTdKZWpmY3BPMmc5ZVRsdDc2QWZPU044?= =?utf-8?Q?CN95N31yiAnajCIJ/kE4r0uE2AU1a7wt+koHKKwd44aTd?= X-MS-Exchange-AntiSpam-MessageData-1: BrNBU5zvODkjzSKlaakcP9ONPnYTmyjrStk= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 59149fab-ffbc-4f50-bbfa-08de50f587d4 X-MS-Exchange-CrossTenant-AuthSource: AM9PR04MB8585.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Jan 2026 09:41:01.0292 (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: 1hacXbvOzg32NmUw9zhEG+HF8wdLGcg6tbrqqvSuOqBaqXZ6NHtbfsHiKexijPGOtKMoIme3O0SGMN9ffjG89Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR04MB7592 Other properties also need to be defined per protocol than just tx-p2p-microvolt-names. Create a common definition to avoid copying a 55 line property. Signed-off-by: Vladimir Oltean Reviewed-by: Rob Herring (Arm) --- v1->v3: none .../bindings/phy/phy-common-props.yaml | 34 +++++++++++-------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/Documentation/devicetree/bindings/phy/phy-common-props.yaml b/= Documentation/devicetree/bindings/phy/phy-common-props.yaml index 255205ac09cd..775f4dfe3cc3 100644 --- a/Documentation/devicetree/bindings/phy/phy-common-props.yaml +++ b/Documentation/devicetree/bindings/phy/phy-common-props.yaml @@ -13,22 +13,12 @@ description: maintainers: - Marek Beh=C3=BAn =20 -properties: - tx-p2p-microvolt: +$defs: + protocol-names: description: - Transmit amplitude voltages in microvolts, peak-to-peak. If this pro= perty - contains multiple values for various PHY modes, the - 'tx-p2p-microvolt-names' property must be provided and contain - corresponding mode names. - - tx-p2p-microvolt-names: - description: | - Names of the modes corresponding to voltages in the 'tx-p2p-microvol= t' - property. Required only if multiple voltages are provided. - - If a value of 'default' is provided, the system should use it for an= y PHY - mode that is otherwise not defined here. If 'default' is not provide= d, the - system should use manufacturer default value. + Names of the PHY modes. If a value of 'default' is provided, the sys= tem + should use it for any PHY mode that is otherwise not defined here. If + 'default' is not provided, the system should use manufacturer defaul= t value. minItems: 1 maxItems: 16 items: @@ -89,6 +79,20 @@ properties: - mipi-dphy-univ - mipi-dphy-v2.5-univ =20 +properties: + tx-p2p-microvolt: + description: + Transmit amplitude voltages in microvolts, peak-to-peak. If this pro= perty + contains multiple values for various PHY modes, the + 'tx-p2p-microvolt-names' property must be provided and contain + corresponding mode names. + + tx-p2p-microvolt-names: + description: + Names of the modes corresponding to voltages in the 'tx-p2p-microvol= t' + property. Required only if multiple voltages are provided. + $ref: "#/$defs/protocol-names" + dependencies: tx-p2p-microvolt-names: [ tx-p2p-microvolt ] =20 --=20 2.43.0 From nobody Sun Feb 8 14:59:30 2026 Received: from DUZPR83CU001.outbound.protection.outlook.com (mail-northeuropeazon11012057.outbound.protection.outlook.com [52.101.66.57]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 49C23322B7C; Sun, 11 Jan 2026 09:41:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.66.57 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768124474; cv=fail; b=Texg0ES0hQO+3PkHvNKTeypkB0HtEQ0DRmyFlaV33ELGdJJlJoN7srzWXlT2yLDTVrrGxF46D3OnGn5+innr8pk2nSdOU5+NzydoQTbdM7OiAAH1TOHdOvjVVn2ah86MrI3ke6GrWRL+Af7jiLUzQWbTglvJer3YDMfJML0tPfc= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768124474; c=relaxed/simple; bh=H1Whub95+Dyrq1dSuVzd63hQA+kGM+Mz0H75kORy6DU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=nu+6C5OvBrbuYCiQQ20Ulu6yEYunqcCJQe6Tapqm9EnPyT2mjistnyP+3da2N643HbfG7/ifweJhK7JCSTyamavsGULh5kV1K3VAhYKdJiyawUxYgvEQ9kghwUT4qREz+fSZJtlVaaRznqQ/6Mmn1BwKpLGKp4xFoS0mO7uIW64= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b=VrrTt8PE; arc=fail smtp.client-ip=52.101.66.57 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b="VrrTt8PE" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=fQxsQgwrcYLZbkLqqXXUJlf35eMcaevOwP5AsyqVk9w8qylNv9Bl2GLhq9uq011KIZgStnWVtx/5kZj+vuGwRVXhJzFmacZldsMQaeKb/OhYvjSMaW1AtgghP0YIy6J7+eQSAesYE05lOLXEFP4lvwoZyZsi9veXkkRfpgiIs0JK/PF0qwlAUQLRez1AgAhQftETA6HqhmgP9Xolw87ujxWz/pnVCbGe2jMeaZKqyDsF/gcsjwDkvAZRb/Mo1Ff9TIudnzNO+NzILQriavx3LxmD7b8VviI6TfkfVgzI+y2xBQZcS01Fs2883t6xCl1iCNzArXgLNSRkEod2nXzJ9A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=Xyv3YL5vEsJBhwG6bUUGbVUuYWIGI2xp5dR/6eBgU+A=; b=VfvjPUxUqYR/G+L2TMzaLB8E4RqhLIs/wEYsyro9ieKtZamw1AVgrpD6FPyXfHKF0FVE+ejh5r15yjg5dB0oSR1LPeRArLgkbGSAPAnglHbu4Kbj7M2j3aK6a+Dcv0U2cVOSPMX8hJ+64rz61WP5XhyY/uclyjvWiGs74R5koGXWYFJbXiaisSFkBAc+3ccfBNQnKoXgYloX958TwvHzOV2rs4PSvGkfxVeDDhIRJissU8J5Mp23CXgEATYeOpgagoKifbCNoHr/ZttRDsqd+oFesp8LcK3qqJfSiJ5om6z/3nOFYJxI2ukRX44QSnytuPNOotL+n+kgDC2WSogrlw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Xyv3YL5vEsJBhwG6bUUGbVUuYWIGI2xp5dR/6eBgU+A=; b=VrrTt8PEp38DNP5KFTdQkamFIkZYnr5BsUyh3lVxYoKZ0lDx2aPvRvVRKJHuSfiU740FobEXqBujc/RLfUMrQ/6OkNUGIVgOmk/BkQME6TcWFnB4ZLQgrMUgp2MvpjbPBF9GBUyffYl79RHMbtrYXEuw6wLloQ7swKCobQfiYPZd6IEIprF4YG7Bf+j30XW9ghVAy+fVeFfClfkEpR8pwutOC0MQjwr1SMcg2OpJEABLl9v7jzG5CbWM6TT66y+S2JI2mgus1fLM+lguQ8xmivPLgxgghK21C4ukDCufpfzEgrLcVcbrcwntgFXIYbojJeL6pykkoApQ7mHSJgbQNg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from AM9PR04MB8585.eurprd04.prod.outlook.com (2603:10a6:20b:438::13) by AS8PR04MB7592.eurprd04.prod.outlook.com (2603:10a6:20b:23f::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9499.6; Sun, 11 Jan 2026 09:41:02 +0000 Received: from AM9PR04MB8585.eurprd04.prod.outlook.com ([fe80::f010:fca8:7ef:62f4]) by AM9PR04MB8585.eurprd04.prod.outlook.com ([fe80::f010:fca8:7ef:62f4%4]) with mapi id 15.20.9499.005; Sun, 11 Jan 2026 09:41:02 +0000 From: Vladimir Oltean To: netdev@vger.kernel.org, devicetree@vger.kernel.org, linux-phy@lists.infradead.org Cc: linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org, Daniel Golle , Horatiu Vultur , =?UTF-8?q?Bj=C3=B8rn=20Mork?= , Andrew Lunn , Heiner Kallweit , Russell King , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Vinod Koul , Neil Armstrong , Matthias Brugger , AngeloGioacchino Del Regno , Eric Woudstra , =?UTF-8?q?Marek=20Beh=C3=BAn?= , Lee Jones , Patrice Chotard Subject: [PATCH v3 net-next 03/10] dt-bindings: phy-common-props: ensure protocol-names are unique Date: Sun, 11 Jan 2026 11:39:32 +0200 Message-ID: <20260111093940.975359-4-vladimir.oltean@nxp.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260111093940.975359-1-vladimir.oltean@nxp.com> References: <20260111093940.975359-1-vladimir.oltean@nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: VI1P189CA0004.EURP189.PROD.OUTLOOK.COM (2603:10a6:802:2a::17) To AM9PR04MB8585.eurprd04.prod.outlook.com (2603:10a6:20b:438::13) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM9PR04MB8585:EE_|AS8PR04MB7592:EE_ X-MS-Office365-Filtering-Correlation-Id: 7e45041c-7f56-44bb-5e79-08de50f588d0 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|19092799006|7416014|52116014|1800799024|10070799003|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?TjK9z811dES6+9/FYiWjd5z+lVAjAdg4rgPGdqbj+cMnPybZHWt1qZARTZuZ?= =?us-ascii?Q?upgsufJtGrJRxVNyMijuUSbIfFit5ZNBaiGBRin3WpB3l7u8IwOuotisWSje?= =?us-ascii?Q?7zg7/zxFuFUnrsqibotgmsb7LXO/8bXiyzzdPpcygsWsSX1spLAIhTO22j78?= =?us-ascii?Q?0agQZFzfo1KKbNWjvvUGUeIXjknbY6eKAyUuoGRHrMd0v+qgv6/4eM0uu9cj?= =?us-ascii?Q?/88SiIjumL8+9ksqvBznDXAWtVasB0lPrgYxrFIisnPFHFHepNs2zhG+7uX2?= =?us-ascii?Q?/DxjbHbL6mu2/OPN/tdFj6+jLLRiJzcDywyr+g9Uo838spy7tSjoiNfp7gfV?= =?us-ascii?Q?b4e1GhAYyZNbzPgqa++R7FkYXjTXw+ndj73wh/FmUOi8LAXyNJHu3R6kQIuQ?= =?us-ascii?Q?ApeuwITyh7k3TwARbWmLvds6dvVD5Bcee1ghBQ1meBZdDGTrpa2YvfycVC8u?= =?us-ascii?Q?Gqt+17QVn6SCXDBN3XdlY/E6YZKFM7rTWG8nh/3+r2cQR1XofZXmOVSGDrK5?= =?us-ascii?Q?NuJxyxXJ/MtL1jwuD996p8nZCIK8VCIfKOQ1BKl2l6nF+UKjDpXibvlmR3Jl?= =?us-ascii?Q?BGIBUCIEJFyJaWWwLiqSNQ3JNO+j42ly3lK+m0iktQOdBI0KjonCSMJclpHM?= =?us-ascii?Q?o65DR8IpUXJTgJlYpm+cvqdaxV0vfIeg/espE0yQGp3hRBUNGbx0gOfgDonA?= =?us-ascii?Q?5iIa23Ms04zW4WKHI/5y4/qv9+PSgKUfOQ2s9xDXmIZCTRFl3oJ1UyeDrAiI?= =?us-ascii?Q?6S1iaDcFOsRhpo3eZ1IyPxGlxKvrQieuYdl5vD3tzi27bFSHbLosrUPV9JXh?= =?us-ascii?Q?4s8jKQ6ck7iJ++IRCLmZZ4n69EFpxoxWbZgsek3rDAxTCwHaVvCrgpBfPko5?= =?us-ascii?Q?PD906Wu2x1EFKnV2uuaIVmETan72CQwdCL2KUdUIIPDIc6ONKYmv4I01bekE?= =?us-ascii?Q?rLqULERQUeciMo3yKUoqPlzBeYgyFSD+3otjaa7h6phbwERmYFsvXMRjJfeb?= =?us-ascii?Q?bgfh8/LcnjIdTAiEk36fEKeJd2+/yE+dkPzjnHHjmAXjOlvHxuhja0qqhI94?= =?us-ascii?Q?7zZb50uqLSKH9CTfQN4ydP2VVTAUtlE9sFRa6fippXPd77c15YGXOjlZaEKP?= =?us-ascii?Q?ZUvahZOB7kfNpofIM/3s4mDWk6f5Y9v0zOf2wuM5KLxm26dR+ddeRaZqVBks?= =?us-ascii?Q?I1yYZi1Km6CcecJiGqdjISvRN5u6SXarfYY0fYwTNULBrHGOfYIyN8tijVI/?= =?us-ascii?Q?qZNzUKJrY+HkKmNvn6NJ4Kah/MbCyyDdlh/higZMqG1NkwCKTCvSoB6r2xe1?= =?us-ascii?Q?5/4PwXfLL2X11foFazAYgPFCXQc3oiPYMhizb7OwBiUfDis31Q7lIUY//aj9?= =?us-ascii?Q?GO0T7UStNziuF40Rf0KcPHAxwReqBkUmzxieCDDbech2qcPhehgXlExmE2py?= =?us-ascii?Q?AmZ0mVI6Ik3KGycuP8TYCVuPHlisUHVnb8+0oOCVjEcPh080JpYlgw=3D=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM9PR04MB8585.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(19092799006)(7416014)(52116014)(1800799024)(10070799003)(376014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?qmQ9sZ206318dSzcVtEfL6Cg+0mjcX/7BFUHcXnC1GW/d0OGIcTizNRLkzj5?= =?us-ascii?Q?fUOfdKvNWThw3+SaIiPtXKRx7Bm5xqpvilWZwifdTw9wBM9cxFm8j3MsOB+9?= =?us-ascii?Q?S7QwtPab7HMyczJ052Gj8Ynn0ZdZ5ylTh+vd10R8lExjHjwvCxc00FMNV12Z?= =?us-ascii?Q?hY2dxFpCl7Ia0Pnrfa05p8adWEITa0q0+GUmiXwA68ASzdicyMh4/qCgYuaJ?= =?us-ascii?Q?OyhmoWoy1QBx3kMQ23080OXU9yn59sG1L4vNbScwNK3v4VTzz3P4OFUIZ9Mi?= =?us-ascii?Q?GYmJEs81sj8Y4wiWvJ6mmjBBPvOfc1h2dRDkWYCQ0uxRcT1LBXgZ0w1tmCfi?= =?us-ascii?Q?0u14ntFDlKWsieAJILcXWzn7OFFvFTY+35i5XPwIxNf3iHaxo3qiWO2pupav?= =?us-ascii?Q?3VYZ5gQKcqDLupIeraLdJvW+ylDcziVFFtIJnj/lHGC9j7sgwMEkLlbItMwN?= =?us-ascii?Q?2ago+U4Sh3VVZPx6QaxQZFcGoJgvjhyZo9E+ZHrcZwxA+erizg8jxM523n/S?= =?us-ascii?Q?vHoaLOx9l5YEBUCJskx9Wyar18SoVAXSRotqD7PPJwyrXjwE1TOjpGQg22VI?= =?us-ascii?Q?5/0SS59oWRJ5KTcjfKkY2gaGzCPFJs61qR5EOiWsAtgOZ6cgUbLU66TiXRHh?= =?us-ascii?Q?lwhc4ArdEPb/zs3u2RKvHJ2N05aBdnfZ4mmm+i278bc2TfYkQ/WeSElU6Vud?= =?us-ascii?Q?0RRDP7qot0Rk5mW0JwB3h6OeEsjHyJOljMs88RlC800HhpyD9vOg/3hTxu8B?= =?us-ascii?Q?ANqHJjV3Hr6EhGiA6UCqTRx/SYahB3WDE+57buO2Tvqobsc4mhl2g5fQVj8o?= =?us-ascii?Q?QwyW5HyoFLmvKJ32YnmJZGMzdYR2TX1fjECjeak5wd3RIN14nJbKrgZuUoPE?= =?us-ascii?Q?Ohp+Fuv4yjbH766jsTJYttdly+dUtbq4j/pCkWO+ZJOBOp+ok7z9bac3p8Ug?= =?us-ascii?Q?zhi9tjXhQ72fAM4ZhMvWJgDCyCm7ZRpILWLou1ZxpoWAwP4MK6f9nkFOoOVO?= =?us-ascii?Q?GQHN8qHCmbebdTSenECCIlI9kVUvn+SswOW9TeXeEKG949WZ4eAi1TfPcUtO?= =?us-ascii?Q?+yJwLyupAu7jehLitzRB3eO52ydN5okOnVAy+F7NYyD9/bfUgm9Q/LBxWUBd?= =?us-ascii?Q?JowfCY7hak0Yg2N5RO7Dw/LKBPM+DhHZ1KEhH4oI4IgfX9//a3PWMrMcITML?= =?us-ascii?Q?e0u29FK9U1f0AoRe8C7HyKARLTUtBqopkPNgHuen+VgmNLbQ80TwKpbxZ02F?= =?us-ascii?Q?1Ce6NwDnq6ZuGAMC04k5MKlwNqznkpDg+BPtlQvbP3wedPQicQcwREF+O4JF?= =?us-ascii?Q?eWw+GQzyLeEuvtDQkD5fDNCIldMrA0t36y1qCPWOe9U0qUflVqabD++JrnlJ?= =?us-ascii?Q?cBvhRvWkFyJyZCPczYy8ZSxO4VEtYDpZbUzdyj2DN29vTw4iGv7tR50Hdj5f?= =?us-ascii?Q?wa1+qcnJcQRGTa2X6kF9NJxkQdfkgoesOaXoxzUHEOHYM3eS2LlW4809fzxg?= =?us-ascii?Q?rimtwV7XpQgDlTJTs5gB7wX0HbeaH08BYfdXi17hLTKXdtpIPePcTJ/UOl2w?= =?us-ascii?Q?mypJZ3Q89DCFoUJOoTkHIq95uD88L7xgjbfNhR/nodQOEFULJOVk9tBLAO65?= =?us-ascii?Q?Gz9VcgVi90SaZYdrNjByqnljWkl3lD+uKO8sY2LUCFqpwOneMNUkh1vbZuLh?= =?us-ascii?Q?KemO+9vZOBFHc1xMstNwPeW8raFwHxAiq1YC47O0tAvfJcgaJDQ0cx0nSM8k?= =?us-ascii?Q?AwiVdAsdz307iF99Yb2fhFRslytyQ+TuvufmuAsoKjl62QFYGGLV7jgFpjw1?= X-MS-Exchange-AntiSpam-MessageData-1: 6tD1dcfo7YTQSRU03nFmiiZHQodDF2kCK64= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7e45041c-7f56-44bb-5e79-08de50f588d0 X-MS-Exchange-CrossTenant-AuthSource: AM9PR04MB8585.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Jan 2026 09:41:02.7394 (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: VBNEILL2szS76NUTf+3YAU5H2f9zjrIY/xmkpUuVXBz6ZhgG4ZYvCY7PoMiT7xhWoMzwHa5cPqZ9fTycZJNU4w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR04MB7592 Content-Type: text/plain; charset="utf-8" Rob Herring points out that "The default for .*-names is the entries don't have to be unique.": https://lore.kernel.org/linux-phy/20251204155219.GA1533839-robh@kernel.org/ Let's use uniqueItems: true to make sure the schema enforces this. It doesn't make sense in this case to have duplicate properties for the same SerDes protocol. Note that this can only be done with the $defs + $ref pattern as established by the previous commit. When the tx-p2p-microvolt-names constraints were expressed directly under "properties", it would have been validated by the string-array meta-schema, which does not support the 'uniqueItems' keyword as can be seen below. properties:tx-p2p-microvolt-names: Additional properties are not allowed ('= uniqueItems' was unexpected) from schema $id: http://devicetree.org/meta-schemas/string-array.ya= ml Suggested-by: Rob Herring Signed-off-by: Vladimir Oltean Reviewed-by: Rob Herring (Arm) --- v2->v3: none v1->v2: patch is new Documentation/devicetree/bindings/phy/phy-common-props.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/phy/phy-common-props.yaml b/= Documentation/devicetree/bindings/phy/phy-common-props.yaml index 775f4dfe3cc3..31bf1382262a 100644 --- a/Documentation/devicetree/bindings/phy/phy-common-props.yaml +++ b/Documentation/devicetree/bindings/phy/phy-common-props.yaml @@ -21,6 +21,7 @@ $defs: 'default' is not provided, the system should use manufacturer defaul= t value. minItems: 1 maxItems: 16 + uniqueItems: true items: enum: - default --=20 2.43.0 From nobody Sun Feb 8 14:59:30 2026 Received: from GVXPR05CU001.outbound.protection.outlook.com (mail-swedencentralazon11013048.outbound.protection.outlook.com [52.101.83.48]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 92834330660; Sun, 11 Jan 2026 09:41:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.83.48 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768124483; cv=fail; b=ryw5ZIVJv/Bg53B8dAe8IU1ZCBNxq3389JIcPBf+3nT1XrxfbuKduiMS7pB4rlKc/MK6XXk9y8RUnjEFOg5vNz0AkZFu8ZCu2d4M4M5I41RvT5o/ftd/7shYc2doJLQh+EAFECGxY82OISmg2yjD5/szQktgOHilrysZZ7FHVGA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768124483; c=relaxed/simple; bh=2qthhdOYOTEggMPS//753u9PqcoERRJJ6p4X/GmiFwU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=USCPYUwEg2u+E6jedYUeJ9xB9zNxc0JEqvFkCl2T5b+zpzYbBlovORPiQz5M1kWvVtwJ6tL3/JX/vwMfAv71+wIizrMhl40LnvaAnf8KDGj3QiuRDji275x22AC1NHqyQUrSUosCmu/MWGLwhT25TrgiO0QSIzvzD6wWOfO47dM= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b=KufU9A9l; arc=fail smtp.client-ip=52.101.83.48 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b="KufU9A9l" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=GAICRZdBO7DAdqScPh1rZR3zplsOZg4K5NYd1daLIOvD6P28R7DxZMS+dLqfsD6Z2vg0QnB4uF/n2hdNTc2z23nGyXZerPTqYWUsf7YBehsSGEotGOzPVZ8rRqu1oTXKqzLSuPLN93lO3l/4n3aih3BsmTLZlPjTFnd16GWBaHMqTMhtehAD1i3laTWGerxlMql8j2kVRntQYakvKqvju+a4ecedix1j7BkAQ83lVvSd/HLr6xArab0nhKLbRvJnZhkPOJAZdZkYkegUHqymVMfWy6G8dw4CXBkckVC80uVLfsM9p3+gyQ2wID/NWzKkRGF9LcEBYNedyZ/Gd5f/wQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=b4ZxFEzhC1Vj/nZ+V/m12Otx9P1EHjahaApxiNz3vGQ=; b=NIdbHmAjptPh53mEYttPWfJG9tFOJHERR2BmujIfbn7DUk/ocsZEd9ISlgLVHJZORUSw+p9TgLVz6ZqFw3ciLamvk/saLiEOYoRj89Cnq01edRb+QE5Bz6bA4Ib0HxpG2Ipx8aD8blA9IG8kPeTcWVLwa+3gPgQ8jLMgweyjEaNcTz8BQKvlrEVCMFrGR42kHny7iOtCO4YKh9NPIS/nsAmQBHZWmBA7V0l6DEnoKT7PYMlLeElolsbJG7BhKlCB60RuU8MXF5GIwCGyThv0MglcnAdnoR3LwHpYouVw/CcamvmU27Fm5wGzLjqwTDgQL2q9JItjxcAo4ELlE35K7w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=b4ZxFEzhC1Vj/nZ+V/m12Otx9P1EHjahaApxiNz3vGQ=; b=KufU9A9lrOeVhJ5ERoIPnxeWlKEHqixNSK1flL8dg+0NP6BCSea44OGgzrQW4O9cCmARuA0K9biki8sgo7N0khHeQNB6aX01XdxpNoG0ntfaitnkhBsat98YKNFnz4IOMGL2xLQv2JtGgo5Ht9PcQKkF/kww/JX7SbAhNzIGAC0h4vOnQ/vxW1g+OeS2k845zV2nFUCuwZwN3Ye39jcd7G65w4Rid/3X8+ZBdg0RLrRsWtxUU5TS/RBDwE5+P9N2rc+UKO84gyMXkfesVnwQf8NLvyK3l8cd37Eq4AwlhjEOh2oK7T8ICW9lIKlzYB/y1E7L+zP00FK5RghEsL/F6Q== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from AM9PR04MB8585.eurprd04.prod.outlook.com (2603:10a6:20b:438::13) by AS8PR04MB7592.eurprd04.prod.outlook.com (2603:10a6:20b:23f::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9499.6; Sun, 11 Jan 2026 09:41:04 +0000 Received: from AM9PR04MB8585.eurprd04.prod.outlook.com ([fe80::f010:fca8:7ef:62f4]) by AM9PR04MB8585.eurprd04.prod.outlook.com ([fe80::f010:fca8:7ef:62f4%4]) with mapi id 15.20.9499.005; Sun, 11 Jan 2026 09:41:04 +0000 From: Vladimir Oltean To: netdev@vger.kernel.org, devicetree@vger.kernel.org, linux-phy@lists.infradead.org Cc: linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org, Daniel Golle , Horatiu Vultur , =?UTF-8?q?Bj=C3=B8rn=20Mork?= , Andrew Lunn , Heiner Kallweit , Russell King , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Vinod Koul , Neil Armstrong , Matthias Brugger , AngeloGioacchino Del Regno , Eric Woudstra , =?UTF-8?q?Marek=20Beh=C3=BAn?= , Lee Jones , Patrice Chotard Subject: [PATCH v3 net-next 04/10] dt-bindings: phy-common-props: RX and TX lane polarity inversion Date: Sun, 11 Jan 2026 11:39:33 +0200 Message-ID: <20260111093940.975359-5-vladimir.oltean@nxp.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260111093940.975359-1-vladimir.oltean@nxp.com> References: <20260111093940.975359-1-vladimir.oltean@nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: VI1P189CA0004.EURP189.PROD.OUTLOOK.COM (2603:10a6:802:2a::17) To AM9PR04MB8585.eurprd04.prod.outlook.com (2603:10a6:20b:438::13) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM9PR04MB8585:EE_|AS8PR04MB7592:EE_ X-MS-Office365-Filtering-Correlation-Id: fe5e526f-0a8b-415c-5402-08de50f589d5 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|19092799006|7416014|52116014|1800799024|10070799003|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?9B0jzT1PdoC5KJL4pYvwxdc651IAFFqAzhtUDCB2CA3EfJbiQ6ga9RuZHoz/?= =?us-ascii?Q?YYtUqqW2rvUWxXEQ7hSuPUOCocIdG+dzz8s7NXvGxrG0hkiBc2QM+KvYE09i?= =?us-ascii?Q?zathnYQhgkKTC32U33LzKVHsVOx4YRMSkuwdpGdE4jbtpZEhMagZyXi+zwGy?= =?us-ascii?Q?MrtTzuyeAGbVTLTPMCgPc9z3ao9XJOuy/AH7WQrtwwZS4wgeMUX+bIpBHKDs?= =?us-ascii?Q?A6CBZENBNnGuWy9CSidMBrLNwF1T868Z85I2smTsl+r6wf9OONbefadloEb5?= =?us-ascii?Q?zFFEW5ikXhymlyWERdbPQrs2Ia2dvhgSGboh/Fl/xoJqODQyWJ5XQ/oOZMKl?= =?us-ascii?Q?iKJboygNtKn2TFadNfn2DtzId0wnLgepGftFKnr66ADqzv9Fnh/X5CDqpE6E?= =?us-ascii?Q?DU/jmGds/+9UPobBQ5CPeGeJEiXb7wIeqnKRlEhkYTksa9CEyFTzASQpS+d/?= =?us-ascii?Q?fLzuNA/uRiXVUtWhRQkeQmplJ46q9z4SeByHU8c4Yv0T7eg3kZhuvGjTLgF0?= =?us-ascii?Q?j9YuNMEMd+VSEeBNeL07O3GhD2f8MD/3OB+YmOWx8x00Mjyh32OAf3/Z51Eq?= =?us-ascii?Q?dBjSOKIWHV8lqGEt++4DmChEOkgx7B4dMyIr5iMJXE+cyOD/KHaveVuPWgDx?= =?us-ascii?Q?a2rzlgejiDhBq2Md79vpwrrdRkrkWY6DwMdMOmN/OfpCwzMAOgPF/G/csWhE?= =?us-ascii?Q?4hO/gYqMuSDz+t/D2sIJiQIap5qj9yoK/apdiiOe9rBfCTUshyS3bsTQr+o3?= =?us-ascii?Q?3U+9LY8Pd/3HlsZuFNdC0p4xET5sM5HsGTZHO6D2PP2KJqeg5cSG391tPeRZ?= =?us-ascii?Q?NDB6oTdZSPZGpXe9lYgTP9VmU4mjcGYGUtHkYKA9lSCiDDEUEk2m13vZ+DWx?= =?us-ascii?Q?pGh0CBES0Y+etShBO3jtto5Oa8oNq/SFdhBn8cTdMRPG8igEGn5JbnZl+l+W?= =?us-ascii?Q?k7ZRHGapPNLoolaYz7BRqZcE5SLkr9dUbCapdfGjwY947g1cu60C7olGQI+x?= =?us-ascii?Q?Zv8kcCvlzh+ZOsVVB9MbCvzsnycDpDCXO6yhFon6wfB6vMMHujLCiZvGqxyT?= =?us-ascii?Q?kXzPtM0UjWLvl0ROpSfkBUpkvc0/wtiXiCOeWxnk4ysplZNJOmZ6LGJSUBkQ?= =?us-ascii?Q?4rSR+JKZT4JkhQ2jqKlLml+vTdXsRtpwdrDEiLygb/DHMTuBZM0imT3njS7Q?= =?us-ascii?Q?J6iebW1eH9c7WlQov1cQC9AKeN2PpcX7xGEQ5LBJNQuITOGkjmAoFaz2SvvV?= =?us-ascii?Q?kiF4+YpVuXPp4wNQqMf3lzkJT6cZDevYJyftfV+tNYpJBV67eAOqRUBr4q78?= =?us-ascii?Q?p0wOf1Rk8h1AKgd1qKUgDspfFkb1wkaI0A9uF3UYHDzgXYGgPE3MM32ALdB+?= =?us-ascii?Q?b44iULCyER75gEOz8qDVTVOSPr6NRRhi/x4HdA7Fl02WH+vc1oq5YTX/Snq7?= =?us-ascii?Q?laDHBeGDNRxBmp4pEvmFQjfaVz5S8nD72Y/p96nxO55WCe624rtSXQ=3D=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM9PR04MB8585.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(19092799006)(7416014)(52116014)(1800799024)(10070799003)(376014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?rMuU8sX/+TYmnPa3FGtPWc93KhmgFnqpoMHlHaM4RI4Q213nnlZmahYRZgB9?= =?us-ascii?Q?Tm5YY4q+Jvv6eFeH/aZNiK2qF8n8hDiS5Apc9wMtMYr5e7R/N5W/0AsHAXXo?= =?us-ascii?Q?KFOTA7GabJdvL4k/drEK7fSLoozBxFOXLE8jH/WII6qLvSFruNRqXUgfoMDC?= =?us-ascii?Q?091SLU8XbQeveKvggacjOTy5EpMpUvN175EzE6cM0wdYQRaCoW2Yrv34YxMQ?= =?us-ascii?Q?EnDQ4LDJEZO3yGNbg7AIebU1V5nj8+KNhf5b2jCIRAt3xctghWkqeECGt/qa?= =?us-ascii?Q?4qmeFPq5ftmD/roqu2fOiQDsORjklBsCGbzEFpLON2TmXhDhvpOzjWSL+WGY?= =?us-ascii?Q?O8sHXPN5Fyp4b29whrfe716rrbUhN8FLD9mj6LLWraKW/tXI1uXuiItWmKdG?= =?us-ascii?Q?qZ7m0txGPvUczX0VeD0he+o/Gs6I4RMg8SyiE5cDxryBsyl7sPXrF2rz+feP?= =?us-ascii?Q?d8PI+2qTyAOEXJp5JGtsbzJE1bQjtlKdyZ1GHRWwZqhDgFvU8ohgZRqCn6bc?= =?us-ascii?Q?LUtNgIhvmquwD5EGLFwqkemu+Genmb0tBqzNVPrZVbmtDUZgvpT0NMiNsqzG?= =?us-ascii?Q?gm4XBDofOEb3jgq2yyrImYHbXxLdf6cxxNmwLXZnvbt8Kc/C5FGe4VwKLway?= =?us-ascii?Q?/b7hGBiVsWDy/5YYdbrtmkxOf3Z+gtd5Q6ZzeOQ1sz86+Y+R+aLaFm/TfuA3?= =?us-ascii?Q?lIOAi64LI1Pxk3JPO6kKvXL608gHFVChyFDMkSdIY+YYuD3ncltZpZ2G32gb?= =?us-ascii?Q?F3DxZqqA+Ach/ds+Il/VrNaaEV4bCMJwaKFF/txWH7xbbS+jNR2PRFynEJJz?= =?us-ascii?Q?fvo2cDlE56wRatx2T4j5RLZS66KZMFxhJi29e7IGdhCHe7lC7+Cw/34Q4Xd7?= =?us-ascii?Q?adZjdygrtBJ1248cmdxKA8fph+VTfMM0NzwvlSthUFRlcuP1TodNPqdJMyVt?= =?us-ascii?Q?2IJBbBVfPUljEBxR5OuL/qhusL4jDZtS2tJO3B6rO5h8Dr+Y6dDvnCDgZHSh?= =?us-ascii?Q?A1hbU+gWZioG4sugVw81p4sFrsWR5+CIGd+ehgZIILdM0nSrs1HP/A4QhEno?= =?us-ascii?Q?cdTM8l+OdEY9vML9+9LdMefGAv1gotGJMSdPM6i4zUZZ4Sq/NSJTR4ibMrEY?= =?us-ascii?Q?KElSAyARh/1UDB5zpuW7h8YvexTBiBkWaQbTmohoSfzU/KwdnM2fqFeI447G?= =?us-ascii?Q?TCFXH2Bakm7SXHMzf/y7tzZeQahe5rw5A8eNWiYNd2rffAq1Xm54uVMEMgWA?= =?us-ascii?Q?gHoMlHHguIDvQAl4nbzme+ko9L537nu79VVq41CiwVKh8IbXw68cTSh2CHDw?= =?us-ascii?Q?Xyt0IqHmOGqs5tB/7jge4RoshTU20jbku6MTaxIyN95pxMkAj15ITkmMbTFp?= =?us-ascii?Q?oBQEgEYvO4zUd973knKMpXFNyiV1bDpD0AZwm3KTsLWJrscZRce06gMxjrPp?= =?us-ascii?Q?dOOLYQbe/1bVMQPx5wgNM0pfCdkXBRJfwXiLWoRCPWGDcd9JjJ2naujRluKH?= =?us-ascii?Q?z/wu6bT5xcWxauTHOU5iyLacKJ1dCNrhFQ7Q3Hx3MyeeSeROGDsPaLB1BH61?= =?us-ascii?Q?8zM3h/IyRi7hlQS3TY10ImWIFzHCGTZ3dEDXgrmArT/msthbt2/zJlC/BsWm?= =?us-ascii?Q?A9dU9Uk4A0n+dwGHPhR6x8ZBBOLhdD0hP0G1OdrPkalocuu6edHqoQDUOK3w?= =?us-ascii?Q?1eQbisBcf3X2HUy1d/4QBdSZfgloIs1ukQVnn0jJ1lBc+gs0PZDgetCYIreD?= =?us-ascii?Q?XgJp1pyCdj39K9pvX+5L08OciBf9GOUaBZPrt5rc+aMR34LcTL2lgC1whKQl?= X-MS-Exchange-AntiSpam-MessageData-1: tFnAsfxSgne8a29XpEVht78Abl+3XZajIX4= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: fe5e526f-0a8b-415c-5402-08de50f589d5 X-MS-Exchange-CrossTenant-AuthSource: AM9PR04MB8585.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Jan 2026 09:41:04.4027 (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: RNW9IBE+McjMok0epY10gI3nazcMMU7/SteW3dQxN2ndosav+Q37o22wJsln3Jiw0Qn7+Huy6CG7F5NUbqFp2g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR04MB7592 Content-Type: text/plain; charset="utf-8" Differential signaling is a technique for high-speed protocols to be more resilient to noise. At the transmit side we have a positive and a negative signal which are mirror images of each other. At the receiver, if we subtract the negative signal (say of amplitude -A) from the positive signal (say +A), we recover the original single-ended signal at twice its original amplitude. But any noise, like one coming from EMI from outside sources, is supposed to have an almost equal impact upon the positive (A + E, E being for "error") and negative signal (-A + E). So (A + E) - (-A + E) eliminates this noise, and this is what makes differential signaling useful. Except that in order to work, there must be strict requirements observed during PCB design and layout, like the signal traces needing to have the same length and be physically close to each other, and many others. Sometimes it is not easy to fulfill all these requirements, a simple case to understand is when on chip A's pins, the positive pin is on the left and the negative is on the right, but on the chip B's pins (with which A tries to communicate), positive is on the right and negative on the left. The signals would need to cross, using vias and other ugly stuff that affects signal integrity (introduces impedance discontinuities which cause reflections, etc). So sometimes, board designers intentionally connect differential lanes the wrong way, and expect somebody else to invert that signal to recover useful data. This is where RX and TX polarity inversion comes in as a generic concept that applies to any high-speed serial protocol as long as it uses differential signaling. I've stopped two attempts to introduce more vendor-specific descriptions of this only in the past month: https://lore.kernel.org/linux-phy/20251110110536.2596490-1-horatiu.vultur@m= icrochip.com/ https://lore.kernel.org/netdev/20251028000959.3kiac5kwo5pcl4ft@skbuf/ and in the kernel we already have merged: - "st,px_rx_pol_inv" - "st,pcie-tx-pol-inv" - "st,sata-tx-pol-inv" - "mediatek,pnswap" - "airoha,pnswap-rx" - "airoha,pnswap-tx" and maybe more. So it is pretty general. One additional element of complexity is introduced by the fact that for some protocols, receivers can automatically detect and correct for an inverted lane polarity (example: the PCIe LTSSM does this in the Polling.Configuration state; the USB 3.1 Link Layer Test Specification says that the detection and correction of the lane polarity inversion in SuperSpeed operation shall be enabled in Polling.RxEQ.). Whereas for other protocols (SGMII, SATA, 10GBase-R, etc etc), the polarity is all manual and there is no detection mechanism mandated by their respective standards. So why would one even describe rx-polarity and tx-polarity for protocols like PCIe, if it had to always be PHY_POL_AUTO? Related question: why would we define the polarity as an array per protocol? Isn't the physical PCB layout protocol-agnostic, and aren't we describing the same physical reality from the lens of different protocols? The answer to both questions is because multi-protocol PHYs exist (supporting e.g. USB2 and USB3, or SATA and PCIe, or PCIe and Ethernet over the same lane), one would need to manually set the polarity for SATA/Ethernet, while leaving it at auto for PCIe/USB 3.0+. I also investigated from another angle: what if polarity inversion in the PHY is one layer, and then the PCIe/USB3 LTSSM polarity detection is another layer on top? Then rx-polarity =3D doesn't make sense, it can still be rx-polarity =3D or , and the link training state machine figures things out on top of that. This would radically simplify the design, as the elimination of PHY_POL_AUTO inherently means that the need for a property array per protocol also goes away. I don't know how things are in the general case, but at least in the 10G and 28G Lynx SerDes blocks from NXP Layerscape devices, this isn't the case, and there's only a single level of RX polarity inversion: in the SerDes lane. In the case of PCIe, the controller is in charge of driving the RDAT_INV bit autonomously, and it is read-only to software. So the existence of this kind of SerDes lane proves the need for PHY_POL_AUTO to be a third state. Signed-off-by: Vladimir Oltean Reviewed-by: Rob Herring (Arm) --- v2->v3: none v1->v2: - logical change: the bindings refer to the described block's I/O signals, not necessarily device pins. This means that a PCS that needs to internall invert a polarity to work around an inverting PMA in order to achieve normal polarity at the pin needs to be described as PHY_POL_INVERT now. - clarify that default values are undefined. - fix a checkpatch issue: duplicated "the the" in rx-polarity description .../bindings/phy/phy-common-props.yaml | 49 +++++++++++++++++++ include/dt-bindings/phy/phy.h | 4 ++ 2 files changed, 53 insertions(+) diff --git a/Documentation/devicetree/bindings/phy/phy-common-props.yaml b/= Documentation/devicetree/bindings/phy/phy-common-props.yaml index 31bf1382262a..b2c709cc1b0d 100644 --- a/Documentation/devicetree/bindings/phy/phy-common-props.yaml +++ b/Documentation/devicetree/bindings/phy/phy-common-props.yaml @@ -94,15 +94,64 @@ properties: property. Required only if multiple voltages are provided. $ref: "#/$defs/protocol-names" =20 + rx-polarity: + description: + An array of values indicating whether the differential receiver's + polarity is inverted. Each value can be one of + PHY_POL_NORMAL (0) which means the negative signal is decoded from t= he + RXN input, and the positive signal from the RXP input; + PHY_POL_INVERT (1) which means the negative signal is decoded from t= he + RXP input, and the positive signal from the RXN input; + PHY_POL_AUTO (2) which means the receiver performs automatic polarity + detection and correction, which is a mandatory part of link training= for + some protocols (PCIe, USB SS). + + The values are defined in . If the property is + absent, the default value is undefined. + + Note that the RXP and RXN inputs refer to the block that this proper= ty is + under, and do not necessarily directly translate to external pins. + + If this property contains multiple values for various protocols, the + 'rx-polarity-names' property must be provided. + $ref: /schemas/types.yaml#/definitions/uint32-array + minItems: 1 + maxItems: 16 + items: + enum: [0, 1, 2] + + rx-polarity-names: + $ref: '#/$defs/protocol-names' + + tx-polarity: + description: + Like 'rx-polarity', except it applies to differential transmitters, + and only the values of PHY_POL_NORMAL and PHY_POL_INVERT are possibl= e. + $ref: /schemas/types.yaml#/definitions/uint32-array + minItems: 1 + maxItems: 16 + items: + enum: [0, 1] + + tx-polarity-names: + $ref: '#/$defs/protocol-names' + dependencies: tx-p2p-microvolt-names: [ tx-p2p-microvolt ] + rx-polarity-names: [ rx-polarity ] + tx-polarity-names: [ tx-polarity ] =20 additionalProperties: true =20 examples: - | + #include + phy: phy { #phy-cells =3D <1>; tx-p2p-microvolt =3D <915000>, <1100000>, <1200000>; tx-p2p-microvolt-names =3D "2500base-x", "usb-hs", "usb-ss"; + rx-polarity =3D , ; + rx-polarity-names =3D "usb-ss", "default"; + tx-polarity =3D ; }; diff --git a/include/dt-bindings/phy/phy.h b/include/dt-bindings/phy/phy.h index 6b901b342348..f8d4094f0880 100644 --- a/include/dt-bindings/phy/phy.h +++ b/include/dt-bindings/phy/phy.h @@ -24,4 +24,8 @@ #define PHY_TYPE_CPHY 11 #define PHY_TYPE_USXGMII 12 =20 +#define PHY_POL_NORMAL 0 +#define PHY_POL_INVERT 1 +#define PHY_POL_AUTO 2 + #endif /* _DT_BINDINGS_PHY */ --=20 2.43.0 From nobody Sun Feb 8 14:59:30 2026 Received: from DUZPR83CU001.outbound.protection.outlook.com (mail-northeuropeazon11012057.outbound.protection.outlook.com [52.101.66.57]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5BFBD330D36; Sun, 11 Jan 2026 09:41:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.66.57 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768124486; cv=fail; b=KWy+8/IkT7/jBV0glykx/jGX/38fbJpq5V3VAhPZ8q6UNbgUOdiSmhOyPccIzHpL+3MuM7w+OpjA1X+gFlkEpl4UFGBkgnk+a0oyIrFPauDOL7Gj5hWYCMjXqa6lqkdQ0w+zTrAX4+dPNGtY/5GTk4uKCC4wMZuamaklLz+Nz4A= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768124486; c=relaxed/simple; bh=qtXOqC26qlqUba+ahmtVMqnOKLVh5DNM0qXuVSkFq9Y=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=PY9C75oQ7pKuDXFzzx83q0R8/JcxqZYaXWq6lmZIAq54uG5Vtkkioddmb/6POauMmdHXgNP0FTkW3+O+kJyAv7WIwSk05RCq6J83G9OcCWgHUbLhI1vU3OnE0PUXmA1XWf8IWF+CV5goOE4JcWs+St4Mass3Hkv7iUswOTLhJQY= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b=MF+CXMm9; arc=fail smtp.client-ip=52.101.66.57 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b="MF+CXMm9" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=N22Mz8gppKtpmz4UoyhncTd4GFW4o6sr4G7+lW1hzwNHda6JOBeWjVvN7WO5Rub8Ns31DVHrSN7s2Xz8TqfhhcqMlgW/8jhAy9EBmat32YavqPK8BYmZN+AwYUYDBxF/i+bC3Vv6qzbWytaawicgxx0Dif0ugnvy0rhKWA16ccGszva8bX/u+UkXIqjey9zVxePp5hchmG1fIQtAaOC5qVwDhnHFLF/sBm6IJO3oiIzuaJVSr3N7iaYuGgybJlZ8VQ6+rwmD5tyyaOC9V+WCJkiQ93VDV/e4NGgcPvNaFv72HtXJgAPH2R0KqZXxn1RXs55JlSwdFpP75b6F3Ybwhg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=9uWcCvNYQmX8OMkeL0mA5UdJQnaa0f+GYAgH39rv+7o=; b=d4u7gJY+wQneqqDiReky/LJpC7aiyAWIg3AxE9oWTyuNaCiVx/w1fFBZGU/mQ3YWO8xR2AUXV883tggYPafi08tBODQyc0vyJ8xiorBY0N3YpvavhAeIhNTb1Bj9Y//LsbgIhlvNWj5FVdW+30FOqcQEu0HaBM7d/g3tew068esvJjoekoHNDh4Ajuhi9inN2cNQt0+3T1/EvqTnxFr++EZI9/QbfkwD1yMOVhzf/8owFRI1jWzVSYpSyRuZe9P2tSOLPMPCQgAB5QDw6tYO/Z7JPJ7uoK5f/czirlreo6S1rBICpa0A8tHyGno7QM6ZRTGsPvf3FPL7XyS+IucTXg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=9uWcCvNYQmX8OMkeL0mA5UdJQnaa0f+GYAgH39rv+7o=; b=MF+CXMm9bsRuPnrWvgGfAiQ8wUZXCiuM0DqVh6T8Ag9ccEq+x5vyiC7+NHC+jWqSoT/74XYcpkvDgVdj2HDNUVsqs73noVmgETVf5NOS4RXh2s0QLYu+Wfko0SqNoOFGE2b+wIGhrOOqW14MN2KCoCFR2J7brghIpX5rF3EbN8yVoo8UB2d0iHEuvPqQQN+KeWHS6QmiK35uhxfx5Qg9ZxdMzWC0M7hmL2XHPAeZvLvZqEhvg/ZzxVPLVVce2Q/bkIr5EwlX1IqyHxP2uyHe4+0yI25lh3ZgEk4c/HtM254GwOeGxQxRIXoXDt2/yh+q+UM0fXKs4HxeYlZ9fTZS8A== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from AM9PR04MB8585.eurprd04.prod.outlook.com (2603:10a6:20b:438::13) by AS8PR04MB7592.eurprd04.prod.outlook.com (2603:10a6:20b:23f::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9499.6; Sun, 11 Jan 2026 09:41:06 +0000 Received: from AM9PR04MB8585.eurprd04.prod.outlook.com ([fe80::f010:fca8:7ef:62f4]) by AM9PR04MB8585.eurprd04.prod.outlook.com ([fe80::f010:fca8:7ef:62f4%4]) with mapi id 15.20.9499.005; Sun, 11 Jan 2026 09:41:06 +0000 From: Vladimir Oltean To: netdev@vger.kernel.org, devicetree@vger.kernel.org, linux-phy@lists.infradead.org Cc: linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org, Daniel Golle , Horatiu Vultur , =?UTF-8?q?Bj=C3=B8rn=20Mork?= , Andrew Lunn , Heiner Kallweit , Russell King , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Vinod Koul , Neil Armstrong , Matthias Brugger , AngeloGioacchino Del Regno , Eric Woudstra , =?UTF-8?q?Marek=20Beh=C3=BAn?= , Lee Jones , Patrice Chotard Subject: [PATCH v3 net-next 05/10] phy: add phy_get_rx_polarity() and phy_get_tx_polarity() Date: Sun, 11 Jan 2026 11:39:34 +0200 Message-ID: <20260111093940.975359-6-vladimir.oltean@nxp.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260111093940.975359-1-vladimir.oltean@nxp.com> References: <20260111093940.975359-1-vladimir.oltean@nxp.com> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: VI1P189CA0004.EURP189.PROD.OUTLOOK.COM (2603:10a6:802:2a::17) To AM9PR04MB8585.eurprd04.prod.outlook.com (2603:10a6:20b:438::13) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM9PR04MB8585:EE_|AS8PR04MB7592:EE_ X-MS-Office365-Filtering-Correlation-Id: c3fde85e-347c-4de5-cacd-08de50f58ad5 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|19092799006|7416014|52116014|1800799024|10070799003|376014; X-Microsoft-Antispam-Message-Info: =?utf-8?B?S0w5NVBQQytHNlZKckZSamE5eW96dmQ0SWEraGxZQ2s2UWEvZkxjU0p1aUV1?= =?utf-8?B?Zkd2Rnd1bmMwc285YW95bC94VCtxMTdFTzdSWWlLSjBhZ0U0MDhzcnlQZVQw?= =?utf-8?B?OTVKQTg4WTFHVWkvRFFCdDFPSGZ3UzFJcmNIdy9DQ3BEckM0NU4zbUFZUFA4?= =?utf-8?B?WkxPSkFpcGU4dEY1dGZoR1NkTS8vTFMrclVwWFd6U25XeFJiVVJkOWNkZTBK?= =?utf-8?B?VWxpc2lEUFBQOXlONUZZTXJCdng5cnlJTDkvaGp4b2xrYmNJZTBhcEZBSTN6?= =?utf-8?B?Z1hXK1g4dlBDcldwM25FVkxCUUJTdU8yUkxTTHkrck9xRmsyNEYzaGU5Ylg1?= =?utf-8?B?WVB6Qk9OQXRQMXdvellFUW9XT2pVUStZeTZwMk1Wc0RRN2pzZERuaGVyRzhk?= =?utf-8?B?ZHVEMU44WjMrMTZITDZzeWM5VFFacWt1bnpUZHc5VWJqTUlmU3pRNmxQajJY?= =?utf-8?B?aURCcTRnYWMrRHcrVzU1dGRTdTF0ZE94dWRLVFA4eEkvWFpEZ2tCNHRFcGpz?= =?utf-8?B?Vm9LY0hkcmUvZGMrMS80L05aYWJ0cEx6dlk5SE0ycFlpMVFGWEZ3VVBiVUJn?= =?utf-8?B?VlhwUE93bGs0SVJ0dWk2MkZoZnlaYjhUWXBqMmNwVHEwUjNIWjVVOUROdWR3?= =?utf-8?B?VXQyRlhPdjBHSGpVb3grT2U1QVQrUURENnpCWkRMbFBOVkVWKzU3Mk04MTFy?= =?utf-8?B?YVQ1Qm1rMkpBWFlXS1lFQWxyYURpWmFKcDBtVVJiYU0zcHpZdUZlSUgvUDJk?= =?utf-8?B?L2NiWDNSc0RtVG9zN2tpS3FUeEtaVXcxSmNiWHBuM2hxbi91cVN5K3ZRaElu?= =?utf-8?B?b3VKUEZQSEd5YjVvOCtOdUtjS1prSVM0Ris4dnpzMC8vNVBhUk1XTjBIbkQr?= =?utf-8?B?TDM4WUhyNVREUno3UUVNMGRoSVVadHlKdmUxVWdFT1kzK2JYMi9tMlk0Vnly?= =?utf-8?B?Y3psajAzQTArTmZEOGs1c2pnUFVWQUpQRGJvcjBPRjdsM0drcjBOT3BtbG5O?= =?utf-8?B?TXZGcVVnOHNJdGFiNWw3ZWQ3L1dGTDVLZ0ZodTNpcVM2MXdOQlI5WVJxUVRm?= =?utf-8?B?eEF3MUNLOVo2KzVBUTVabUhNc05oN2RiMmFWc1B3cXNLQS90c2E3YW9PZHRW?= =?utf-8?B?K1FnM2RVZDJ4K1BxcTY2VGxwSmRxS25WQkdDdDNYTFVnaElvbXdDd2c3U1RT?= =?utf-8?B?M05wcnJManhOdGlKT1NHaUJTUEFEU0FCUzlFNjU2RFNsS01ZL280RUIxNUFZ?= =?utf-8?B?ZFhJZ1NjMDR3bW9JdnhaejBrMndCL3MrVWxENkJVeFdNWkVYN0dFekpHbUdh?= =?utf-8?B?RlQ2YkI4UTRIWVJmOW05dDRmUlZmWlk4REJ4a0dCeWdTOUhsbTBTbTBHT24z?= =?utf-8?B?cmRTRStBck5BOXN2Z1R6cHdpT1kyN1BhenJhR0tTQjRGTGY2YVk4amhSczNF?= =?utf-8?B?Z24wby9XckFYY05hTXZLRDF3azRIWElwek5JMzZOVjd3Mjc1bHRDZWxHTjhq?= =?utf-8?B?K2VEb2RBK3ZiTjJLYlYwSjZMUjhZcWhIWU5RTGgvQTdwTGNQa0lYTTErVVFQ?= =?utf-8?B?bFJxVU9oSjVJa3lPS1BiRFZTdG9uaWtmZGlRcGZNYWMzbzFlNk9pWnYvdnRu?= =?utf-8?B?c3U2U2cxOGNOWFdCQllFK0I5Mko0dGNHbDArTCttSkY5bWhvU0lPQ2wzVVYr?= =?utf-8?B?R09vOUlocm9adXRqclQ3dVgxTTZiR1hhUjJ3SGgvL1U3S1hTM2o1eWtEeFo0?= =?utf-8?B?cEZmWWlpYlZpUFQyMU12QWZETTRjVnc3ck1say91anhPTDRPUHpoSnpmSVMz?= =?utf-8?B?dldqZTJsSFEvcEo1T3VybnBzanBOZDZRSzZLYTJHbWRZV0tFNjk5ZEVQSFVo?= =?utf-8?B?TGdYdWlHOUYwaGt1aGlmVzR2YWNUbCtYbkRsQmtiOHBuRWN1NXhmWlBacy9U?= =?utf-8?B?Y2VyM2ttak9BNjVvNmJaRkREMjJlV2FJQ040ODloWkxVUUNTNzh3dGF0STY3?= =?utf-8?B?TnZRaXBaRm1nPT0=?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM9PR04MB8585.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(19092799006)(7416014)(52116014)(1800799024)(10070799003)(376014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?bklCak13T0J0aVQwZU5xdGV1cU9hNjRQdExDRkNGWUhjSFZUTkIvVWgzUlJ0?= =?utf-8?B?WG9TaTkyb0M3VFlzSmZOZ2FBa1RjU2hjS2p3ZWVzMGNYc1pGY0NsazVqSFY3?= =?utf-8?B?WnkzWWIwRGZnRjI3OVowQXpzbW4zY3lOdzZLeldFRE1kNW1nTzcyVnd4RjNI?= =?utf-8?B?NWdpYTVrMnQxVFl0dlVJdTMyMk9vWVRPaXQwMXFjM3lmRWRYbFJRS3RKZldE?= =?utf-8?B?U3J1NFEwSitScmJQMk45Nm1OalZkUDdaejJvV1BtZ0ZHeFpuZklUUFE3UFRj?= =?utf-8?B?SGk3cUNJY0x1N012dVF4ZURKa1VOOVJjV2F6bTBhcmw2eCtHaTVXeVdwWlVY?= =?utf-8?B?TlBvL1hCMng3bVM1N0Z0c2U5WUFPWjBZR2Nnd1RsaE1CVC9sMkRYeHkzWVUx?= =?utf-8?B?dFBDU2c0WE9zVzEvM0RSUXU2dlNkSEE4ZVJNVDJiTDVRR29NYVhNcnprdVVO?= =?utf-8?B?eS9heDZxcWlGbW1BZms4WW5paDdIU3NmMSs3WCtCRXAzYWprR0VWZXErdFNj?= =?utf-8?B?YTd5Z0pxVWdMVHFBMEVIVFNnUkFmL3BVL0VHYmVMaDlEeThqL011d1dPTDh0?= =?utf-8?B?QXp4eExyOUFaQUlXcERFV1dVR3pWK3B4Q2JVV2NVS3Nmd3lvNTMxTWMvY20w?= =?utf-8?B?QmhvMFIzNFZuZ3YxTDVKaWpNT0hpQjhkSkcrRnFCTmloQ1RUWEJ5cTllclJH?= =?utf-8?B?cUgwb0hhZnI4ZFFTUTM1ZHpFZmVibGRiQkxFS1lOSitFMy96OUtYMDdGM2dG?= =?utf-8?B?ZE9qbEEvRzZXRVFjQWlUQXM5QmRyZ2diL211Z2pEUUpzMnhvb1ExaEpvSGU1?= =?utf-8?B?YWZueS9uL25hRCtzWFFRT2VVODRma3FoZ1pFZGVmMGpSSVpHdzNja09HbEI3?= =?utf-8?B?SmNKcWRmcmtsKzkzVkZLeGcyeEllR010ZVlQbk80SnVmZVpkNVdzR3htNVZr?= =?utf-8?B?SnJIbzI1V0tzeGVhNmhaaVJrUFRPZUx0cyt1Q0tyYzVReUtlN2tmcm1jMzFN?= =?utf-8?B?WDc1ODl2QzEwbUtCNHREUEE5Sk5HL0RHR0FYdUN4Vm51S0VLVHVIVkhpWXBt?= =?utf-8?B?NXg3aUlYSHdaOTBKZXhmSVBxZnZaWDYvTXBMSVhMcXB2aUVsQW91TjNVcXNY?= =?utf-8?B?WFBiVDNpK1IwSmhNRm81UkdNT0tBNHE5VVpXMDFpOTU3a28yczZ1VDg0Qk5G?= =?utf-8?B?K0xlRUJBRndJYjJua0ZMdHVROWhVaktDWnFxVGYvSHRxZkhkMkEzV3RSZm41?= =?utf-8?B?WkpXSmgyR3RwbDY1NkovWTlvcTMzVjIrdkprS3paaSt0b0dMNDMxdzl5V3dy?= =?utf-8?B?eHlWRDJDTVBFN3ZMOXVaM3ZBUWxTOGhkOXZHS3poZlN4eUJPZGNobmllTi82?= =?utf-8?B?Y0prL3lHNkNpYWx0c3BLVytCUHMybnUxOFdqZ05jWXo1Y0Ezcm9DSnJBSWpj?= =?utf-8?B?RWh5SGV5RXkvcVdrZUxyQXdkZXFaZzU2T253V1RmRi9JczF5T1VVZElyQms3?= =?utf-8?B?aU5uZXdYaHdMZTRKWGZEWThtZHh0MWozRmdYdThSNkJ2bnNqbWYzMzF2QWJy?= =?utf-8?B?K0ZYU2lvaDZQeFhMY3BrM2FLdDRkWVQzSktLajNzaDRqRXQrcG1qanZlV0lI?= =?utf-8?B?V1JxaytySmJ0UEpGcXlURG5McTVnMHMxSytQRnljZ3V3OEdOVE9kUTkrd3Fr?= =?utf-8?B?NEZ5TFhDM0pSbWthbEl6eDZndTU3cmYxcHp1OUJHMVByZm5hc1hib0J0eXFn?= =?utf-8?B?QSswaVY0VzMrMHA4V3ZGRG9GOWV6TllOTHJCTzV0WDBFODdqYS9mU1ZHUXBH?= =?utf-8?B?RVIwYm4xbktUbVM3alVENWMySTdDRTZIMFFjOU5NRER5bzFleGtaSDNpbWZL?= =?utf-8?B?Vlcrd2tSUDlWVytsRisvcGJ5NTd2VnpSVk9EUWVONTR5czhEK3RMNWVGVEh6?= =?utf-8?B?QmliSlY2a2dyclk0VTRaSjBSV0Zud3gyZmhpK2pZQWRhcWpKcUhnTGpKVE9R?= =?utf-8?B?QUJ0UjQ2MktpMnZkODg2Ny9nUGhzemdMYUpycmtiS1pmS0RIQjMxVXU0elZj?= =?utf-8?B?VFF2Z1RFM200by9jenhCSEtwOW1hanBmQ29DU0FjdEE2eVJQaE1DcTZPYUp3?= =?utf-8?B?d0Flait5S1NoVTBPU3ZCdkhkbUV1NnpYeTh0RU42eVJGbTYyQzU4bG9iTDZz?= =?utf-8?B?VGdMaGFYUjRHd3B5ZHl5L25OTE1WbjNYMklQbEljM3c1RmlaVnEwTkQ1UVRi?= =?utf-8?B?a0lML0g4T2V4U3ZBVlFocERlUDNTbm5nZVdPK0RQTmZldEZuaG9mcWJkTGhj?= =?utf-8?B?RHF5cmg3eGl1Umh2cW9LQjlxVmlXaWE2MkFpRzNXeXFhSDFFR0JtSkpjTlU0?= =?utf-8?Q?m+NN28gNAXlUNQ+OssFXRP8VDIpMeUJfQTNoX/F/HUyoP?= X-MS-Exchange-AntiSpam-MessageData-1: x+vO6QwUBLWRYnUoSZgbHlSqvTyaRWGrnGg= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: c3fde85e-347c-4de5-cacd-08de50f58ad5 X-MS-Exchange-CrossTenant-AuthSource: AM9PR04MB8585.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Jan 2026 09:41:06.2134 (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: 05KX4wbxkScP0WZK6cseFXgN7Gm8uFz9p5ekm6uhamfO7TSno6blqAwTuE8/LVoG+JYtBVLtDRlOfpWG6PMMwA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR04MB7592 Add helpers in the generic PHY folder which can be used using 'select GENERIC_PHY_COMMON_PROPS' from Kconfig, without otherwise needing to enable GENERIC_PHY. These helpers need to deal with the slight messiness of the fact that the polarity properties are arrays per protocol, and with the fact that there is no default value mandated by the standard properties, all default values depend on driver and protocol (PHY_POL_NORMAL may be a good default for SGMII, whereas PHY_POL_AUTO may be a good default for PCIe). Push the supported mask of polarities to these helpers, to simplify drivers such that they don't need to validate what's in the device tree (or other firmware description). Add a KUnit test suite to make sure that the API produces the expected results. The fact that we use fwnode structures means we can validate with software nodes, and as opposed to the device_property API, we can bypass the need to have a device structure. Co-developed-by: Bj=C3=B8rn Mork Signed-off-by: Bj=C3=B8rn Mork Signed-off-by: Vladimir Oltean --- Note that on 32-bit systems I am expecting a sparse warning: drivers/phy/phy-common-props-test.c:420:1: error: bad constant expression drivers/phy/phy-common-props-test.c:421:1: error: bad constant expression drivers/phy/phy-common-props-test.c:422:1: error: bad constant expression caused by: https://lore.kernel.org/lkml/20251008033844.work.801-kees@kernel.org/ AFAIU this is pending a fix in sparse 0.6.5, not available yet. v2->v3: - rename GENERIC_PHY_COMMON_PROPS to just PHY_COMMON_PROPS (more representative). - fix case where querying PHY polarity returned error for fwnode with missing property, rather than default value, as reported by Bjorn Mork. - add tests for the above condition - add credits to Bjorn Mork for signaling the above. v1->v2: - add KUnit test suite - replace joint maintainership model with linux-phy being the only tree. - split the combined return code (if negative, error, if positive, valid return value) into a single "error or zero" return code and an unsigned int pointer argument to the returned polarity - add __must_check to ensure that callers are forced to test for errors - add a reusable fwnode_get_u32_prop_for_name() helper for further property parsing - remove support for looking up polarity of a NULL PHY mode - introduce phy_get_manual_rx_polarity() and phy_get_manual_tx_polarity() helpers to reduce boilerplate in simple drivers - bug fix: a polarity defined as a single value rather than an array was not validated against the supported mask - bug fix: the default polarity was not validated against the supported mask - bug fix: wrong error message if the polarity value is unsupported MAINTAINERS | 10 + drivers/phy/Kconfig | 22 ++ drivers/phy/Makefile | 2 + drivers/phy/phy-common-props-test.c | 422 +++++++++++++++++++++++++++ drivers/phy/phy-common-props.c | 209 +++++++++++++ include/linux/phy/phy-common-props.h | 32 ++ 6 files changed, 697 insertions(+) create mode 100644 drivers/phy/phy-common-props-test.c create mode 100644 drivers/phy/phy-common-props.c create mode 100644 include/linux/phy/phy-common-props.h diff --git a/MAINTAINERS b/MAINTAINERS index 6737aad729d6..aa82c3f6a89f 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -20519,6 +20519,16 @@ L: linux-mtd@lists.infradead.org S: Maintained F: drivers/mtd/devices/phram.c =20 +PHY COMMON PROPERTIES +M: Vladimir Oltean +L: netdev@vger.kernel.org +S: Maintained +Q: https://patchwork.kernel.org/project/netdevbpf/list/ +F: Documentation/devicetree/bindings/phy/phy-common-props.yaml +F: drivers/phy/phy-common-props-test.c +F: drivers/phy/phy-common-props.c +F: include/linux/phy/phy-common-props.h + PICOLCD HID DRIVER M: Bruno Pr=C3=A9mont L: linux-input@vger.kernel.org diff --git a/drivers/phy/Kconfig b/drivers/phy/Kconfig index 678dd0452f0a..62153a3924b9 100644 --- a/drivers/phy/Kconfig +++ b/drivers/phy/Kconfig @@ -5,6 +5,28 @@ =20 menu "PHY Subsystem" =20 +config PHY_COMMON_PROPS + bool + help + This parses properties common between generic PHYs and Ethernet PHYs. + + Select this from consumer drivers to gain access to helpers for + parsing properties from the + Documentation/devicetree/bindings/phy/phy-common-props.yaml schema. + +config PHY_COMMON_PROPS_TEST + tristate "KUnit tests for PHY common props" if !KUNIT_ALL_TESTS + select PHY_COMMON_PROPS + depends on KUNIT + default KUNIT_ALL_TESTS + help + This builds KUnit tests for the PHY common property API. + + For more information on KUnit and unit tests in general, + please refer to the KUnit documentation in Documentation/dev-tools/kuni= t/. + + When in doubt, say N. + config GENERIC_PHY bool "PHY Core" help diff --git a/drivers/phy/Makefile b/drivers/phy/Makefile index bfb27fb5a494..30b150d68de7 100644 --- a/drivers/phy/Makefile +++ b/drivers/phy/Makefile @@ -3,6 +3,8 @@ # Makefile for the phy drivers. # =20 +obj-$(CONFIG_PHY_COMMON_PROPS) +=3D phy-common-props.o +obj-$(CONFIG_PHY_COMMON_PROPS_TEST) +=3D phy-common-props-test.o obj-$(CONFIG_GENERIC_PHY) +=3D phy-core.o obj-$(CONFIG_GENERIC_PHY_MIPI_DPHY) +=3D phy-core-mipi-dphy.o obj-$(CONFIG_PHY_CAN_TRANSCEIVER) +=3D phy-can-transceiver.o diff --git a/drivers/phy/phy-common-props-test.c b/drivers/phy/phy-common-p= rops-test.c new file mode 100644 index 000000000000..e937ec8a4126 --- /dev/null +++ b/drivers/phy/phy-common-props-test.c @@ -0,0 +1,422 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * phy-common-props-test.c -- Unit tests for PHY common properties API + * + * Copyright 2025-2026 NXP + */ +#include +#include +#include +#include + +/* Test: rx-polarity property is missing */ +static void phy_test_rx_polarity_is_missing(struct kunit *test) +{ + static const struct property_entry entries[] =3D { + {} + }; + struct fwnode_handle *node; + unsigned int val; + int ret; + + node =3D fwnode_create_software_node(entries, NULL); + KUNIT_ASSERT_NOT_ERR_OR_NULL(test, node); + + ret =3D phy_get_manual_rx_polarity(node, "sgmii", &val); + KUNIT_EXPECT_EQ(test, ret, 0); + KUNIT_EXPECT_EQ(test, val, PHY_POL_NORMAL); + + fwnode_remove_software_node(node); +} + +/* Test: rx-polarity has more values than rx-polarity-names */ +static void phy_test_rx_polarity_more_values_than_names(struct kunit *test) +{ + static const u32 rx_pol[] =3D { PHY_POL_NORMAL, PHY_POL_INVERT, PHY_POL_N= ORMAL }; + static const char * const rx_pol_names[] =3D { "sgmii", "2500base-x" }; + static const struct property_entry entries[] =3D { + PROPERTY_ENTRY_U32_ARRAY("rx-polarity", rx_pol), + PROPERTY_ENTRY_STRING_ARRAY("rx-polarity-names", rx_pol_names), + {} + }; + struct fwnode_handle *node; + unsigned int val; + int ret; + + node =3D fwnode_create_software_node(entries, NULL); + KUNIT_ASSERT_NOT_ERR_OR_NULL(test, node); + + ret =3D phy_get_manual_rx_polarity(node, "sgmii", &val); + KUNIT_EXPECT_EQ(test, ret, -EINVAL); + + fwnode_remove_software_node(node); +} + +/* Test: rx-polarity has 1 value and rx-polarity-names does not exist */ +static void phy_test_rx_polarity_single_value_no_names(struct kunit *test) +{ + static const u32 rx_pol[] =3D { PHY_POL_INVERT }; + static const struct property_entry entries[] =3D { + PROPERTY_ENTRY_U32_ARRAY("rx-polarity", rx_pol), + {} + }; + struct fwnode_handle *node; + unsigned int val; + int ret; + + node =3D fwnode_create_software_node(entries, NULL); + KUNIT_ASSERT_NOT_ERR_OR_NULL(test, node); + + ret =3D phy_get_manual_rx_polarity(node, "sgmii", &val); + KUNIT_EXPECT_EQ(test, ret, 0); + KUNIT_EXPECT_EQ(test, val, PHY_POL_INVERT); + + fwnode_remove_software_node(node); +} + +/* Test: rx-polarity-names has more values than rx-polarity */ +static void phy_test_rx_polarity_more_names_than_values(struct kunit *test) +{ + static const u32 rx_pol[] =3D { PHY_POL_NORMAL, PHY_POL_INVERT }; + static const char * const rx_pol_names[] =3D { "sgmii", "2500base-x", "10= 00base-x" }; + static const struct property_entry entries[] =3D { + PROPERTY_ENTRY_U32_ARRAY("rx-polarity", rx_pol), + PROPERTY_ENTRY_STRING_ARRAY("rx-polarity-names", rx_pol_names), + {} + }; + struct fwnode_handle *node; + unsigned int val; + int ret; + + node =3D fwnode_create_software_node(entries, NULL); + KUNIT_ASSERT_NOT_ERR_OR_NULL(test, node); + + ret =3D phy_get_manual_rx_polarity(node, "sgmii", &val); + KUNIT_EXPECT_EQ(test, ret, -EINVAL); + + fwnode_remove_software_node(node); +} + +/* Test: rx-polarity and rx-polarity-names have same length, find the name= */ +static void phy_test_rx_polarity_find_by_name(struct kunit *test) +{ + static const u32 rx_pol[] =3D { PHY_POL_NORMAL, PHY_POL_INVERT, PHY_POL_A= UTO }; + static const char * const rx_pol_names[] =3D { "sgmii", "2500base-x", "us= b-ss" }; + static const struct property_entry entries[] =3D { + PROPERTY_ENTRY_U32_ARRAY("rx-polarity", rx_pol), + PROPERTY_ENTRY_STRING_ARRAY("rx-polarity-names", rx_pol_names), + {} + }; + struct fwnode_handle *node; + unsigned int val; + int ret; + + node =3D fwnode_create_software_node(entries, NULL); + KUNIT_ASSERT_NOT_ERR_OR_NULL(test, node); + + ret =3D phy_get_manual_rx_polarity(node, "sgmii", &val); + KUNIT_EXPECT_EQ(test, ret, 0); + KUNIT_EXPECT_EQ(test, val, PHY_POL_NORMAL); + + ret =3D phy_get_manual_rx_polarity(node, "2500base-x", &val); + KUNIT_EXPECT_EQ(test, ret, 0); + KUNIT_EXPECT_EQ(test, val, PHY_POL_INVERT); + + ret =3D phy_get_rx_polarity(node, "usb-ss", BIT(PHY_POL_AUTO), + PHY_POL_AUTO, &val); + KUNIT_EXPECT_EQ(test, ret, 0); + KUNIT_EXPECT_EQ(test, val, PHY_POL_AUTO); + + fwnode_remove_software_node(node); +} + +/* Test: same length, name not found, no "default" - error */ +static void phy_test_rx_polarity_name_not_found_no_default(struct kunit *t= est) +{ + static const u32 rx_pol[] =3D { PHY_POL_NORMAL, PHY_POL_INVERT }; + static const char * const rx_pol_names[] =3D { "2500base-x", "1000base-x"= }; + static const struct property_entry entries[] =3D { + PROPERTY_ENTRY_U32_ARRAY("rx-polarity", rx_pol), + PROPERTY_ENTRY_STRING_ARRAY("rx-polarity-names", rx_pol_names), + {} + }; + struct fwnode_handle *node; + unsigned int val; + int ret; + + node =3D fwnode_create_software_node(entries, NULL); + KUNIT_ASSERT_NOT_ERR_OR_NULL(test, node); + + ret =3D phy_get_manual_rx_polarity(node, "sgmii", &val); + KUNIT_EXPECT_EQ(test, ret, -EINVAL); + + fwnode_remove_software_node(node); +} + +/* Test: same length, name not found, but "default" exists */ +static void phy_test_rx_polarity_name_not_found_with_default(struct kunit = *test) +{ + static const u32 rx_pol[] =3D { PHY_POL_NORMAL, PHY_POL_INVERT }; + static const char * const rx_pol_names[] =3D { "2500base-x", "default" }; + static const struct property_entry entries[] =3D { + PROPERTY_ENTRY_U32_ARRAY("rx-polarity", rx_pol), + PROPERTY_ENTRY_STRING_ARRAY("rx-polarity-names", rx_pol_names), + {} + }; + struct fwnode_handle *node; + unsigned int val; + int ret; + + node =3D fwnode_create_software_node(entries, NULL); + KUNIT_ASSERT_NOT_ERR_OR_NULL(test, node); + + ret =3D phy_get_manual_rx_polarity(node, "sgmii", &val); + KUNIT_EXPECT_EQ(test, ret, 0); + KUNIT_EXPECT_EQ(test, val, PHY_POL_INVERT); + + fwnode_remove_software_node(node); +} + +/* Test: polarity found but value is unsupported */ +static void phy_test_rx_polarity_unsupported_value(struct kunit *test) +{ + static const u32 rx_pol[] =3D { PHY_POL_AUTO }; + static const char * const rx_pol_names[] =3D { "sgmii" }; + static const struct property_entry entries[] =3D { + PROPERTY_ENTRY_U32_ARRAY("rx-polarity", rx_pol), + PROPERTY_ENTRY_STRING_ARRAY("rx-polarity-names", rx_pol_names), + {} + }; + struct fwnode_handle *node; + unsigned int val; + int ret; + + node =3D fwnode_create_software_node(entries, NULL); + KUNIT_ASSERT_NOT_ERR_OR_NULL(test, node); + + ret =3D phy_get_manual_rx_polarity(node, "sgmii", &val); + KUNIT_EXPECT_EQ(test, ret, -EOPNOTSUPP); + + fwnode_remove_software_node(node); +} + +/* Test: tx-polarity property is missing */ +static void phy_test_tx_polarity_is_missing(struct kunit *test) +{ + static const struct property_entry entries[] =3D { + {} + }; + struct fwnode_handle *node; + unsigned int val; + int ret; + + node =3D fwnode_create_software_node(entries, NULL); + KUNIT_ASSERT_NOT_ERR_OR_NULL(test, node); + + ret =3D phy_get_manual_tx_polarity(node, "sgmii", &val); + KUNIT_EXPECT_EQ(test, ret, 0); + KUNIT_EXPECT_EQ(test, val, PHY_POL_NORMAL); + + fwnode_remove_software_node(node); +} + +/* Test: tx-polarity has more values than tx-polarity-names */ +static void phy_test_tx_polarity_more_values_than_names(struct kunit *test) +{ + static const u32 tx_pol[] =3D { PHY_POL_NORMAL, PHY_POL_INVERT, PHY_POL_N= ORMAL }; + static const char * const tx_pol_names[] =3D { "sgmii", "2500base-x" }; + static const struct property_entry entries[] =3D { + PROPERTY_ENTRY_U32_ARRAY("tx-polarity", tx_pol), + PROPERTY_ENTRY_STRING_ARRAY("tx-polarity-names", tx_pol_names), + {} + }; + struct fwnode_handle *node; + unsigned int val; + int ret; + + node =3D fwnode_create_software_node(entries, NULL); + KUNIT_ASSERT_NOT_ERR_OR_NULL(test, node); + + ret =3D phy_get_manual_tx_polarity(node, "sgmii", &val); + KUNIT_EXPECT_EQ(test, ret, -EINVAL); + + fwnode_remove_software_node(node); +} + +/* Test: tx-polarity has 1 value and tx-polarity-names does not exist */ +static void phy_test_tx_polarity_single_value_no_names(struct kunit *test) +{ + static const u32 tx_pol[] =3D { PHY_POL_INVERT }; + static const struct property_entry entries[] =3D { + PROPERTY_ENTRY_U32_ARRAY("tx-polarity", tx_pol), + {} + }; + struct fwnode_handle *node; + unsigned int val; + int ret; + + node =3D fwnode_create_software_node(entries, NULL); + KUNIT_ASSERT_NOT_ERR_OR_NULL(test, node); + + ret =3D phy_get_manual_tx_polarity(node, "sgmii", &val); + KUNIT_EXPECT_EQ(test, ret, 0); + KUNIT_EXPECT_EQ(test, val, PHY_POL_INVERT); + + fwnode_remove_software_node(node); +} + +/* Test: tx-polarity-names has more values than tx-polarity */ +static void phy_test_tx_polarity_more_names_than_values(struct kunit *test) +{ + static const u32 tx_pol[] =3D { PHY_POL_NORMAL, PHY_POL_INVERT }; + static const char * const tx_pol_names[] =3D { "sgmii", "2500base-x", "10= 00base-x" }; + static const struct property_entry entries[] =3D { + PROPERTY_ENTRY_U32_ARRAY("tx-polarity", tx_pol), + PROPERTY_ENTRY_STRING_ARRAY("tx-polarity-names", tx_pol_names), + {} + }; + struct fwnode_handle *node; + unsigned int val; + int ret; + + node =3D fwnode_create_software_node(entries, NULL); + KUNIT_ASSERT_NOT_ERR_OR_NULL(test, node); + + ret =3D phy_get_manual_tx_polarity(node, "sgmii", &val); + KUNIT_EXPECT_EQ(test, ret, -EINVAL); + + fwnode_remove_software_node(node); +} + +/* Test: tx-polarity and tx-polarity-names have same length, find the name= */ +static void phy_test_tx_polarity_find_by_name(struct kunit *test) +{ + static const u32 tx_pol[] =3D { PHY_POL_NORMAL, PHY_POL_INVERT, PHY_POL_N= ORMAL }; + static const char * const tx_pol_names[] =3D { "sgmii", "2500base-x", "10= 00base-x" }; + static const struct property_entry entries[] =3D { + PROPERTY_ENTRY_U32_ARRAY("tx-polarity", tx_pol), + PROPERTY_ENTRY_STRING_ARRAY("tx-polarity-names", tx_pol_names), + {} + }; + struct fwnode_handle *node; + unsigned int val; + int ret; + + node =3D fwnode_create_software_node(entries, NULL); + KUNIT_ASSERT_NOT_ERR_OR_NULL(test, node); + + ret =3D phy_get_manual_tx_polarity(node, "sgmii", &val); + KUNIT_EXPECT_EQ(test, ret, 0); + KUNIT_EXPECT_EQ(test, val, PHY_POL_NORMAL); + + ret =3D phy_get_manual_tx_polarity(node, "2500base-x", &val); + KUNIT_EXPECT_EQ(test, ret, 0); + KUNIT_EXPECT_EQ(test, val, PHY_POL_INVERT); + + ret =3D phy_get_manual_tx_polarity(node, "1000base-x", &val); + KUNIT_EXPECT_EQ(test, ret, 0); + KUNIT_EXPECT_EQ(test, val, PHY_POL_NORMAL); + + fwnode_remove_software_node(node); +} + +/* Test: same length, name not found, no "default" - error */ +static void phy_test_tx_polarity_name_not_found_no_default(struct kunit *t= est) +{ + static const u32 tx_pol[] =3D { PHY_POL_NORMAL, PHY_POL_INVERT }; + static const char * const tx_pol_names[] =3D { "2500base-x", "1000base-x"= }; + static const struct property_entry entries[] =3D { + PROPERTY_ENTRY_U32_ARRAY("tx-polarity", tx_pol), + PROPERTY_ENTRY_STRING_ARRAY("tx-polarity-names", tx_pol_names), + {} + }; + struct fwnode_handle *node; + unsigned int val; + int ret; + + node =3D fwnode_create_software_node(entries, NULL); + KUNIT_ASSERT_NOT_ERR_OR_NULL(test, node); + + ret =3D phy_get_manual_tx_polarity(node, "sgmii", &val); + KUNIT_EXPECT_EQ(test, ret, -EINVAL); + + fwnode_remove_software_node(node); +} + +/* Test: same length, name not found, but "default" exists */ +static void phy_test_tx_polarity_name_not_found_with_default(struct kunit = *test) +{ + static const u32 tx_pol[] =3D { PHY_POL_NORMAL, PHY_POL_INVERT }; + static const char * const tx_pol_names[] =3D { "2500base-x", "default" }; + static const struct property_entry entries[] =3D { + PROPERTY_ENTRY_U32_ARRAY("tx-polarity", tx_pol), + PROPERTY_ENTRY_STRING_ARRAY("tx-polarity-names", tx_pol_names), + {} + }; + struct fwnode_handle *node; + unsigned int val; + int ret; + + node =3D fwnode_create_software_node(entries, NULL); + KUNIT_ASSERT_NOT_ERR_OR_NULL(test, node); + + ret =3D phy_get_manual_tx_polarity(node, "sgmii", &val); + KUNIT_EXPECT_EQ(test, ret, 0); + KUNIT_EXPECT_EQ(test, val, PHY_POL_INVERT); + + fwnode_remove_software_node(node); +} + +/* Test: polarity found but value is unsupported (AUTO for TX) */ +static void phy_test_tx_polarity_unsupported_value(struct kunit *test) +{ + static const u32 tx_pol[] =3D { PHY_POL_AUTO }; + static const char * const tx_pol_names[] =3D { "sgmii" }; + static const struct property_entry entries[] =3D { + PROPERTY_ENTRY_U32_ARRAY("tx-polarity", tx_pol), + PROPERTY_ENTRY_STRING_ARRAY("tx-polarity-names", tx_pol_names), + {} + }; + struct fwnode_handle *node; + unsigned int val; + int ret; + + node =3D fwnode_create_software_node(entries, NULL); + KUNIT_ASSERT_NOT_ERR_OR_NULL(test, node); + + ret =3D phy_get_manual_tx_polarity(node, "sgmii", &val); + KUNIT_EXPECT_EQ(test, ret, -EOPNOTSUPP); + + fwnode_remove_software_node(node); +} + +static struct kunit_case phy_common_props_test_cases[] =3D { + KUNIT_CASE(phy_test_rx_polarity_is_missing), + KUNIT_CASE(phy_test_rx_polarity_more_values_than_names), + KUNIT_CASE(phy_test_rx_polarity_single_value_no_names), + KUNIT_CASE(phy_test_rx_polarity_more_names_than_values), + KUNIT_CASE(phy_test_rx_polarity_find_by_name), + KUNIT_CASE(phy_test_rx_polarity_name_not_found_no_default), + KUNIT_CASE(phy_test_rx_polarity_name_not_found_with_default), + KUNIT_CASE(phy_test_rx_polarity_unsupported_value), + KUNIT_CASE(phy_test_tx_polarity_is_missing), + KUNIT_CASE(phy_test_tx_polarity_more_values_than_names), + KUNIT_CASE(phy_test_tx_polarity_single_value_no_names), + KUNIT_CASE(phy_test_tx_polarity_more_names_than_values), + KUNIT_CASE(phy_test_tx_polarity_find_by_name), + KUNIT_CASE(phy_test_tx_polarity_name_not_found_no_default), + KUNIT_CASE(phy_test_tx_polarity_name_not_found_with_default), + KUNIT_CASE(phy_test_tx_polarity_unsupported_value), + {} +}; + +static struct kunit_suite phy_common_props_test_suite =3D { + .name =3D "phy-common-props", + .test_cases =3D phy_common_props_test_cases, +}; + +kunit_test_suite(phy_common_props_test_suite); + +MODULE_DESCRIPTION("Test module for PHY common properties API"); +MODULE_AUTHOR("Vladimir Oltean "); +MODULE_LICENSE("GPL"); diff --git a/drivers/phy/phy-common-props.c b/drivers/phy/phy-common-props.c new file mode 100644 index 000000000000..3e814bcbea86 --- /dev/null +++ b/drivers/phy/phy-common-props.c @@ -0,0 +1,209 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +/* + * phy-common-props.c -- Common PHY properties + * + * Copyright 2025-2026 NXP + */ +#include +#include +#include +#include +#include +#include + +/** + * fwnode_get_u32_prop_for_name - Find u32 property by name, or default va= lue + * @fwnode: Pointer to firmware node, or NULL to use @default_val + * @name: Property name used as lookup key in @names_title (must not be NU= LL) + * @props_title: Name of u32 array property holding values + * @names_title: Name of string array property holding lookup keys + * @default_val: Default value if @fwnode is NULL or @props_title is empty + * @val: Pointer to store the returned value + * + * This function retrieves a u32 value from @props_title based on a name l= ookup + * in @names_title. The value stored in @val is determined as follows: + * + * - If @fwnode is NULL or @props_title is empty: @default_val is used + * - If @props_title has exactly one element and @names_title is empty: + * that element is used + * - Otherwise: @val is set to the element at the same index where @name is + * found in @names_title. + * - If @name is not found, the function looks for a "default" entry in + * @names_title and uses the corresponding value from @props_title + * + * When both @props_title and @names_title are present, they must have the + * same number of elements (except when @props_title has exactly one eleme= nt). + * + * Return: zero on success, negative error on failure. + */ +static int fwnode_get_u32_prop_for_name(struct fwnode_handle *fwnode, + const char *name, + const char *props_title, + const char *names_title, + unsigned int default_val, + unsigned int *val) +{ + int err, n_props, n_names, idx; + u32 *props; + + if (!name) { + pr_err("Lookup key inside \"%s\" is mandatory\n", names_title); + return -EINVAL; + } + + n_props =3D fwnode_property_count_u32(fwnode, props_title); + if (n_props <=3D 0) { + /* fwnode is NULL, or is missing requested property */ + *val =3D default_val; + return 0; + } + + n_names =3D fwnode_property_string_array_count(fwnode, names_title); + if (n_names >=3D 0 && n_props !=3D n_names) { + pr_err("%pfw mismatch between \"%s\" and \"%s\" property count (%d vs %d= )\n", + fwnode, props_title, names_title, n_props, n_names); + return -EINVAL; + } + + idx =3D fwnode_property_match_string(fwnode, names_title, name); + if (idx < 0) + idx =3D fwnode_property_match_string(fwnode, names_title, "default"); + /* + * If the mode name is missing, it can only mean the specified property + * is the default one for all modes, so reject any other property count + * than 1. + */ + if (idx < 0 && n_props !=3D 1) { + pr_err("%pfw \"%s \" property has %d elements, but cannot find \"%s\" in= \"%s\" and there is no default value\n", + fwnode, props_title, n_props, name, names_title); + return -EINVAL; + } + + if (n_props =3D=3D 1) { + err =3D fwnode_property_read_u32(fwnode, props_title, val); + if (err) + return err; + + return 0; + } + + /* We implicitly know idx >=3D 0 here */ + props =3D kcalloc(n_props, sizeof(*props), GFP_KERNEL); + if (!props) + return -ENOMEM; + + err =3D fwnode_property_read_u32_array(fwnode, props_title, props, n_prop= s); + if (err >=3D 0) + *val =3D props[idx]; + + kfree(props); + + return err; +} + +static int phy_get_polarity_for_mode(struct fwnode_handle *fwnode, + const char *mode_name, + unsigned int supported, + unsigned int default_val, + const char *polarity_prop, + const char *names_prop, + unsigned int *val) +{ + int err; + + err =3D fwnode_get_u32_prop_for_name(fwnode, mode_name, polarity_prop, + names_prop, default_val, val); + if (err) + return err; + + if (!(supported & BIT(*val))) { + pr_err("%d is not a supported value for %pfw '%s' element '%s'\n", + *val, fwnode, polarity_prop, mode_name); + err =3D -EOPNOTSUPP; + } + + return err; +} + +/** + * phy_get_rx_polarity - Get RX polarity for PHY differential lane + * @fwnode: Pointer to the PHY's firmware node. + * @mode_name: The name of the PHY mode to look up. + * @supported: Bit mask of PHY_POL_NORMAL, PHY_POL_INVERT and PHY_POL_AUTO + * @default_val: Default polarity value if property is missing + * @val: Pointer to returned polarity. + * + * Return: zero on success, negative error on failure. + */ +int __must_check phy_get_rx_polarity(struct fwnode_handle *fwnode, + const char *mode_name, + unsigned int supported, + unsigned int default_val, + unsigned int *val) +{ + return phy_get_polarity_for_mode(fwnode, mode_name, supported, + default_val, "rx-polarity", + "rx-polarity-names", val); +} +EXPORT_SYMBOL_GPL(phy_get_rx_polarity); + +/** + * phy_get_tx_polarity - Get TX polarity for PHY differential lane + * @fwnode: Pointer to the PHY's firmware node. + * @mode_name: The name of the PHY mode to look up. + * @supported: Bit mask of PHY_POL_NORMAL and PHY_POL_INVERT + * @default_val: Default polarity value if property is missing + * @val: Pointer to returned polarity. + * + * Return: zero on success, negative error on failure. + */ +int __must_check phy_get_tx_polarity(struct fwnode_handle *fwnode, + const char *mode_name, unsigned int supported, + unsigned int default_val, unsigned int *val) +{ + return phy_get_polarity_for_mode(fwnode, mode_name, supported, + default_val, "tx-polarity", + "tx-polarity-names", val); +} +EXPORT_SYMBOL_GPL(phy_get_tx_polarity); + +/** + * phy_get_manual_rx_polarity - Get manual RX polarity for PHY differentia= l lane + * @fwnode: Pointer to the PHY's firmware node. + * @mode_name: The name of the PHY mode to look up. + * @val: Pointer to returned polarity. + * + * Helper for PHYs which do not support protocols with automatic RX polari= ty + * detection and correction. + * + * Return: zero on success, negative error on failure. + */ +int __must_check phy_get_manual_rx_polarity(struct fwnode_handle *fwnode, + const char *mode_name, + unsigned int *val) +{ + return phy_get_rx_polarity(fwnode, mode_name, + BIT(PHY_POL_NORMAL) | BIT(PHY_POL_INVERT), + PHY_POL_NORMAL, val); +} +EXPORT_SYMBOL_GPL(phy_get_manual_rx_polarity); + +/** + * phy_get_manual_tx_polarity - Get manual TX polarity for PHY differentia= l lane + * @fwnode: Pointer to the PHY's firmware node. + * @mode_name: The name of the PHY mode to look up. + * @val: Pointer to returned polarity. + * + * Helper for PHYs without any custom default value for the TX polarity. + * + * Return: zero on success, negative error on failure. + */ +int __must_check phy_get_manual_tx_polarity(struct fwnode_handle *fwnode, + const char *mode_name, + unsigned int *val) +{ + return phy_get_tx_polarity(fwnode, mode_name, + BIT(PHY_POL_NORMAL) | BIT(PHY_POL_INVERT), + PHY_POL_NORMAL, val); +} +EXPORT_SYMBOL_GPL(phy_get_manual_tx_polarity); diff --git a/include/linux/phy/phy-common-props.h b/include/linux/phy/phy-c= ommon-props.h new file mode 100644 index 000000000000..680e13de4558 --- /dev/null +++ b/include/linux/phy/phy-common-props.h @@ -0,0 +1,32 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ +/* + * phy-common-props.h -- Common properties for generic PHYs + * + * Copyright 2025 NXP + */ + +#ifndef __PHY_COMMON_PROPS_H +#define __PHY_COMMON_PROPS_H + +#include + +struct fwnode_handle; + +int __must_check phy_get_rx_polarity(struct fwnode_handle *fwnode, + const char *mode_name, + unsigned int supported, + unsigned int default_val, + unsigned int *val); +int __must_check phy_get_tx_polarity(struct fwnode_handle *fwnode, + const char *mode_name, + unsigned int supported, + unsigned int default_val, + unsigned int *val); +int __must_check phy_get_manual_rx_polarity(struct fwnode_handle *fwnode, + const char *mode_name, + unsigned int *val); +int __must_check phy_get_manual_tx_polarity(struct fwnode_handle *fwnode, + const char *mode_name, + unsigned int *val); + +#endif /* __PHY_COMMON_PROPS_H */ --=20 2.43.0 From nobody Sun Feb 8 14:59:30 2026 Received: from GVXPR05CU001.outbound.protection.outlook.com (mail-swedencentralazon11013048.outbound.protection.outlook.com [52.101.83.48]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id AC4EC322B7C; Sun, 11 Jan 2026 09:41:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.83.48 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768124489; cv=fail; b=p6EyXLeTmglTkgKZOln/Yb22VpWhw9tO6zcuopuDENzyHsgkw9LCevUwAL+oZdrXl1N2DFmlwXKrYItmaR5LuM0O3MgqgLFvcOiqqDgfeeH7gOuLRsHESgqJnA+1kJukQRQE/2LHqBCN4FuHYLCIA/FuASOelNxYWjv5xbZsBgY= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768124489; c=relaxed/simple; bh=WqA4zNLUeL8T6Hv0tDzaamDLNKwVKaBL0Lc/aUxTEpg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=uV1sqnzpmnjInc97nwVJBmhcst10cc6yjwujRrVFgvCzjrR17zVSqxIdtS0IN3l+vtHD3Buw1gWNLIvIy5FI7lOqcHRRe5pO/LiKX9cC1ZGW+lJdWCCbLjDL++BBFI757a87PDkFY4fVZNKpDiN6lwPPTacpjJaR3LijmGQzE6Q= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b=gn+uqhNm; arc=fail smtp.client-ip=52.101.83.48 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b="gn+uqhNm" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=K2Ghqm42Qpr89oiRmLMm6a+l2u0zYYfBmJc9A+cqJ9UkiRpM26Luy5/fLpig/c5HM18lsASL+s9EJ00abobthHI5vh69PWDNIMPCpG8sJMLzm/yaAwl/ZkhER3lLVj81tfxecCdv9S1ayjYQruWavELy2+PXEwgQe93f5s4ud6IHy6k1Vsj2p+FSIOrf1WPh3oH7Et+E7Vozpgn+MkKd/gISq33G6MczK5V3RWjmVYiJiRGJuG3D085hKHM9y0qZ+45G6KWNqMLCSLA1iS+p5VjIaTRBbrOthzx29wIH8QrMcXeQOGBtltj6RVqxannHCuyHVksOT8ItjcWXzzbCQg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=bT/yD4vMfhWWxL7AtzGCbx0DIFOEd4tZwwsztubyGDk=; b=yCyum5XCRIIphwzb5MIMDug6+fFGlIacpSAowc9LGhPxiYTJTcDsf48DZSrkrob8xjYGM9f3Argm8adAeqFpeHSv2DNw8AjCaW8i3b1VnqZ4T0FVK7hlmaZhSC40bRSOpHZFcxyBAoaq5slcVJVhLDK9wu+ZPn4UWGbVcxEPoReBEfe7UU4IFeyqD+cATieZthhOQ2ppPBnESQJWa0YDnHzYhD4cyMr/SYXohfyvIzydW/A7lVSbxQ73uKIvAMlKLJMYeigZfGChbGOkOO8S+J2Qv8cE7MKYUIfjbLAyRvb/Y5hmsI3mqwUIZ2CtkwzgVuDk6Gq/+EQSY1zWnFxyZw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=bT/yD4vMfhWWxL7AtzGCbx0DIFOEd4tZwwsztubyGDk=; b=gn+uqhNmsADAhBuY+6Qjluj3ux9RGgtmO706PSm/JDa30UaYCIlFMuewtO/8ghGFTuXcMH7u7iNRsK8IbZ9p6clMur482IDj1SZTNFTsJIE6/4d4oFEtktiDP4nu7HoUcmu2KQjlsj/smj1e3TDsaanx5a2yv8K+uR4j70NZhDUoOYwawBjDw+dp2aflBJrLaYl42dXVLV2ZuL9JCt6Pws8BvSJPouM2JhMnT3YqSLtSiB0ddLsguJwHWbffPyjZp4m6n2xcFzpubShJP/8N3K6+8aVQj/5phOeo+z/5iUOvaoBTzgrhgp6hgTLPs/Ky4zU6NFVlqAPGsMbePpYzhw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from AM9PR04MB8585.eurprd04.prod.outlook.com (2603:10a6:20b:438::13) by AS8PR04MB7592.eurprd04.prod.outlook.com (2603:10a6:20b:23f::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9499.6; Sun, 11 Jan 2026 09:41:08 +0000 Received: from AM9PR04MB8585.eurprd04.prod.outlook.com ([fe80::f010:fca8:7ef:62f4]) by AM9PR04MB8585.eurprd04.prod.outlook.com ([fe80::f010:fca8:7ef:62f4%4]) with mapi id 15.20.9499.005; Sun, 11 Jan 2026 09:41:08 +0000 From: Vladimir Oltean To: netdev@vger.kernel.org, devicetree@vger.kernel.org, linux-phy@lists.infradead.org Cc: linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org, Daniel Golle , Horatiu Vultur , =?UTF-8?q?Bj=C3=B8rn=20Mork?= , Andrew Lunn , Heiner Kallweit , Russell King , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Vinod Koul , Neil Armstrong , Matthias Brugger , AngeloGioacchino Del Regno , Eric Woudstra , =?UTF-8?q?Marek=20Beh=C3=BAn?= , Lee Jones , Patrice Chotard Subject: [PATCH v3 net-next 06/10] dt-bindings: net: airoha,en8811h: deprecate "airoha,pnswap-rx" and "airoha,pnswap-tx" Date: Sun, 11 Jan 2026 11:39:35 +0200 Message-ID: <20260111093940.975359-7-vladimir.oltean@nxp.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260111093940.975359-1-vladimir.oltean@nxp.com> References: <20260111093940.975359-1-vladimir.oltean@nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: VI1P189CA0004.EURP189.PROD.OUTLOOK.COM (2603:10a6:802:2a::17) To AM9PR04MB8585.eurprd04.prod.outlook.com (2603:10a6:20b:438::13) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM9PR04MB8585:EE_|AS8PR04MB7592:EE_ X-MS-Office365-Filtering-Correlation-Id: 6c2a5371-3df0-4e44-3717-08de50f58bea X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|19092799006|7416014|52116014|1800799024|10070799003|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?4c91MhSWBB0ILkXD9gWkjxjRxNT0sVxGiGWdqhVpNRRYrIsJmhCstWk0hmgV?= =?us-ascii?Q?L/YcCEi0FkoyzwDCQW54oxYgzNqzHqxf+T7xZHBFYXI73CibxmQeW9Ti9KJZ?= =?us-ascii?Q?vgIlYeZUWUmxpg+GHJQSPIqoYHGMG13CF49FKaKWqyzbxiktaHYMyR4h5ITw?= =?us-ascii?Q?a4KHOM79xXxK2LXt8dTdIiRq6X8qbPxbsgiVUm+8bp9kWcLCAhJ74vrdYFvy?= =?us-ascii?Q?4PVU2MwB3jjLxFvk/so/d5AuI4xviRVPjY2Me+Nxk17etcb4eSpjmqbVX4F3?= =?us-ascii?Q?m180dHSdwsszPP+9rEVubImUkjZPIBVRjYqKzU3jqjDRoZIQNmj8xwlJqF/Y?= =?us-ascii?Q?/2gvfHd/xWXOTz942NLFyh+wSvp4RWtfi1B6EBVkZHdMP+FuWIccD5nbHh06?= =?us-ascii?Q?GtbfGPWk/XOwMPYboLd47MQJlsLedd6WEPkdxJJ8M488Oobi+cy4zQnMMQD7?= =?us-ascii?Q?Qud9Lq+EzrVUL3bS9HQpGCwxiQUv0hfBHJ5Hanv1nUGtGC6JNeT91F3/+26e?= =?us-ascii?Q?Dj3IcWCpQHD/CulmPvAmoBxGKDf99rQ4SEvGGDMQgM4UcKcMunEMbSt0ysFC?= =?us-ascii?Q?0HG/CjIbredOE6q/JXeGRKZ5y5YY/gJIVBZdDYZNORr3PRF6O/LivvMi2ps8?= =?us-ascii?Q?EDlGDYv9UJkRD3tZzcMQKaZwXhM5p8IMDqkgJ7kqUI2J0gzMo/J3gewv+tp9?= =?us-ascii?Q?BmdEq04njm7mivIp3liqksbAANdlS6Ui6AGrUv/8XvisGYHVyawqBxozT9qS?= =?us-ascii?Q?7FR6awJr0f2XaDa6UVQy66iAbltRW5vYdAHeruZaaqVqZZdPnhEUHq2j2i6C?= =?us-ascii?Q?acburD1Pl9j2TFEBJkADApmR1iRR1OJuLPirUrPXOfjClmvyf9QNwzHugXRz?= =?us-ascii?Q?7MHUTmd9hpP3hf/OG7dRmTMQTZBC+3WFDUyMYos9AlIJwOtoddmmdKAqcx54?= =?us-ascii?Q?K/mPpGnFdKI/L/se+A5wJOysiZW83Y2p8vNHLA6BtctYsz35x5i+7NmhuSMK?= =?us-ascii?Q?8wpjIo9KtlICf9Ja5dC22xIOfsx+4Mk3vXKMQOe/YNnhpZ41PtbBSnuLK+qJ?= =?us-ascii?Q?spQM86JhVfmXjsFvx2thmS+0aVzTkwFZ5RharW54CRaF5ABPVmj8wY3tovBx?= =?us-ascii?Q?HdI5xClxQyHX5uulCqdOJfAlopKKunHRhKX+IpNuB9D6T281XiGSxCSevKnf?= =?us-ascii?Q?vkpiXzmQIf1uE05NgE9FxyQX7Mxx8rM/qrRMk933FOUmKS0TZzQaf3FKclb1?= =?us-ascii?Q?vo6xmVkR9e2aJLSF9zQdZZ/Au5+4o+QKnG2Fej920/xNa1qwCKYqTqdHtmh2?= =?us-ascii?Q?WbjDK4up37M1d1dq6Mv7dPTg2HIHtUtKJvdwuFrhJDFgxkrSFeESBOHsiSYw?= =?us-ascii?Q?SwR3tywVgyHNiW1oUdtZ81hAM579mX2rM8RQaT5aOdvYD0mRjOgwBfGnH5/I?= =?us-ascii?Q?+NYsj5U/IgJPpTtkFesdBsObSQBhbsXz?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM9PR04MB8585.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(19092799006)(7416014)(52116014)(1800799024)(10070799003)(376014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?/4dJFLqCVLE/HK+9KLJ8zeOYZaIo0jf22AWQQnnIJf53y8fbuD8MgDUVvumY?= =?us-ascii?Q?0lJ7NrqO0n4tfp4zFt/YH+ezFv+zMEcoU1HkJHvJhNQ3Uxeq2t2NSKcsSPrZ?= =?us-ascii?Q?13qFdx+FHBGzgbOmG+/dGrN7ocYVkqo5oADx9wqZfegvGB7994ahQg8PeUyP?= =?us-ascii?Q?wiBrBB0ppQRlsE0ktf5t1C23EsE5yCl0Ip9IIj+NptOmuaU50iCLIsaQDrra?= =?us-ascii?Q?UfSfdCKe3K5nQhgxN7F0wTQn5LZ5RwV2AcFu9vo6ca5PtFOoVOnF2Gq1OpyC?= =?us-ascii?Q?dG+07O40P8rhasAW+3vJKb29avZ2OmCC/h17oyHiCn/Z8SFOABZjmy4Zdyni?= =?us-ascii?Q?aRTLtlVrLWcPur9N9JbsIlEmy0Dhnb6t83QVlhBJvigJVnir8u6msDzEly7X?= =?us-ascii?Q?VP+oX0iVNLj2wzrfsMh3fTQuDBUhkG4Ndh/tG0XrWEV4Dg5PC3ss4z2iUS/o?= =?us-ascii?Q?T7o8Op0PuN+5VE67bkQ1YypNO5xlwfbv73VVsKvxpnjY7Q8/e+QkoOD9EN9+?= =?us-ascii?Q?lwGVHd2KONH4xtDTxne6Ap+iaVPmDbie9S1izgkUZEG5Tx/UW7WXqfpqFwS4?= =?us-ascii?Q?WaBsjQEyduJRfg0HjqxCCB2qWrh3coQcSdEH4KekqVVAHMmN4zUeIcKOngs3?= =?us-ascii?Q?TH4SR4WAJwpZpFNqjjNHSUabYMQaiRHJqWv7v8FseHMGSdK7kW77aa9U83OR?= =?us-ascii?Q?au6sdLGE/my62X6KDQX9pO5w5lVVlsG7RCHgne7mIFrmNNTEqCfqAvOZqWlu?= =?us-ascii?Q?/eAyylyACsoKcLl6XURoD+CD02g5k0UafwTCMIdPcRw1fYvRgbBdex1VvflJ?= =?us-ascii?Q?MadsFchyyR6JJmuFqCup1OWMUsvWqtndMEDwU+SpiMrJxHBrOUAZDFcjJB85?= =?us-ascii?Q?Nk+7Oe6o3SKwvm6A0CX/Tgp4BOcEVZN+AVG3C4jwxl0ZoLY+kSjVoz0ig9Sm?= =?us-ascii?Q?FQfapylyaH/mjKnnPFaOb1ddAsVqJk2zJbOQoLBfh+5RMLbRxzBZzRccj862?= =?us-ascii?Q?W87qPltEC1B+v4qfOCVg+jumuBaRyZdtQo6zF9fYUl+dRsFqT0p/Uplt1IKs?= =?us-ascii?Q?bxt8CUh5DQVYFJ9CrLssP+eLT57ouFdV6+VLl8+HHEdx85J+uypntnNQnb/J?= =?us-ascii?Q?RAjrW99SHomqY+4rmlqIi5W4VnEFlJM2sCF8b9QcsaQUP+6mthvqn3L7VQM2?= =?us-ascii?Q?s4g3qzmPIV5aBTjVqWMEDKGtxIyhiVomOl2m8yLKvGBE+fYRFNz9xLQBnbJH?= =?us-ascii?Q?4ZroKTix4mTTDn7IAa7jn/ZI1WIDCBdT9OrftA+gIMfWgZX4nowOvSSmpGMV?= =?us-ascii?Q?Zh7hONVQ/mVsfSIJdVpbzBeFpWiC83S9I78oY/hF0HCNSrSSvr+b0k9OFF5x?= =?us-ascii?Q?EfWQZulfAR6xGMlNO0i+lpuWfomXZDIKkGiGtZW+2hRuTzl/eMxGnbY6bgAy?= =?us-ascii?Q?MPjX16YTUO5c+ApALiKY57wY6DJkJS07obNkoY9NvdpbE71Ycr9xYp4AZC12?= =?us-ascii?Q?oeFwdDg00Dul8ZxMLeRRISS8La8DGHoft7PKB2RhRT6fvt9YjIzukx+k0TlY?= =?us-ascii?Q?JZRXp7iatJLdsnJrIBIH9FDYkxck74BSLcAavnsIEFTEFDUpooPPBdNEvE5M?= =?us-ascii?Q?HB/yW6zj90gOQqVz2ONUYRW6fmm54Wc6nEX5ntwR+SD8T25zaD2DvBn0Kj0r?= =?us-ascii?Q?OcTHorvU+1dVONRoRIlV2AdVv7KrQE/XPco0P32xZ/lFT0/UIRVsiEv0lGlF?= =?us-ascii?Q?ORQZTW3504rDJdExCF6UMCG+RF4cTUs2ez8lrQh4SxqPkVhkbCGtGUveH1CD?= X-MS-Exchange-AntiSpam-MessageData-1: 7cjMPVHdLz6pePOw9PHHH/421AvW8/FbXm4= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6c2a5371-3df0-4e44-3717-08de50f58bea X-MS-Exchange-CrossTenant-AuthSource: AM9PR04MB8585.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Jan 2026 09:41:07.9684 (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: 81i76cuYtYBV/4B4Rn7bKvKssRt85R+l/tbGsduYJEUdVqpaXPX4yf2VU+y1WIh2iab5x6JgJZ4TC5MxyFAMug== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR04MB7592 Content-Type: text/plain; charset="utf-8" Reference the common PHY properties, and update the example to use them. Signed-off-by: Vladimir Oltean Reviewed-by: Rob Herring (Arm) --- v1->v3: none .../devicetree/bindings/net/airoha,en8811h.yaml | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/Documentation/devicetree/bindings/net/airoha,en8811h.yaml b/Do= cumentation/devicetree/bindings/net/airoha,en8811h.yaml index ecb5149ec6b0..0de6e9284fbc 100644 --- a/Documentation/devicetree/bindings/net/airoha,en8811h.yaml +++ b/Documentation/devicetree/bindings/net/airoha,en8811h.yaml @@ -16,6 +16,7 @@ description: =20 allOf: - $ref: ethernet-phy.yaml# + - $ref: /schemas/phy/phy-common-props.yaml# =20 properties: compatible: @@ -30,12 +31,18 @@ properties: description: Reverse rx polarity of the SERDES. This is the receiving side of the lines from the MAC towards the EN881H. + This property is deprecated, for details please refer to + Documentation/devicetree/bindings/phy/phy-common-props.yaml + deprecated: true =20 airoha,pnswap-tx: type: boolean description: Reverse tx polarity of SERDES. This is the transmitting side of the lines from EN8811H towards the MAC. + This property is deprecated, for details please refer to + Documentation/devicetree/bindings/phy/phy-common-props.yaml + deprecated: true =20 required: - reg @@ -44,6 +51,8 @@ unevaluatedProperties: false =20 examples: - | + #include + mdio { #address-cells =3D <1>; #size-cells =3D <0>; @@ -51,6 +60,6 @@ examples: ethernet-phy@1 { compatible =3D "ethernet-phy-id03a2.a411"; reg =3D <1>; - airoha,pnswap-rx; + rx-polarity =3D ; }; }; --=20 2.43.0 From nobody Sun Feb 8 14:59:30 2026 Received: from DUZPR83CU001.outbound.protection.outlook.com (mail-northeuropeazon11012057.outbound.protection.outlook.com [52.101.66.57]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1ACD7330678; Sun, 11 Jan 2026 09:41:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.66.57 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768124489; cv=fail; b=dPMsmwV2F9+MfIQZXwmZLt10xoK/JLUg+3WOB5ddrwKxoSHs+dOUbV6+DMloBOl8EpEE7Act6L/SdqW2uWV1k5m1D6XbkCAZ/aqeHoqKg7pgIJ7hQIVTs3jadJdzrUUalch+6aQ35dhPoaNISkyfxjvXGPWBwlNF9nTtexQBtgw= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768124489; c=relaxed/simple; bh=bE1bBZhAhdqHUieSZDoaN7fAVNyBUZEL0p/Z0G5WW7s=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=nrpzu6e9AY9nlRUL3+mN5SMPl8m8VQypS+hWTRhtmaVV0eYNFHiCYQ/ud6TYL/Xb7lBk+N330/Z7aS1pThtFbpr4PeDtpF03QcixB14ChMGlNhERpZ7ubXsmlwp4MSZW9M5fZtv68Hw60imbF/LNDLtkI7lgZ93wXKwBcfmIyL4= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b=ZgYW2ABq; arc=fail smtp.client-ip=52.101.66.57 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b="ZgYW2ABq" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=lbTywzpm1gqVoxuG+xL0DjoXZrbOMlRXOf85acxEvUA/yrtt5S5ozzGa0Ixos6UZTMVM3XdCRTcYwlVA/eRNxdjZnlF636VtcRvH9rTvAmtKOsWamRSamGRTzonSO8hNvy83Cl/kBVZ/ECdIkYZOq1f0wptPxlan86LP5MHDhV9ClUE6v+qfVUDHm4mFSrr4cQVVOd2nBnD+ZHMSM/924j5+LjrLsIwahScI8BHfuDoTu2HKXlAjPg7ccXaa5bA56Ybe6ajb2HUBFtL5yakO3Q7q7mltbpaNA0i3Q6FuntblCsr+wOq4RnAHGkvvUTMQNFTg+JTQOy9P+g/jF5oXDg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=NArgE9NrSpiWIqx8n6fMKmdiS6b2Oy3KRwqmYnPUzM0=; b=WeUdnhixEett7WaNRkWNRARxQXz9N1ztpHl8NYtqpdpfAhLjDuoR7BDqi1zT7dngXG4lqoqs/cQkyaSAC2FOYgGczqsQKWYU+F40asD2kJh8OXpk5950VwFvMCIYrvXf5qq+FHXw7ydLBigWOok3LPZHuy3GpcPqRNx0mFscNRp50GZ3HaETlSoSxZdD/JTxH0ubGg9ujx91otbh5deRwVYhj2pioApAeOGwcDJ7znggbFvncMcs0Hu15NzPnPT/yUMlVqR+Ab+GsADjNJ+ckl3jnekNK0ssHeYM0mhYpnTZFzsAwKAB2cphWVG3PT6rbwPm5/q4/TCBlRPzn7RzAw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=NArgE9NrSpiWIqx8n6fMKmdiS6b2Oy3KRwqmYnPUzM0=; b=ZgYW2ABqFIMxYeRteoPOf4Xlk2JNOjncUJlpjUmFpznYvA3mL5WZwzGXvGCIaS5MEweHwYUBIv4s6rUku1qc1JPoXPaW+ahZc1maZ3YUMJs0KlhOXq+xLuRona6l1xyczF4DTaeoXnODldu61bCSzy1onzKEvHA8NXDUaGc55dPaYGEX0u4s82PczbkrgWKvHmdi7zsui6W4FVjG9fR6d62Mbsmm6KsQYRiM3N1StJuiPU2105TnIXCWIe0CRtBEqxQjgcaQ7xtcEWLZf+YQUjaAFSca8cOwZ/vHso3j9tbBcTuFFMm3xTocR52vGSl+UXAxI+LwU0J9j2m+Hfl5sQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from AM9PR04MB8585.eurprd04.prod.outlook.com (2603:10a6:20b:438::13) by AS8PR04MB7592.eurprd04.prod.outlook.com (2603:10a6:20b:23f::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9499.6; Sun, 11 Jan 2026 09:41:09 +0000 Received: from AM9PR04MB8585.eurprd04.prod.outlook.com ([fe80::f010:fca8:7ef:62f4]) by AM9PR04MB8585.eurprd04.prod.outlook.com ([fe80::f010:fca8:7ef:62f4%4]) with mapi id 15.20.9499.005; Sun, 11 Jan 2026 09:41:09 +0000 From: Vladimir Oltean To: netdev@vger.kernel.org, devicetree@vger.kernel.org, linux-phy@lists.infradead.org Cc: linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org, Daniel Golle , Horatiu Vultur , =?UTF-8?q?Bj=C3=B8rn=20Mork?= , Andrew Lunn , Heiner Kallweit , Russell King , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Vinod Koul , Neil Armstrong , Matthias Brugger , AngeloGioacchino Del Regno , Eric Woudstra , =?UTF-8?q?Marek=20Beh=C3=BAn?= , Lee Jones , Patrice Chotard Subject: [PATCH v3 net-next 07/10] net: phy: air_en8811h: deprecate "airoha,pnswap-rx" and "airoha,pnswap-tx" Date: Sun, 11 Jan 2026 11:39:36 +0200 Message-ID: <20260111093940.975359-8-vladimir.oltean@nxp.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260111093940.975359-1-vladimir.oltean@nxp.com> References: <20260111093940.975359-1-vladimir.oltean@nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: VI1P189CA0004.EURP189.PROD.OUTLOOK.COM (2603:10a6:802:2a::17) To AM9PR04MB8585.eurprd04.prod.outlook.com (2603:10a6:20b:438::13) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM9PR04MB8585:EE_|AS8PR04MB7592:EE_ X-MS-Office365-Filtering-Correlation-Id: eb4789f2-9164-41fa-e1e8-08de50f58cf1 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|19092799006|7416014|52116014|1800799024|10070799003|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?DGWjuE+m6j8zUL/YAZ++3jGc8VQvKhxqLJ5kxoZ0QMCtlNC36CjTAc5kr0Sy?= =?us-ascii?Q?9gCvCYJ+MkQ7fFyUXUCOr1eHxYQhop2nyh6/sqR6RHeDoJ6hnxusTArxE3KT?= =?us-ascii?Q?VXZw1uQeM15kKAF52e7i5edrrkq7c3q+LVIPHQzKtsi/T/ZEY2psirsqhYyw?= =?us-ascii?Q?9/OBTy4awCp03nw4nwYTSqlp4Nr1gQwANNPcHxRZLZuHRYaT5ek/gFwvacCH?= =?us-ascii?Q?AuuB3ezoQFig8eqqBKDlG5L7RlcnjV14gNaAW4Ofzdb2NZ3Cfqvc63/jo4DV?= =?us-ascii?Q?svWpvbaaCj5TKem6ICq+jCj8pT5uy+qK5hIwe9ZWyUOmvgJDO+UtY0sKqT43?= =?us-ascii?Q?Jf0rp8X7QhArcOkcw3N7iqZ8EKjv9+QulL8SBvUyAdV1Uy84QHlJLXUd4F2p?= =?us-ascii?Q?avRd+HnsqLuzc9oT9WhdEU6f1TFQKm7lKxFezsCAKU1TZoTJAxIG2tfV3T2q?= =?us-ascii?Q?Wgj0oz2ZV+RiHfq2JdE7YeYjUqwZDhZW0ItSAMpVjgzbEnsRtflry6YyxbaG?= =?us-ascii?Q?F2zUdMVrHrkZmE1Q/EuzQPXANLmANZja90MO1ajckOIcFT7RlQMArww+auIV?= =?us-ascii?Q?bNKxk6Z4rav/0d7QVknKpYrLC8a7lMcWoi2wXdgD7Utk30D3S2PzQmLuya93?= =?us-ascii?Q?WsJfg7XW6s3iKi+8dgFF5qDVBWxfxM4t/rMNvJK1Nt8JdhRK1hVFK1Cqokjb?= =?us-ascii?Q?seWkR1MkPNJ1czYAe4e1PC/no3hxnVfR8snaL9NylTSzjngHmewXPjOavwPs?= =?us-ascii?Q?4Z2EK1Qr7/zc6dfrRM7ZfyMnXtROqWUQvUTJiawrx5fFzxHRab/kqSx7tY7v?= =?us-ascii?Q?EvQMomhy0N5TCvc3cXbvIEEBNgs4dO2grjLQ6UmhgypzEvtrcqkme13njD81?= =?us-ascii?Q?Lw/SYXY4Vmppmn6ekIMWkKVCR5gnFhbof0Lv1fFpFKstDLHq87I7tpQ9/GZ0?= =?us-ascii?Q?cY0ecl5G9o2HTHBtk/+gBi8e2Jh38ihTU11xy3zjencp0f00XJg01VFroaiP?= =?us-ascii?Q?dyPfnWL6oMt+LGEjzIaCvQBTIHnvLsnvcZnlEt534zZPGVzufpnotXhBBBRF?= =?us-ascii?Q?aOqb2NzQfr13AQRb5rMVh7yp83CaPFCD2gAcq/r8PlAUbxKp124amwUs+VQw?= =?us-ascii?Q?n7LYMxDJmx5zuxtXLBiWaaMqCYasE7Iuwoqjkoc/O7NtK2/ycbMJ4rz8c+NF?= =?us-ascii?Q?t7RuP8+xii/JPfeGlW+RzTxIlj7/WlwF2CPqtQ/ppqzHfQHXi3pgnzRs2TEs?= =?us-ascii?Q?m509QhcdpR1RHJ5nYzhfrxqBpZ+FJir0xubFzEAz7BPTLMyGntpr3MJ9Qobc?= =?us-ascii?Q?0YP+ervLvFrs3AnFaBfV1r1ogJH24r9i4E54cdC2QmqvFjhDV7yBFSsBwTFc?= =?us-ascii?Q?+jTF25zQeWkgP7apoOjHfdWXKVlRSJmmyKMcjxeDlUnjQjhxbZQyCXv1Pye4?= =?us-ascii?Q?1+sGEB2DewhHOTsR/09akHRqys4PLtQ2?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM9PR04MB8585.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(19092799006)(7416014)(52116014)(1800799024)(10070799003)(376014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?YCb8lofYiGreHdl479X7mpE0qUbX6+riNXKfwozCa7ac6I/KqYxJG2UfiRTf?= =?us-ascii?Q?mKAT9rVrAVYkxS9EIE8JwQacFCnAjRlgLDlxaYaONPJL0zxTyjudX7AfeQ3F?= =?us-ascii?Q?FhK99gDdybFbA1sk+RRozNGIXgY/6yB2cXzhUIrVNuit4Z7YdrW+qi0F2/yU?= =?us-ascii?Q?/MAanAEC+uTBm8PbBhQSxPpT0oe4Q6eukJTwrMG+o0G/o+/dZ8oo7BgvxnAx?= =?us-ascii?Q?mnYttQ2/a1mjGIO5MBo2ylQaTlPb57gPWFl9QjxYCKcmJym9F0j+olhDwdzQ?= =?us-ascii?Q?YoNXsDrcLdPmfS2yZO/y+Mg9ZXnht4+G9iIk5sd+BBc/r49N1WkMZYsfcfnb?= =?us-ascii?Q?wicWr/MF21PKcMdAj/O0zR+om5/ngj7CpaCq9N5k7kzTGkir/vLg/ce2l7/q?= =?us-ascii?Q?YuVJghmu1kLe5Ka8UsOEAK73SHqhpYczzYD5g+mM+9KK+B0CVajIF+y4Rzck?= =?us-ascii?Q?byPby8OVO9ZmHwYBurVKAnnCxrFRFs/SiuQB6PFP4Tt3X4loguQ/48k16bLq?= =?us-ascii?Q?YCJTX7hW5lB0A8+UIJ7W9Sa6tD0IVTta/GqdN/8UK0a+aQ7vZ+npB1k2aH8r?= =?us-ascii?Q?euD3IUG0kZqDKRzNUDXFamfmB7ljkCbeAVxBlIjC3wRAWAfiBdY/dnBOnsEF?= =?us-ascii?Q?k174Gr3yothNAxlMNKhCkckx7SXJQz5JFqwSeajXDsI98ycNKFqEUbWq6C8n?= =?us-ascii?Q?PXknlMFrYYovS0gf/8sk18gGS/XUDioPXMK3g967Lu7sBtoI1R6hfri+54X9?= =?us-ascii?Q?V5hs0WKlDCHrncZlR1CJi8be8SoSHWFWEb+WccpMYhfWSSKmQRUL+q23dNJy?= =?us-ascii?Q?uY+eCq0YTWBgPNynEL73ETpJsQLjphZvTK6oqbkD1qjSMb9C+07fVBXvJDHq?= =?us-ascii?Q?3HWPui7saX7Q3Pj3xulLUEJhSfbnxlgoxirbnh0QQMEFSc2t38AjDtt4WOPz?= =?us-ascii?Q?XJ8kTjlw1PD27FR7+sOkGq5bRHP4sEcbxMGE+GyvoIT2CqFC0TVeCzoJ2nTB?= =?us-ascii?Q?fW6yxpEQWaMGbMUTZMp1Y2uQNYGISvoyP+bmalTvVbQx5iQAmKPt/vAhp3LW?= =?us-ascii?Q?ShO8Po7ta0RASEeSNTjx4eHQjxfM5h5WWLEV/A7Dl0NiTM3yw3PWLNlqiLL/?= =?us-ascii?Q?+FNnDaNTNw+ix1RnhNttiJ1CNf40I1wx5V5bjHfFU6HoNK4ouc5OO+hqpm1p?= =?us-ascii?Q?pnQOc6flAkXeAUhDUzSzxHP04Lsg8ewQiT1Z2qnp8dlHKtmCWCeTwBujprE5?= =?us-ascii?Q?JWLYVc/Hi8tILoSSR55SZccHgPGUJVwtzADmw9Vf2Cr7lRa1tZsXWt85lO4D?= =?us-ascii?Q?ev3TYP7Ws2+fJZ7RE/YfIa8BFtjYX3uKPBRNHjQMY7QbYuIs6VAY8sWOIo/7?= =?us-ascii?Q?TtGdFMozrPanRPL5p33dCm8pGpTawmqcA58xjPG5MSt46UZR4P0Ev+2FNxVM?= =?us-ascii?Q?WdHhiiM24VhUISAAqf3Wv6vWOq8mqfsF54/FtBb9RXky+3Opi2wwnRnssQKS?= =?us-ascii?Q?j3bRoHpbZMNZo/cvxrKJFjy+Bc29JhUW9V39jvpvd6MawZ/WonU3UQAdwgqQ?= =?us-ascii?Q?Js+vdgURUYpqYmyqiZVOL2GyrvaakR1Oja6WLpCtq+KiEwwHIN9xuSufauAN?= =?us-ascii?Q?/IWM28KBH4qlfJfUX4E+5ArKPZi6hHd9DwGfiBrwn0zZ6xHXyqZuJKZP0t60?= =?us-ascii?Q?6MAXjapTd5EeQftIjtUD4MYi9f+Tq31l7gcSTKZGSdnZ7yCBwX5AN4FebHSq?= =?us-ascii?Q?gt1RoxpmiC8artcvkD65kwGSyrc+twjV3X7yPWGZxkAuFyzv4E0MyyyoWrwR?= X-MS-Exchange-AntiSpam-MessageData-1: GOurBUGPA9xS0JeD4Y4WHwxEKFY4QnPLc5E= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: eb4789f2-9164-41fa-e1e8-08de50f58cf1 X-MS-Exchange-CrossTenant-AuthSource: AM9PR04MB8585.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Jan 2026 09:41:09.6329 (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: HNbZ/cp5gbDVvdmdtpDwtVPfqksMmaPSN5901F/81DLab3ZDKV2E/bz91Svwe239lTjxQhKXp8zoU1fsavtP7w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR04MB7592 Content-Type: text/plain; charset="utf-8" Prefer the new "rx-polarity" and "tx-polarity" properties, and use the vendor specific ones as fallback if the standard description doesn't exist. Signed-off-by: Vladimir Oltean --- v2->v3: none v1->v2: - adapt to API change: error code and returned value have been split - bug fix: supported mask of polarities should be BIT(PHY_POL_NORMAL) | BIT(PHY_POL_INVERT) rather than PHY_POL_NORMAL | PHY_POL_INVERT. drivers/net/phy/Kconfig | 1 + drivers/net/phy/air_en8811h.c | 53 +++++++++++++++++++++++++---------- 2 files changed, 39 insertions(+), 15 deletions(-) diff --git a/drivers/net/phy/Kconfig b/drivers/net/phy/Kconfig index a7ade7b95a2e..7b73332a13d9 100644 --- a/drivers/net/phy/Kconfig +++ b/drivers/net/phy/Kconfig @@ -98,6 +98,7 @@ config AS21XXX_PHY =20 config AIR_EN8811H_PHY tristate "Airoha EN8811H 2.5 Gigabit PHY" + select PHY_COMMON_PROPS help Currently supports the Airoha EN8811H PHY. =20 diff --git a/drivers/net/phy/air_en8811h.c b/drivers/net/phy/air_en8811h.c index badd65f0ccee..e890bb2c0aa8 100644 --- a/drivers/net/phy/air_en8811h.c +++ b/drivers/net/phy/air_en8811h.c @@ -14,6 +14,7 @@ #include #include #include +#include #include #include #include @@ -966,11 +967,45 @@ static int en8811h_probe(struct phy_device *phydev) return 0; } =20 +static int en8811h_config_serdes_polarity(struct phy_device *phydev) +{ + struct device *dev =3D &phydev->mdio.dev; + unsigned int pol, default_pol; + u32 pbus_value =3D 0; + int ret; + + default_pol =3D PHY_POL_NORMAL; + if (device_property_read_bool(dev, "airoha,pnswap-rx")) + default_pol =3D PHY_POL_INVERT; + + ret =3D phy_get_rx_polarity(dev_fwnode(dev), phy_modes(phydev->interface), + BIT(PHY_POL_NORMAL) | BIT(PHY_POL_INVERT), + default_pol, &pol); + if (ret) + return ret; + if (pol =3D=3D PHY_POL_INVERT) + pbus_value |=3D EN8811H_POLARITY_RX_REVERSE; + + default_pol =3D PHY_POL_NORMAL; + if (device_property_read_bool(dev, "airoha,pnswap-tx")) + default_pol =3D PHY_POL_INVERT; + + ret =3D phy_get_tx_polarity(dev_fwnode(dev), phy_modes(phydev->interface), + BIT(PHY_POL_NORMAL) | BIT(PHY_POL_INVERT), + default_pol, &pol); + if (ret) + return ret; + if (pol =3D=3D PHY_POL_NORMAL) + pbus_value |=3D EN8811H_POLARITY_TX_NORMAL; + + return air_buckpbus_reg_modify(phydev, EN8811H_POLARITY, + EN8811H_POLARITY_RX_REVERSE | + EN8811H_POLARITY_TX_NORMAL, pbus_value); +} + static int en8811h_config_init(struct phy_device *phydev) { struct en8811h_priv *priv =3D phydev->priv; - struct device *dev =3D &phydev->mdio.dev; - u32 pbus_value; int ret; =20 /* If restart happened in .probe(), no need to restart now */ @@ -1003,19 +1038,7 @@ static int en8811h_config_init(struct phy_device *ph= ydev) if (ret < 0) return ret; =20 - /* Serdes polarity */ - pbus_value =3D 0; - if (device_property_read_bool(dev, "airoha,pnswap-rx")) - pbus_value |=3D EN8811H_POLARITY_RX_REVERSE; - else - pbus_value &=3D ~EN8811H_POLARITY_RX_REVERSE; - if (device_property_read_bool(dev, "airoha,pnswap-tx")) - pbus_value &=3D ~EN8811H_POLARITY_TX_NORMAL; - else - pbus_value |=3D EN8811H_POLARITY_TX_NORMAL; - ret =3D air_buckpbus_reg_modify(phydev, EN8811H_POLARITY, - EN8811H_POLARITY_RX_REVERSE | - EN8811H_POLARITY_TX_NORMAL, pbus_value); + ret =3D en8811h_config_serdes_polarity(phydev); if (ret < 0) return ret; =20 --=20 2.43.0 From nobody Sun Feb 8 14:59:30 2026 Received: from DUZPR83CU001.outbound.protection.outlook.com (mail-northeuropeazon11012057.outbound.protection.outlook.com [52.101.66.57]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 40436330D24; Sun, 11 Jan 2026 09:41:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.66.57 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768124499; cv=fail; b=neLqdFOIy3zabZyhsr11mdi5rrsNXOZIjsB/QuXlzfl01P7C6b9wqmuUA+Ekx5A9ZhofFTFymJXbODQLs2UPaLJW8l7cPCPYVi9Xb80muvbZIKQniLXi80WQ0My4J3+AjAYB3CjgIIZHv7Z6XvYeA1voLRKg5TuPvbFkB3CaUm4= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768124499; c=relaxed/simple; bh=Tucy6eJ282m0PwQVgmGARFUfo8euuapAgRg6YEoJa20=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=TMR2d4apDb+tVLPqLaeUMJy2JMIepWt+DF3x7kqy3J/5fG+QttGODUASRefewYvdhYu/jeY7RWHeKFWR+imKl6i+BVJAbBtwoqepWFlPXqPEIkqLdAk9P8fV7Z+0PfCnY/+GxA5u6c7c5Vqqj7h8POm6LoHmzKZdaBguNgxUIMU= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b=l9gf7aVj; arc=fail smtp.client-ip=52.101.66.57 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b="l9gf7aVj" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=UYR8f3+TtsJBWHQFsdtqTRoqKidQXOHznDsXeJUcQWtZPr7vAxZm1X8qd/14JrrVVe0wIa3uo1TX/w4ForTV/BX3x9Av7LpqGgxRlFztga/u9/XAjUlEsmt6aL5TctImAKVH8CEUEAAHd1e+96Ey+SASsjUclJ40jmM/mDCazM6HdJDxCnCvIxka7ZEsi6sXyljTVsmk1BxtqfV/2o0jolVm9Kia6H9eh9Bn2PenxYuNoGEn39cnv8oeBS/YN8u1qCIz5blni6l/3q53Xy5ItsBuXfnaxWmJzXd2GO0XooxaHyN0+iPtxQ8RAWcYn5i/jHJ+4UQlwmPVbJksJINwvA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=zStSPVQlztOXUyoLm7NQWHtRaUKXS5UajHctN6ksU/o=; b=XW+Q+SUvjLbWVkUWBwFZS3idvsdV1YiXs0OSkcNPUbyL+3SJ30Me49LUUkHuFjKf5cFnJpxSegwB2iADO8Nh3Ux711L/3jjLmf6YZ64x1YWXd7PhHJcD/o0jqSt1oLMr/RopuFx+hmXpGwDqX1ZnYmqBoQvrl2Y5Lqnm+bTCSacpRgaBXaoD7zwcpoz71/qms91ND1mk37xJvNwYK0OyMTrlv7HqxQwLEtteyjUqYIF8ZXmCI5hqRaxEXfih27Z/oOcZRcge/CwcIxgbvR6uQHY0LWpOtRduKZ3tJRMDGUvYy5Ct638wsXoY+fXgmDMSuZssazTjKwFqCkl5ugmFzA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=zStSPVQlztOXUyoLm7NQWHtRaUKXS5UajHctN6ksU/o=; b=l9gf7aVjZyirlA3dtlm6EHv+Rfp3qv5394hqoUYzrrqHZVPQ2FBa9JfWmtmNQdDAwpeicWbuEzh585oiEhLKVZLz3M8tRg53IrnvSdvQfgDRgc+Z7wICUSlErHFvlwlwZVv1AjhVCsxIkWJlCV4ZLeX3aUwAa59l3askL8QMx9f6iekmrR583WGEiSz6z4NMy1A6YC3DgALx2S/K+eoLl0S29UwfC7RuEK5byt/uKTphNUgEyJwuRkKFtC/FSiuMdTheE2ttYb/FkJfvmYKBg/QssD8ZTUUoebJtFOijuLJSAZ1GWl3ddb1w8Z2w/BIvTKS7NxdInc4WbbdyFeGCqw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from AM9PR04MB8585.eurprd04.prod.outlook.com (2603:10a6:20b:438::13) by AS8PR04MB7592.eurprd04.prod.outlook.com (2603:10a6:20b:23f::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9499.6; Sun, 11 Jan 2026 09:41:11 +0000 Received: from AM9PR04MB8585.eurprd04.prod.outlook.com ([fe80::f010:fca8:7ef:62f4]) by AM9PR04MB8585.eurprd04.prod.outlook.com ([fe80::f010:fca8:7ef:62f4%4]) with mapi id 15.20.9499.005; Sun, 11 Jan 2026 09:41:11 +0000 From: Vladimir Oltean To: netdev@vger.kernel.org, devicetree@vger.kernel.org, linux-phy@lists.infradead.org Cc: linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org, Daniel Golle , Horatiu Vultur , =?UTF-8?q?Bj=C3=B8rn=20Mork?= , Andrew Lunn , Heiner Kallweit , Russell King , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Vinod Koul , Neil Armstrong , Matthias Brugger , AngeloGioacchino Del Regno , Eric Woudstra , =?UTF-8?q?Marek=20Beh=C3=BAn?= , Lee Jones , Patrice Chotard Subject: [PATCH v3 net-next 08/10] dt-bindings: net: pcs: mediatek,sgmiisys: deprecate "mediatek,pnswap" Date: Sun, 11 Jan 2026 11:39:37 +0200 Message-ID: <20260111093940.975359-9-vladimir.oltean@nxp.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260111093940.975359-1-vladimir.oltean@nxp.com> References: <20260111093940.975359-1-vladimir.oltean@nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: VI1P189CA0004.EURP189.PROD.OUTLOOK.COM (2603:10a6:802:2a::17) To AM9PR04MB8585.eurprd04.prod.outlook.com (2603:10a6:20b:438::13) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM9PR04MB8585:EE_|AS8PR04MB7592:EE_ X-MS-Office365-Filtering-Correlation-Id: b8239e34-c5a3-425a-c2ab-08de50f58dea X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|19092799006|7416014|52116014|1800799024|10070799003|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?Uw5OGR0aL2Vwe4Im+5cNM6Hci3GZIXr+AIhbGhSJ03KcqEra165bazc0W+eY?= =?us-ascii?Q?zdrK0Ua1CEJAshTDsasOPjRr65epx/dH215vGvsUWj5lEN7sGV0HArSDYu0G?= =?us-ascii?Q?D6k93Ti2yauafRtaThxJINh8hUsCX3EKUtDWF+Ui5mVzlGUB9xoarCyPXPp4?= =?us-ascii?Q?rKZwGyt/WpqOv1JKNLEjwomHtO0svvkvBu1Enfs7OPeFoc5+08c4j9xa8SIY?= =?us-ascii?Q?yaNpNpe91D2VfzHF8fSyZ5Ibiz+1pahFEBt/NUhksu3cn/gkARQjAXRxy/gF?= =?us-ascii?Q?6IYoHJcIin64s+qLkgjChZyOeiWsXOvHYRqxlo7FdtE1jEdqCw+jUFF4GYnB?= =?us-ascii?Q?biZl+USHsYcaqBL/15CegaNmZLGy6QiN09IQBay4/DqR5mFvBsvms2JJLllH?= =?us-ascii?Q?afnWGpHy17kEP0YHQgYLRmmUlTyJunfER3+YZ1sX5ZhQAqF6jm7lDE2cnBs4?= =?us-ascii?Q?8ImApBN2p7TY1ZmiNs6+7uiATM+x+hbtlPB0jJN5Ul7Wd94BjGP0ewPPGfjb?= =?us-ascii?Q?Wy/MYkvlxWpH6czqpNCTOgNzAY9twmqvWXWg32gn2jPdiAJWCTGY4j0+qpgt?= =?us-ascii?Q?YYLdtfbBvjaE72+kgHPWBswjvcIltBH9ImvgPk/JwTNAWU0OQoWaOQxhQYc9?= =?us-ascii?Q?NE959VAvb0TaQ/K2NcZ5UscLZlLFw3xJipYqhprcx+52Bx6f3/QVEvbGeA2x?= =?us-ascii?Q?c0BYccdG9A9PHJOY6NM9mdlDeJvyeemaxLxneSD0JNigKOoBfMrTarLeqhck?= =?us-ascii?Q?3ucpJs4aQQb03k0qXqenLddpTcAWuvdv5MkVMDLJDvYzOhqgkCD4TAJMAoST?= =?us-ascii?Q?s3zZWQw9qcQklkz/6/HC8mrf/0183cxvAO5zM5/SukwMT+EI2afZKAz8As6Z?= =?us-ascii?Q?tRmza4iliDu6VBpxzlOiFMh6SuJ/t+S28N133peb5UKEvi7uPzCMhukrSAj1?= =?us-ascii?Q?BWyJF+nYIsYFaVSIy+IHIpUHvDXw2Z2ctFLz1YL8L1fPhXCP1p0ZQjqeX0KK?= =?us-ascii?Q?EE62+w8thXzQ+Mk8TClJoz9gDVk9hYpeERKpjrKO92inrsRgTIOjjT/b1RoR?= =?us-ascii?Q?dhhEU0NWbC46kKddgCjD80pIX+meqGT10U7ESl2oyoErYv7zA+wXJoJrP3yK?= =?us-ascii?Q?vss1F+dzQOfaqEQgyIOFsNePAMFS9mFuCUNGnTEWtK1MwNdJCV8O+W5tZA4w?= =?us-ascii?Q?zQ3/NxbZYwsu7GmYskb1+hPRzImHawgVHT60Em+plXW/R1gM7mllhueraApg?= =?us-ascii?Q?DpXulHxEF8So83WKDKGoxq4Q+sGHC6W+k2dhQC0udbR7GNaOJTxaQMc64slw?= =?us-ascii?Q?vDFnpj7y99vsghFZiqquv9ek0xSRRLa4WdaZILmdPcaHtapQkS2TfLgL/VWQ?= =?us-ascii?Q?yg3C1F41DRzXIgIe7/md1wKT/IdWJ1q9ZB6yhBLlMxYVWgFaxTiL83oWkv6Q?= =?us-ascii?Q?WcduIEB+Tv05ENxM+wuCxREn8ZTdasCS?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM9PR04MB8585.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(19092799006)(7416014)(52116014)(1800799024)(10070799003)(376014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?apURxMwMidr5Pjezuq2wnDuYdVsa52E6XzGV4NgJgyeBN9cVQ4H0GYNQaEob?= =?us-ascii?Q?ugdhguuR4LcLM87gB47El4iPoF8YdThg7hCM5OTzy+DPqQ7jvs6ZXED2ozzf?= =?us-ascii?Q?3NVnVDN9XRzHQW7sh4+YG2GATo2hBN0o8pCWM0WCyoBpAq0a+HAXKveK25P3?= =?us-ascii?Q?5ex9bSKnWD13JRGyWyUg7/XvdcXQACvEByaBiJaVCf1PUkmw2FZ6jfPghDxs?= =?us-ascii?Q?XbDlRWGO5YPXmzEIA0kHv6SFlgtK90wseH9fXFF2ZMZ/wPfb97ZAb+1qzp2I?= =?us-ascii?Q?07DmOrDvVxigQlLreyzEYJ/7mtjAYVEn9JI0bcqWhuXR/OAHuv1PbGD0OmaF?= =?us-ascii?Q?7CD5jxOrlLZ3puDK5rSem08CDM9+OoDyo/ugPs2AKDE2bussXvqUU8ze1qFJ?= =?us-ascii?Q?4jV3BKN+IzUAzeo4N040rYTH9MIa9Ov8Usw/vVlz4qHCf+OotCBS1MZNXzUm?= =?us-ascii?Q?v///H/wV8M1MiVvb9jd14FxOvzQ5LYrjNIDd8ddv0dxEg2ZXxY9KogdZu4uH?= =?us-ascii?Q?DIBrGZZ+RKM45PX5YBvlgcDL2bw6MNhPbLYkdCFnJ524ANneAta33Ttlpwrm?= =?us-ascii?Q?o+CnXx9GGzBCYVRfj7A3fiDuDgE1tX3KYhrsTBamgwoeaK4G89PXj8sBLzjj?= =?us-ascii?Q?W0iAcHoF95wHRmht2yU4I6DOtfbzLVGbN3UYudqp1yhwo+H8ThXiyKN5AI47?= =?us-ascii?Q?oX7VjyYTA6DvZOg0bbnQO2yYJ3Ifb/HZE/PlUwph0t3DjoOwoQYrw2jjReX8?= =?us-ascii?Q?z/1yLDlllQuhPSI43DpBJ1ALVR46uXLClb8vhmBiw5cViv2UjfbuR0BpDiPx?= =?us-ascii?Q?53Qnv1ebtju/wYgDFS93b2MqK7KGIimraTWCl0wNh28ggpg5wIyBPe97TqLj?= =?us-ascii?Q?dvSC6RiNJHv+psHI9f/nt3dldQzC4JKmipJHvnDN/7Wkl5wA1eTzqLmibUM8?= =?us-ascii?Q?2a6sNnK2919GAaonNh3H2U2r01KmSgVwbAUczDIxIeiu3YOomyXWuqAdp5p6?= =?us-ascii?Q?boaBOm60N4eD7zKTFhap7x49F2BWMXQtLmDE4u0RCEBTvE0Joi1DE9VUPOVx?= =?us-ascii?Q?d/vAD6xAJkq7EHSDvMxsW+6NIynTZxFlvZZAVnqQCCKAKrhDe479ZW0D7rk8?= =?us-ascii?Q?segeCFAxtsyathf8iUO6dMEDx9pvRYeN3GHKlBddMKdpr3f2KB7BRIXyY6PG?= =?us-ascii?Q?uSyIyRmGg42bmZtVHVC00AmDHKt3nsuCX1e0kwBsFi2aJYaVEK51Du+9End/?= =?us-ascii?Q?b8A0wuKH5cdtmKk+gR2Y63eqDzLQVZuSgyjiQ+7fbrhVnROxWgRMws/P+7Cz?= =?us-ascii?Q?cDoVKOSDIWFgYlitozfucqlDazn32/SucdmAFDyNb/b8GKR99uEUd2lTyv4p?= =?us-ascii?Q?nEBBWbOroaKLgGGlhGDk28lkLZVVkemJZi25LCjqhr3JN3GqvbjA90TfKCeW?= =?us-ascii?Q?c5Eg0VjUtfY/ivWfRjf70FdHeNm5zZXJ7OXB2buwQ4t3/9knG6l3XAUlgh/b?= =?us-ascii?Q?wKs1je6rHKOcU7MOHsGUrE6xaAx1vhcNqupcTt66vjqhqFfAcABwZ4D9KrRi?= =?us-ascii?Q?q40AkokgPdc0xeHAZr/cHx53QEg315WCzyHtInZhVI4IHLZCngg4zqSX9vSl?= =?us-ascii?Q?7cTGxtoCOet9IP+Gj4aFiHRHKtyLqrp4LUB9Fr1UL5wXVJb1QHtykO3vP7LQ?= =?us-ascii?Q?lN5xhFQSakrPoa1YMB4n3NTNXa5hMpGkq1sOlUPEp5DCvIuBN3YZ+xTEoKy/?= =?us-ascii?Q?lW9i8ZzzjTEa8/wgkiT/C9AsJQNgXO7QmHOW4LJJwR02lpuGHpKYm8bEBxzT?= X-MS-Exchange-AntiSpam-MessageData-1: lEWL5y/jNRW9qnQGP5gKsFNqJwS83TjenUg= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: b8239e34-c5a3-425a-c2ab-08de50f58dea X-MS-Exchange-CrossTenant-AuthSource: AM9PR04MB8585.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Jan 2026 09:41:11.2670 (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: Cc1ja7GSI07me5J4ivazIYcpvyz+Gdep5zmqTn5Ch1haITf4lk5yCCg8RqlMusN3dU1vIDAL71fOYeDKSRJAIg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR04MB7592 Content-Type: text/plain; charset="utf-8" Reference the common PHY properties, and update the example to use them. Note that a PCS subnode exists, and it seems a better container of the polarity description than the SGMIISYS node that hosts "mediatek,pnswap". So use that. Signed-off-by: Vladimir Oltean Reviewed-by: Rob Herring (Arm) --- v1->v3: none .../devicetree/bindings/net/pcs/mediatek,sgmiisys.yaml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Documentation/devicetree/bindings/net/pcs/mediatek,sgmiisys.ya= ml b/Documentation/devicetree/bindings/net/pcs/mediatek,sgmiisys.yaml index 1bacc0eeff75..b8478416f8ef 100644 --- a/Documentation/devicetree/bindings/net/pcs/mediatek,sgmiisys.yaml +++ b/Documentation/devicetree/bindings/net/pcs/mediatek,sgmiisys.yaml @@ -39,12 +39,17 @@ properties: const: 1 =20 mediatek,pnswap: - description: Invert polarity of the SGMII data lanes + description: + Invert polarity of the SGMII data lanes. + This property is deprecated, for details please refer to + Documentation/devicetree/bindings/phy/phy-common-props.yaml. type: boolean + deprecated: true =20 pcs: type: object description: MediaTek LynxI HSGMII PCS + $ref: /schemas/phy/phy-common-props.yaml# properties: compatible: const: mediatek,mt7988-sgmii --=20 2.43.0 From nobody Sun Feb 8 14:59:30 2026 Received: from GVXPR05CU001.outbound.protection.outlook.com (mail-swedencentralazon11013048.outbound.protection.outlook.com [52.101.83.48]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 47F37330D26; Sun, 11 Jan 2026 09:41:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.83.48 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768124500; cv=fail; b=KoKBFemVoZ0lXORfl/jpMLUw0788oYmruQjcZEi+7dgYcwOwTYmK5xxBu2ueD45CCDivMkSmtrD+5/WTCRrr/G8cNNYQyWiDrN/FcM0qYp+T4xW370rETXIzci+vauTSpTt6qEuGoeGeod2jESk71Fvg1yI6tgny/QZbvtXbCFY= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768124500; c=relaxed/simple; bh=OLWpOWNrIPjHAtXMQ1xtayp7gWxwwVzIsig4jG3E3DE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=E4E4q18mZ31N1B1bxtOfw0lxV1Y4mNInRMG0qW8sPwlY7IldLoSSBaN26Ha0BBnn4SK/fwMEEkrmtqSpHPO4JOo/UnnYhUI/YmliZPp1Vbs9ErfG1A2PlFxFmv4tNBtICw7eQ/a8HbMoJR5ZDYyq4avJB7J9vMksRplvdlm903A= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b=AY87r2lF; arc=fail smtp.client-ip=52.101.83.48 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b="AY87r2lF" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=rQziCKeF3CmUTWN2loIBrL092DdYiTH/p6EfWXPbpQCXjC6HOEQu3XzRn4a2tjsiosi0h8UW1/t68DawUNTQdd7Nj/lLwY/YeO3zFOPV71ufaG8mDo1e/a8eeI/s2u6cM82PUV85tFiC35gWvkfhingzvU5EYBaF0KCmxUb55jjVcD4yPMC7NLJJ9WO94cnDJht0M15y+mhaAk3dTquwm/mHGXvCAj34YONvTpKKMUniZStc6OP5hVKClOMZYd5V7Ekw41mPbPFmDon842RpRwEPb8W9Dp+s9hj0z4z9kQHV5mimLLv4PMkj70LVwzII5qqRvQdJYACRLSeOAfcYlw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=NM9ZCwtVU2LRfERPCwmpkHJS+FrtucSSUvGriP+FQmg=; b=FTFS2j2Sz1aXTmx9/dw85CagEG6tIArKLDxH0XOBwVB6OINSJcgpzV0cqHVUkhKd4aKtRW3bycbJeEcx66FmkJb39/gnvwCD/QWoiODE38jCsTi+qonMnzFyyN68nEWnq6qXFruHuV4v/VTqyhl2YzDQBx43tU0RvLqkq7esuNnQAVk2Q7UQ5+K1RNdoYXdPQNuN3FyCgkMGsXxv3EMRgct0c3v2Sa2JiMLiMJWpJusV1FOi3qNo69TupaXpE1nHiAyhX/+XH8zwa4K0VZ8pITG0RaX22V2VETTJFeuiv4Z5g27/V1AQFW4CDY+TDwu0KYGHWBhY9NJ98E+Q2nkk6w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=NM9ZCwtVU2LRfERPCwmpkHJS+FrtucSSUvGriP+FQmg=; b=AY87r2lFEL74fPqE6L5JyR0PAfUvtar00Tz2guKSXeLqvF88aZoFyTzGiwNILlt81pTAuUfsm18pmHMWZd/Vsicrcnn5hyQILLO9BWCXy1uEGS1ylrWqLMRiO1sEWQjduZa61DZhL7q1sEHdA+2RIvBD1pY5Pl6xDfqVi6OMuc75bfAvG3D5BoibAMk9YeiqnDAx5WVMyZiowFiJm4whLUDw9uNF+bAfyIbLyauR3+jal1zRoJBZGh77D9dvIEDMvbMv5KcdKN2b3ZrzgztWHm+vcX+ztOKKtg4P8jqc4ilFshQ5Ph/ebhzbNiUq7pTeUE8uoo9lMJ3RZdPI+o2ZUQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from AM9PR04MB8585.eurprd04.prod.outlook.com (2603:10a6:20b:438::13) by AS8PR04MB7592.eurprd04.prod.outlook.com (2603:10a6:20b:23f::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9499.6; Sun, 11 Jan 2026 09:41:13 +0000 Received: from AM9PR04MB8585.eurprd04.prod.outlook.com ([fe80::f010:fca8:7ef:62f4]) by AM9PR04MB8585.eurprd04.prod.outlook.com ([fe80::f010:fca8:7ef:62f4%4]) with mapi id 15.20.9499.005; Sun, 11 Jan 2026 09:41:13 +0000 From: Vladimir Oltean To: netdev@vger.kernel.org, devicetree@vger.kernel.org, linux-phy@lists.infradead.org Cc: linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org, Daniel Golle , Horatiu Vultur , =?UTF-8?q?Bj=C3=B8rn=20Mork?= , Andrew Lunn , Heiner Kallweit , Russell King , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Vinod Koul , Neil Armstrong , Matthias Brugger , AngeloGioacchino Del Regno , Eric Woudstra , =?UTF-8?q?Marek=20Beh=C3=BAn?= , Lee Jones , Patrice Chotard Subject: [PATCH v3 net-next 09/10] net: pcs: pcs-mtk-lynxi: pass SGMIISYS OF node to PCS Date: Sun, 11 Jan 2026 11:39:38 +0200 Message-ID: <20260111093940.975359-10-vladimir.oltean@nxp.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260111093940.975359-1-vladimir.oltean@nxp.com> References: <20260111093940.975359-1-vladimir.oltean@nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: VI1P189CA0004.EURP189.PROD.OUTLOOK.COM (2603:10a6:802:2a::17) To AM9PR04MB8585.eurprd04.prod.outlook.com (2603:10a6:20b:438::13) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM9PR04MB8585:EE_|AS8PR04MB7592:EE_ X-MS-Office365-Filtering-Correlation-Id: e82684e2-ccce-47bd-7235-08de50f58ee8 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|19092799006|7416014|52116014|1800799024|10070799003|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?umcU9QgdBwKNFfcU/0DlWRik9E2deD+9k6VHpQc3k/8bVj8azY+48wLZgF4Y?= =?us-ascii?Q?jene3myTooNJo7SX5Rpy+6BR1tL8tLEQIeIXo+tq3JhMLdktNvBOD8lWmqLr?= =?us-ascii?Q?zcGVPOrtblkwJK6Be903X13WHhmuqYfPnhFvMR/LtOge15BY0Uu11ixGcacy?= =?us-ascii?Q?kEhau9N48VIIHlE46NYhVxYJf2c8m7LOy9IZW7HrGuL73YwDv9pPUCgaryQm?= =?us-ascii?Q?UMvZODaZV+beWQ13n5pF/ub9cv7RHcVacsDtjENif6xycfGuHPAhdZDaZtdZ?= =?us-ascii?Q?i4NYc9DH3XIH6tgtM/Sn0r/PZDEPbsF+XEhh9ab48+hidwmXxxpOKjIjkoa7?= =?us-ascii?Q?6r6stj8j0JJxvWoWhvFX9tIo/fs9fJxKjTkq+OQD2SQzcH+ZTcVQOFO03l8N?= =?us-ascii?Q?11x1EqQWwMrFXMgbU6beWAwlHvwkD120bBAb4Le4A4R3lGYXy8Kfhhq8BKSa?= =?us-ascii?Q?X/5T+fOyHvWsKYosLYLC7bhJdgWQ80E7OUQHdLRmskquTzAmysBwzpxxGGto?= =?us-ascii?Q?YWO4t92FiK/c1Yqm2LItmbKQ+Ns+55yQ1gnN5C0yXGbaExEnXZ+vSQtdSkcc?= =?us-ascii?Q?8Ae5BsZg7yGaZYq9nceUDOOnhTeshgPLqIhg9b5Tl5P6wHSKzDqPi/lofCqd?= =?us-ascii?Q?3db2L9IXAevF0KlC6KKZTKOJc5M8Vrm6H2HHHO9ligqDRyJ9LvDRvwoGBvkO?= =?us-ascii?Q?FvoYpq9STPHwsXBptiz+2BiHmHD9b1wg/+sfG0puwUDIZ3at81zlBusDj2q4?= =?us-ascii?Q?cNEN7cI3elw2WgT9qL37bbcLLCTnCV13ZoY7xHViSDiJ0QckKoSIS6TLRq0C?= =?us-ascii?Q?7GDVZjEGnKVQFUmTLE0n+7glshUfVUeNUu+XQiQOCAWVux1+ZExJFXbwYf6n?= =?us-ascii?Q?sgBtEQVlYvLD3Cs+ttQ8B0nmRZ4ErWh0Vdv43WnoXiPeDirLdWYAJ/UGNcoY?= =?us-ascii?Q?brplK1XjW1468TskZ18TtHJcqoPGwPgpy1jMIJ1bArEv3yaupmpQu0ir5FvI?= =?us-ascii?Q?kn9WRAZeKNAbKcPgecdUMhrRfF/iQeA899CNBLWbfAO5fBBG+/Pcq9RrK346?= =?us-ascii?Q?Lu7i4K38YYOqXx5x7LtHnEhvc73dr8S1Okbb4kjZlKzF6JsSOQAtICjE3Zsz?= =?us-ascii?Q?nnubktykupqJhU95/LNu5md5fmNtXI8kTGiNsg7aHPwH8hoQYqieM1ZV+tT6?= =?us-ascii?Q?xs/NOV4xnJip6/Tnr9bi7gd2cdyNwRzvkQcJhOop5vinihCu9s8g3ErpHMdD?= =?us-ascii?Q?IYlONEusSoUn7wKhb+z09qcgTiicKRFkyUIROcnG/MlcFTGzHBQ7+v/mY7rx?= =?us-ascii?Q?RQlVtEULE1nT1j6HUbYgYwgcYSja6xbSmN4uDePr87qZg22Wh3xZnf0J5oCg?= =?us-ascii?Q?Baj8Fn2RP3Rh++RC1kJLTlR0Q/o0ldplVcvtZXPD7FmYfJZs8Fim/9o02tjM?= =?us-ascii?Q?zjSLy88ZqNac6AuHdwRimoimMQOvq7tq?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM9PR04MB8585.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(19092799006)(7416014)(52116014)(1800799024)(10070799003)(376014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?r7tq8riw4Xy1nhPeC94lMjDY/o8/pKMOblHKHhzSXCzNKTlombX1BVSPIekb?= =?us-ascii?Q?CrM/C2Oru2gIzjPMTofdaaG13LBVh8shffI8Ec0O5FXqYWqXAd64Q60xLl7k?= =?us-ascii?Q?nmiUpAIB8SlC2vlsqBLLX/9Ppnxg5VOBYLaKdu6Qk9S1gvkGoGKmRMStxIeT?= =?us-ascii?Q?s1jQD126gWo+FPUO22w5LN0qHem1x14asqE204ShAS7uKGOkclqn8b4wVvN+?= =?us-ascii?Q?u8kZBcDdy+KeVqRiXDrhoSYtPl1XWZS9ufclcN1sb1PAYWZNw6++c1P31dJT?= =?us-ascii?Q?vn2hntHWLHqLxgBdvjllFyjMbkfY7gdUMpuxUkyIFCNyyKwQBCkBtkCGLDt6?= =?us-ascii?Q?XwWIb6WDxvs6nLGK0dSrdV0M+6OP2dQF1tlHfmYdDSRjpkn2MSrYQ7YiIUYu?= =?us-ascii?Q?Erxk75266qZ6PqQ6VsX+r5AcVke9w5MtVL/j8YQ7LMNCs3h6VCoYTKurz83t?= =?us-ascii?Q?wb+mlaee6A/tJTEX/LHVWQregkVVgURHVcr70NPALs0bYcnUmgxghmqWN4+5?= =?us-ascii?Q?y7obMrV6jFvak7X56ld6PHHqX7REQ+5119b0s7wK6655yMIDd0rPh6YYA01S?= =?us-ascii?Q?qTcrwHOiw7z3EM3vDdoMIHDvV0LaEy/44pKKECtTNDkJ5I8P8Zm3SaCwnAJp?= =?us-ascii?Q?bRDBxxgrKuscp5G5BF0ugQPpJRMMv0shOVQFNCpHwvulDZeRN2THXyV2sMFA?= =?us-ascii?Q?yWqSi9KLP6EYkEux+jNmRPilqLvHjxQcazU+OLSmTghs7LRW1q0JRaz0V4HR?= =?us-ascii?Q?2WreFHRUMQtE5IoIn0+MAkAPV9YV5tZa/mQdsW+QRYAttusa2HIm0gGOVZnj?= =?us-ascii?Q?z7RcuTVvpZ9LFIms+aEdgT862RUHOrvz5y+O8Xo5v0ZdY1BVHne2+SuVWyIi?= =?us-ascii?Q?Zt85AegUiFIY12A+gesP0q/qsUP+p1qPleiFDHrLu9rBqYm9Ea5J1Irt2oee?= =?us-ascii?Q?WvGr1mbQBpZp9xCtvXX/u0v8mubiH6FjhpksjWmFdrYynoQqfU37wMpj1QkJ?= =?us-ascii?Q?Z8oPigaFC+cQI3HPnE99esEQYgdh/SvAN6lG6REttbZ8T2uWL5akwhfeQprz?= =?us-ascii?Q?ZTvIsKdCGDWjCvnvdD8d4R0FwRM4oD5RKOwklw0R35kUhf7FYC3beZK9JSmS?= =?us-ascii?Q?NH/mMTM8ooNK9y++nuf1OtVjftctq3HVCoVqgNvvQSeAlvZIKjcc1OwKB+px?= =?us-ascii?Q?GEJDQhCg4g2zmKhwG60kbUcqxNbJg26vPgra0PguDaAwsEnUBxOp6q3mxhZ6?= =?us-ascii?Q?Ifq7qNtMwA9QVxAt8inrivVGyjGMc95JxXN76YrwJjrOtANoFsgZ5Oy0E0mU?= =?us-ascii?Q?YGNST0RY1XkKtkfNS9NX3NoBI48Ox0jkyc9nCZQbD9kwwFgkyBbsmn+Q0Nzs?= =?us-ascii?Q?TiyoiJFZSG8bCuaHzusZwdecAVIc3c/3EfTCeqjd4pQyz2mmcWqvc54+kU3C?= =?us-ascii?Q?b6qSzbWyKGIlt4gqNvWF126Hs2oAUd0wPUhVJBQFQ2uUoK8y3k1ahDc0owWs?= =?us-ascii?Q?7jFyE37ZUzmwmPHhX1yY+NOHpHgL+XIW04xc9Ci36gjHQ6wnk8ZHHtOua6Wk?= =?us-ascii?Q?wch3qPazt6n9st7PnkB17Hx/ou+qDsn/WvheQKlcQvWa95Gvw11/wkjWOmc4?= =?us-ascii?Q?pyU87LnD1qpeg24yW5lbyiVJJQXNcr0+uCrGAoah9XlzfP8QfBbYOAiPF9Zv?= =?us-ascii?Q?/rNJOzBaOcU5/gGSg7C0KS9zNIN32LpriUlN/nSFuz52NS8D2/Qx5cDvg+0k?= =?us-ascii?Q?jyu0ozkuEVoToJxEA0S3LvYptyM7hy4vfD7Zs6ADJXDNoThbsHe7BcGeql85?= X-MS-Exchange-AntiSpam-MessageData-1: KC23hyY4fxHm4bX6o4mrc5+BbvU4dJYu/FY= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: e82684e2-ccce-47bd-7235-08de50f58ee8 X-MS-Exchange-CrossTenant-AuthSource: AM9PR04MB8585.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Jan 2026 09:41:12.9399 (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: eBqZMqLy7lbX7zX7uafhAj+Zj6cdPK4hgqBEQvt3LJmUR2pe62cf5SRyFwrKGm49hi7fXPJos9e0NRotOySh2g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR04MB7592 Content-Type: text/plain; charset="utf-8" The Mediatek LynxI PCS is used from the MT7530 DSA driver (where it does not have an OF presence) and from mtk_eth_soc, where it does (Documentation/devicetree/bindings/net/pcs/mediatek,sgmiisys.yaml informs of a combined clock provider + SGMII PCS "SGMIISYS" syscon block). Currently, mtk_eth_soc parses the SGMIISYS OF node for the "mediatek,pnswap" property and sets a bit in the "flags" argument of mtk_pcs_lynxi_create() if set. I'd like to deprecate "mediatek,pnswap" in favour of a property which takes the current phy-mode into consideration. But this is only known at mtk_pcs_lynxi_config() time, and not known at mtk_pcs_lynxi_create(), when the SGMIISYS OF node is parsed. To achieve that, we must pass the OF node of the PCS, if it exists, to mtk_pcs_lynxi_create(), and let the PCS take a reference on it and handle property parsing whenever it wants. Use the fwnode API which is more general than OF (in case we ever need to describe the PCS using some other format). This API should be NULL tolerant, so add no particular tests for the mt7530 case. Signed-off-by: Vladimir Oltean --- v2->v3: none v1->v2: patch is new drivers/net/dsa/mt7530-mdio.c | 4 ++-- drivers/net/ethernet/mediatek/mtk_eth_soc.c | 19 ++++++++----------- drivers/net/pcs/pcs-mtk-lynxi.c | 15 ++++++++++----- include/linux/pcs/pcs-mtk-lynxi.h | 5 ++--- 4 files changed, 22 insertions(+), 21 deletions(-) diff --git a/drivers/net/dsa/mt7530-mdio.c b/drivers/net/dsa/mt7530-mdio.c index 0286a6cecb6f..11ea924a9f35 100644 --- a/drivers/net/dsa/mt7530-mdio.c +++ b/drivers/net/dsa/mt7530-mdio.c @@ -113,8 +113,8 @@ mt7531_create_sgmii(struct mt7530_priv *priv) ret =3D PTR_ERR(regmap); break; } - pcs =3D mtk_pcs_lynxi_create(priv->dev, regmap, - MT7531_PHYA_CTRL_SIGNAL3, 0); + pcs =3D mtk_pcs_lynxi_create(priv->dev, NULL, regmap, + MT7531_PHYA_CTRL_SIGNAL3); if (!pcs) { ret =3D -ENXIO; break; diff --git a/drivers/net/ethernet/mediatek/mtk_eth_soc.c b/drivers/net/ethe= rnet/mediatek/mtk_eth_soc.c index e68997a29191..8534579b8470 100644 --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c @@ -4991,7 +4991,6 @@ static int mtk_sgmii_init(struct mtk_eth *eth) { struct device_node *np; struct regmap *regmap; - u32 flags; int i; =20 for (i =3D 0; i < MTK_MAX_DEVS; i++) { @@ -5000,18 +4999,16 @@ static int mtk_sgmii_init(struct mtk_eth *eth) break; =20 regmap =3D syscon_node_to_regmap(np); - flags =3D 0; - if (of_property_read_bool(np, "mediatek,pnswap")) - flags |=3D MTK_SGMII_FLAG_PN_SWAP; - - of_node_put(np); - - if (IS_ERR(regmap)) + if (IS_ERR(regmap)) { + of_node_put(np); return PTR_ERR(regmap); + } =20 - eth->sgmii_pcs[i] =3D mtk_pcs_lynxi_create(eth->dev, regmap, - eth->soc->ana_rgc3, - flags); + eth->sgmii_pcs[i] =3D mtk_pcs_lynxi_create(eth->dev, + of_fwnode_handle(np), + regmap, + eth->soc->ana_rgc3); + of_node_put(np); } =20 return 0; diff --git a/drivers/net/pcs/pcs-mtk-lynxi.c b/drivers/net/pcs/pcs-mtk-lynx= i.c index 149ddf51d785..7f719da5812e 100644 --- a/drivers/net/pcs/pcs-mtk-lynxi.c +++ b/drivers/net/pcs/pcs-mtk-lynxi.c @@ -81,6 +81,7 @@ struct mtk_pcs_lynxi { phy_interface_t interface; struct phylink_pcs pcs; u32 flags; + struct fwnode_handle *fwnode; }; =20 static struct mtk_pcs_lynxi *pcs_to_mtk_pcs_lynxi(struct phylink_pcs *pcs) @@ -168,7 +169,7 @@ static int mtk_pcs_lynxi_config(struct phylink_pcs *pcs= , unsigned int neg_mode, regmap_set_bits(mpcs->regmap, SGMSYS_RESERVED_0, SGMII_SW_RESET); =20 - if (mpcs->flags & MTK_SGMII_FLAG_PN_SWAP) + if (fwnode_property_read_bool(mpcs->fwnode, "mediatek,pnswap")) regmap_update_bits(mpcs->regmap, SGMSYS_QPHY_WRAP_CTRL, SGMII_PN_SWAP_MASK, SGMII_PN_SWAP_TX_RX); @@ -268,8 +269,8 @@ static const struct phylink_pcs_ops mtk_pcs_lynxi_ops = =3D { }; =20 struct phylink_pcs *mtk_pcs_lynxi_create(struct device *dev, - struct regmap *regmap, u32 ana_rgc3, - u32 flags) + struct fwnode_handle *fwnode, + struct regmap *regmap, u32 ana_rgc3) { struct mtk_pcs_lynxi *mpcs; u32 id, ver; @@ -303,10 +304,10 @@ struct phylink_pcs *mtk_pcs_lynxi_create(struct devic= e *dev, =20 mpcs->ana_rgc3 =3D ana_rgc3; mpcs->regmap =3D regmap; - mpcs->flags =3D flags; mpcs->pcs.ops =3D &mtk_pcs_lynxi_ops; mpcs->pcs.poll =3D true; mpcs->interface =3D PHY_INTERFACE_MODE_NA; + mpcs->fwnode =3D fwnode_handle_get(fwnode); =20 __set_bit(PHY_INTERFACE_MODE_SGMII, mpcs->pcs.supported_interfaces); __set_bit(PHY_INTERFACE_MODE_1000BASEX, mpcs->pcs.supported_interfaces); @@ -318,10 +319,14 @@ EXPORT_SYMBOL(mtk_pcs_lynxi_create); =20 void mtk_pcs_lynxi_destroy(struct phylink_pcs *pcs) { + struct mtk_pcs_lynxi *mpcs; + if (!pcs) return; =20 - kfree(pcs_to_mtk_pcs_lynxi(pcs)); + mpcs =3D pcs_to_mtk_pcs_lynxi(pcs); + fwnode_handle_put(mpcs->fwnode); + kfree(mpcs); } EXPORT_SYMBOL(mtk_pcs_lynxi_destroy); =20 diff --git a/include/linux/pcs/pcs-mtk-lynxi.h b/include/linux/pcs/pcs-mtk-= lynxi.h index be3b4ab32f4a..1bd4a27a8898 100644 --- a/include/linux/pcs/pcs-mtk-lynxi.h +++ b/include/linux/pcs/pcs-mtk-lynxi.h @@ -5,9 +5,8 @@ #include #include =20 -#define MTK_SGMII_FLAG_PN_SWAP BIT(0) struct phylink_pcs *mtk_pcs_lynxi_create(struct device *dev, - struct regmap *regmap, - u32 ana_rgc3, u32 flags); + struct fwnode_handle *fwnode, + struct regmap *regmap, u32 ana_rgc3); void mtk_pcs_lynxi_destroy(struct phylink_pcs *pcs); #endif --=20 2.43.0 From nobody Sun Feb 8 14:59:30 2026 Received: from DUZPR83CU001.outbound.protection.outlook.com (mail-northeuropeazon11012057.outbound.protection.outlook.com [52.101.66.57]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B4C181F419F; Sun, 11 Jan 2026 09:41:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.66.57 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768124501; cv=fail; b=QijBZRBok9NDp4ce42fg5pAMTqkFkRhAcETZ6bvOgVrV5iytQuAdhmBJk35Lz097NGmpuDgQpy6JM2F4qkw/MiqxXIp+shwOa4mmIq9JIu+brWI8SvqJeL1bWVYc8aFfIyBlWMbHwphd25KVf1ALUSlS0jmEW6TGOiLjzVpDoKY= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768124501; c=relaxed/simple; bh=e2camJ5lgJM4FJmxdPZqFJEYOWJ0akQbhpgf1gpxr2Y=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=vBBkOcJRUEExglTlFqjMa2e7Lnrs3AsYAFBSyj8bk0itM8u1OmQ/2vnORE/fhW7m7cjf6OuOfAoxFOs5gmvxwBEjl2JwVNvuDA3JgN5CIhWaDgeuOMrneI3+G4kq237takvoSNDcZ/iRDfOg6rQFKIrRUPiUTSQkCxsv68X+pDo= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b=XYatEM5a; arc=fail smtp.client-ip=52.101.66.57 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b="XYatEM5a" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=VhKDh55Q8Xfd3Wz11JTKQTOWKKo128tGWf/4DRCVPqq0D023L9qesRu66OOtwI/QmXYNU4HGIbTavrQJfY091CYwazhci+NmP3IosAGR8e/PwYw9aKA0KMCpkAZZtBoPgb6xD11jP+Q6E7+a/Irfu5mJd9dyin/LZytvYba6QasU4MY1qp+SNbgXLfyMDHpOfeCmm9V78EQclTtTz2ZsMX6SJFbluzLRbCuyjKAHwS2QPYhkQkfXckQlZ/g5frmZptQswk7Gipyyu4rb0qSV7Msyn41FbLLazh11z2UEKufi4/A4K35IGkcz/o7zCpGHL41mqt78XV7Ke8JIhm7g+w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=aTAmZ/5tqjmnEV/2MiGo5IWWUzc0YCXJAidzq74XjOQ=; b=YCzdY7ktQxyqu0Flxmc8o6U9XOQlDlU6hYsIz/5tIICYYNLVSt4FLNLk8sks6hjy6mpUJAfkCFFitBJ9chCrOEFszm8PXgf2OFKBiL8t35QJYWyQqJjXyfkKPFmn67D9PZ/PcCfQXxOfnYJoyzD1bn0OgHtrXipl4GTn4saAhIxnEnPbyYL270WdDBFqnx+Thv1+Rl9z6X/jNbWvB92e+aWpScSGvW1N29m33RwqB4uIaTjh9k91XLtQ5yT9IrPVTR53LGtBJwLXMOsu35hgGtGQvah6Jnb8+EF+hZGkD75Pjc0nWv3YUCR9cef/qCHjbv+8787jTuX7Sl/cc8N8xA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=aTAmZ/5tqjmnEV/2MiGo5IWWUzc0YCXJAidzq74XjOQ=; b=XYatEM5a8Bp10WEdyM/YLgKM3LFq90k0F/2uGrm+dVB84asvhlYCvawsDPXndpyXFzte8XbgH3RmfDBFiQuYvyRi9rmTwXD/RKfIFSlhLwq+KMiUik4QQkv5txWmewM8nmdtvV9BddU1MQEA3wajFVdEDI7PUoDJ35cCf3f2+ex/JfwVli5Cvv+uOh6SPJO02U/I3bdGqYG9d9Doe3iGW9eIXSepiYmB3/9DCeoccmq1rXGoXtR6gocaOAzJVe3chVL/w1zMfYTXLLpELl4r6vykOMqG7O4lBEJqUL1ClM4rGtl78lMQah1OSoiIKcQ2Ar0S9ed0yMzFbteqDzsdZA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from AM9PR04MB8585.eurprd04.prod.outlook.com (2603:10a6:20b:438::13) by AS8PR04MB7592.eurprd04.prod.outlook.com (2603:10a6:20b:23f::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9499.6; Sun, 11 Jan 2026 09:41:15 +0000 Received: from AM9PR04MB8585.eurprd04.prod.outlook.com ([fe80::f010:fca8:7ef:62f4]) by AM9PR04MB8585.eurprd04.prod.outlook.com ([fe80::f010:fca8:7ef:62f4%4]) with mapi id 15.20.9499.005; Sun, 11 Jan 2026 09:41:14 +0000 From: Vladimir Oltean To: netdev@vger.kernel.org, devicetree@vger.kernel.org, linux-phy@lists.infradead.org Cc: linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org, Daniel Golle , Horatiu Vultur , =?UTF-8?q?Bj=C3=B8rn=20Mork?= , Andrew Lunn , Heiner Kallweit , Russell King , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Vinod Koul , Neil Armstrong , Matthias Brugger , AngeloGioacchino Del Regno , Eric Woudstra , =?UTF-8?q?Marek=20Beh=C3=BAn?= , Lee Jones , Patrice Chotard Subject: [PATCH v3 net-next 10/10] net: pcs: pcs-mtk-lynxi: deprecate "mediatek,pnswap" Date: Sun, 11 Jan 2026 11:39:39 +0200 Message-ID: <20260111093940.975359-11-vladimir.oltean@nxp.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260111093940.975359-1-vladimir.oltean@nxp.com> References: <20260111093940.975359-1-vladimir.oltean@nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: VI1P189CA0004.EURP189.PROD.OUTLOOK.COM (2603:10a6:802:2a::17) To AM9PR04MB8585.eurprd04.prod.outlook.com (2603:10a6:20b:438::13) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM9PR04MB8585:EE_|AS8PR04MB7592:EE_ X-MS-Office365-Filtering-Correlation-Id: 23914a17-3738-4912-3f8f-08de50f58fea X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|19092799006|7416014|52116014|1800799024|10070799003|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?0AM3NsNcYNmTab5oZ/Xke9cdM26406FjdriP4qWBzK80T1uny+rwhncJufPU?= =?us-ascii?Q?hE+2g/jDYv3BR0JmTF0+lEL7EtAos5AHiSOLasw78amFKvfa6TDwnsRrEHNX?= =?us-ascii?Q?G8amZIDnU/OqI+LbugXAHBL2EZ+PEIrnwEyax4upwYFhdNakhTgM4eYRMYGp?= =?us-ascii?Q?N33/YQFj8toLOYTGM+3HjFBhCjNaiqMru014cTQxGgfGPesDgpGZOfVNoasW?= =?us-ascii?Q?K69Ug4UZPfUQGXHetnhWzaAZdpALwkYi+H13coqlUhlkDa/Fbgc5W0/ld/SO?= =?us-ascii?Q?aPTfYE4lrpz9yRSikeZq3MWLTmXICo/eGw53wRXuj44hO4gIuNtogrGSNJa7?= =?us-ascii?Q?kgwkrYMwpOgx12VCVBJiNS4R/Iq2VUTdQoKQTDW2CqpKeW/HYlwJrO8O1rL8?= =?us-ascii?Q?slaAUcE7SOOxmYibXAoy7xEqTbCj4VTkojOkQHGSH/O2P8iu4WiP3nqr9cVP?= =?us-ascii?Q?E3aZABBeJBW8qlOMWiTRfBPM2P7N93JnRuJCopt2iAgu6QW9bunBG9DWgYLZ?= =?us-ascii?Q?Ujn+RNltECoUJV9o59ofopuv3/4VV0/G9TEyWdVia542fTBjTzclgul7fYni?= =?us-ascii?Q?O+2dePk5x2kwYYRR5SqlMZHmFgzIl+UtXnsxFtNfEBfgcQCHXkX/BmJC8pn4?= =?us-ascii?Q?JedFsLYfdVjXho7IIXf/iae0ecCoWk/kAEBi5GFl2b4ZHNwp9WJFUU1fI8+S?= =?us-ascii?Q?z2zclCGTO6GXu+xMV8lDfrHR8KLU/u3UcLTwjCiTEilzLNewNpFpSk6iEUR0?= =?us-ascii?Q?yAiIP5mJgRkKq2aSJtm1RK+QkrJmYuSLskQgOGf2/kqDsdwl7SeO3rjG+vCA?= =?us-ascii?Q?L9QTTG/Gh7U1aI1QjaGxJzrzgKTDnyYXRsg1lC0eBey19XFj8NSaFLtXz35r?= =?us-ascii?Q?qDCgtet5W+Q2VzmPXgj50zQr7A4mJP9p7a8WEI97GGtgXleLphNDVZiJwTD9?= =?us-ascii?Q?Z6djR89rtnLbexPAA6A9yBUNQpyk2IwamfSDwLmKznhPvVUjkoVhtK9FB1Zg?= =?us-ascii?Q?Xhk91T0Lh+Ma1kA397jX3UEQ+nv3noDQWhe6+gFFBh+LufKccbqjP0PCK3bC?= =?us-ascii?Q?NFO5AJqru5CdF7ZVdUO/I+vSlAMUJqcsqaoSbibGLwvZokPFtcJ7KUmIKvna?= =?us-ascii?Q?wMVe9hv0kTTGDn5F77akpL1Cx6qY7kZMZxo6yIXbdCAmLl/nP4ZLM0U//Bnd?= =?us-ascii?Q?z4Zg563nrtfQjPqijU80XbD0gbiVIYs+hbpaAwaQo7B8WjYLDz/7Smo5PfMJ?= =?us-ascii?Q?0TAj8HXeirJIL/U1q/s6WvGHiEhrIktt3UYqvl20uAGq6NhGJajEpUn24rd/?= =?us-ascii?Q?JXWyneNvjMZEHRcyq+DaPpz4+HC6afSjInEOP1MjQAjxTwZWyL+fmyg8Zt9C?= =?us-ascii?Q?3U+oTx3lHR7cgmgNr6KWI3Had/w5psV5OQyCaRLpKPUxFq8rFf2/gQJFa0Hj?= =?us-ascii?Q?JCfcuYcc+mmmv52s+17HxIKC68CVO8KueVI1VsPWLc+fjlFG24mhSw=3D=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM9PR04MB8585.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(19092799006)(7416014)(52116014)(1800799024)(10070799003)(376014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?jhAcsCXyu1hhAVATM7Oi9YGcZEHHf4tRAIBgH9VhmQ/pbOop1zOvtFxT0YMo?= =?us-ascii?Q?+RhqG2BDGl9ezOzOgB2YoxiKgpYPrk4J/GVt54mClJwaH0nkmLZNBJpSkEBT?= =?us-ascii?Q?loPgQyju5Wp0EE42J5hOQyE5W9Fh9OxXNkqNqNT/mFVYLmeqamQXekyI7IMg?= =?us-ascii?Q?gBDIS3B+EMScISEfyccF1g7OcGvnsm7UKgPuKYhxH6j0X9BKEAiO1qIe3qQW?= =?us-ascii?Q?CTQ2ThD9uMr0p0dW93hSL+T7m0Y41TiEzRgSnTSvJmrpJSBF+VohRdRE2igE?= =?us-ascii?Q?490gpLTfTPcXNVhh8oVfyESERwS+NeYzTiWiu35GEt05eW7ag5Vp4LQVtubs?= =?us-ascii?Q?9YJ9N0aXaAB0Oj+uBA3Dqu7qnwlbsnHW6I+QQfwGh0h+aNsN4dlXfCcAKcyv?= =?us-ascii?Q?nM0DCdkN1lR6Cu60rbKxJTE70toQqbDVNW1c3yjsmoGNAbEUgwJyG9XBDkwh?= =?us-ascii?Q?fU05eoSd7W4hkev+clqhcPIZHkKknHsjvkOmd8jFqA9c52ug38jJomZ5mhSX?= =?us-ascii?Q?TahpvvCbqFT42dvybnfYFTTa3BgByi8VE93Ii57/2QyplEUARJDwoN8wCI3d?= =?us-ascii?Q?oe7q+hbuNbxi03iTB9mrVRpt/vgRSfx8S4H4dwduwh7aPbKvvi4r6vzD+AL9?= =?us-ascii?Q?Lp/IhhBgTJRbR0PpUZczkQw2XhkE6zSe0DPZ9pisLeKPtmLlQP2lrDFqJgRB?= =?us-ascii?Q?QDU2Jr/8EHxvM9cN+Lu7XNFBPZLuk3R0hbxQ8/6NU+sVFWhpi0nF3/R3gXDp?= =?us-ascii?Q?Off2Bbjx0WYfJ52+QKAFVPzEKK85K1njMedbwCno5s7FkRm9MVjYE2nKb7fX?= =?us-ascii?Q?h/zNht0JDdFTQ4tcyq3kRGdIqAGh7FiyuA8F5KUoNH56wuVz4HcGSCekhB5v?= =?us-ascii?Q?Mf8q7xrpf4Bl3PqpPISIhgcafFLpxk7psbICv/SmJZi4WjZvAR+rf17NvmK/?= =?us-ascii?Q?QPFnFbtE6xoA59ut0q9qJtEdNMCSs107+xbLI7UcmgjFTx3rnJelfW3aKrMI?= =?us-ascii?Q?tWaJUQ4xIL6EVMkqffFczCnCxLekOyKN5eGn8Sz00S7HRmp251yp4aZyRGsf?= =?us-ascii?Q?nCV4kwhkpud2SEK8fxFXaSJ1ydDpGJStiqTjtS2IBWro8r+onVThh6UgoJ3r?= =?us-ascii?Q?c8/UOlYOIYTRhGY6Iov/4oan8oNYDoOw6sJwkPaEqFZzO0W68mUROzlbgShh?= =?us-ascii?Q?atjlasuYz5OurGxqO2ymWlKPNu4vyW5O8Qu7nXVneMRWM4dx7YFNjIEz9fKy?= =?us-ascii?Q?t/Pjv0vg2xgZcd8ZGsu6GKbHHcA4EIp6zaIHH8Giu467z0C/OFDNwuNuulD9?= =?us-ascii?Q?WMo/s5ddj7JY28jTkCEgLt4vym70zVJYcVuSYpnh1FOGlbZH7BG4FKKbpRbP?= =?us-ascii?Q?6tb/L9hJilyns3W11BwnVv/P54cHI2nYUkylJznXcs/DjwBseGAlpXXgP7QQ?= =?us-ascii?Q?52vA2FTq4vS8JKun1uVy8Ug5XlrMukoN5lDus8LGTP247ws00lsttQ5fIQCB?= =?us-ascii?Q?03Uo2aIFbfpVdzZsH3/+XjMeo76xXbTn5kiHOkeOfh4t5fEaWdsI2S/VYNju?= =?us-ascii?Q?kQ388ZFelWzW3KYh+4mCrqwrVnaBBD/N55NzaVkEMgzycEkjUhFSGqd5IlTJ?= =?us-ascii?Q?hcB6IAgHC/K/ZpB6aaZZgrNmrbM4xc0LvGctUKY8Vp4IB6YJrFYlP7YwhJk4?= =?us-ascii?Q?6MjVNrlNq7i3zXgB29RGssiqRMuAeTUUsW6TkWzbE/W3bRf0g+gp6rakOFBF?= =?us-ascii?Q?y62KOCEpuNFxfc2mCt/3dZ99g/HwL9oko6wmSmVQrqLXCTirCPIa4LrWniI/?= X-MS-Exchange-AntiSpam-MessageData-1: 3r5i+xguCCqBr5GDstiOcTRfm2JtpqZ2hfk= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 23914a17-3738-4912-3f8f-08de50f58fea X-MS-Exchange-CrossTenant-AuthSource: AM9PR04MB8585.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Jan 2026 09:41:14.6229 (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: /0SUqxY/kLdZSwuv8ux1a903thKISnMIV2957ctETC/mpfIeR/IihmU54p7X5SzXbsRYQ63UMzX83k+zW3JKiw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR04MB7592 Content-Type: text/plain; charset="utf-8" Prefer the new "rx-polarity" and "tx-polarity" properties, which in this case have the advantage that polarity inversion can be specified per direction (and per protocol, although this isn't useful here). We use the vendor specific ones as fallback if the standard description doesn't exist. Daniel, referring to the Mediatek SDK, clarifies that the combined SGMII_PN_SWAP_TX_RX register field should be split like this: bit 0 is TX and bit 1 is RX: https://lore.kernel.org/linux-phy/aSW--slbJWpXK0nv@makrotopia.org/ Suggested-by: Daniel Golle Signed-off-by: Vladimir Oltean --- v2->v3: s/GENERIC_PHY_COMMON_PROPS/PHY_COMMON_PROPS/ v1->v2: patch is new drivers/net/pcs/Kconfig | 1 + drivers/net/pcs/pcs-mtk-lynxi.c | 50 +++++++++++++++++++++++++++++---- 2 files changed, 45 insertions(+), 6 deletions(-) diff --git a/drivers/net/pcs/Kconfig b/drivers/net/pcs/Kconfig index ecbc3530e780..e417fd66f660 100644 --- a/drivers/net/pcs/Kconfig +++ b/drivers/net/pcs/Kconfig @@ -20,6 +20,7 @@ config PCS_LYNX =20 config PCS_MTK_LYNXI tristate + select PHY_COMMON_PROPS select REGMAP help This module provides helpers to phylink for managing the LynxI PCS diff --git a/drivers/net/pcs/pcs-mtk-lynxi.c b/drivers/net/pcs/pcs-mtk-lynx= i.c index 7f719da5812e..74dbce205f71 100644 --- a/drivers/net/pcs/pcs-mtk-lynxi.c +++ b/drivers/net/pcs/pcs-mtk-lynxi.c @@ -11,6 +11,7 @@ #include #include #include +#include #include #include =20 @@ -62,8 +63,9 @@ =20 /* Register to QPHY wrapper control */ #define SGMSYS_QPHY_WRAP_CTRL 0xec -#define SGMII_PN_SWAP_MASK GENMASK(1, 0) -#define SGMII_PN_SWAP_TX_RX (BIT(0) | BIT(1)) +#define SGMII_PN_SWAP_RX BIT(1) +#define SGMII_PN_SWAP_TX BIT(0) + =20 /* struct mtk_pcs_lynxi - This structure holds each sgmii regmap andassoc= iated * data @@ -121,6 +123,42 @@ static void mtk_pcs_lynxi_get_state(struct phylink_pcs= *pcs, FIELD_GET(SGMII_LPA, adv)); } =20 +static int mtk_pcs_config_polarity(struct mtk_pcs_lynxi *mpcs, + phy_interface_t interface) +{ + struct fwnode_handle *fwnode =3D mpcs->fwnode, *pcs_fwnode; + unsigned int pol, default_pol =3D PHY_POL_NORMAL; + unsigned int val =3D 0; + int ret; + + if (fwnode_property_read_bool(fwnode, "mediatek,pnswap")) + default_pol =3D PHY_POL_INVERT; + + pcs_fwnode =3D fwnode_get_named_child_node(fwnode, "pcs"); + + ret =3D phy_get_rx_polarity(pcs_fwnode, phy_modes(interface), + BIT(PHY_POL_NORMAL) | BIT(PHY_POL_INVERT), + default_pol, &pol); + if (ret) { + fwnode_handle_put(pcs_fwnode); + return ret; + } + if (pol =3D=3D PHY_POL_INVERT) + val |=3D SGMII_PN_SWAP_RX; + + ret =3D phy_get_tx_polarity(pcs_fwnode, phy_modes(interface), + BIT(PHY_POL_NORMAL) | BIT(PHY_POL_INVERT), + default_pol, &pol); + fwnode_handle_put(pcs_fwnode); + if (ret) + return ret; + if (pol =3D=3D PHY_POL_INVERT) + val |=3D SGMII_PN_SWAP_TX; + + return regmap_update_bits(mpcs->regmap, SGMSYS_QPHY_WRAP_CTRL, + SGMII_PN_SWAP_RX | SGMII_PN_SWAP_TX, val); +} + static int mtk_pcs_lynxi_config(struct phylink_pcs *pcs, unsigned int neg_= mode, phy_interface_t interface, const unsigned long *advertising, @@ -130,6 +168,7 @@ static int mtk_pcs_lynxi_config(struct phylink_pcs *pcs= , unsigned int neg_mode, bool mode_changed =3D false, changed; unsigned int rgc3, sgm_mode, bmcr; int advertise, link_timer; + int ret; =20 advertise =3D phylink_mii_c22_pcs_encode_advertisement(interface, advertising); @@ -169,10 +208,9 @@ static int mtk_pcs_lynxi_config(struct phylink_pcs *pc= s, unsigned int neg_mode, regmap_set_bits(mpcs->regmap, SGMSYS_RESERVED_0, SGMII_SW_RESET); =20 - if (fwnode_property_read_bool(mpcs->fwnode, "mediatek,pnswap")) - regmap_update_bits(mpcs->regmap, SGMSYS_QPHY_WRAP_CTRL, - SGMII_PN_SWAP_MASK, - SGMII_PN_SWAP_TX_RX); + ret =3D mtk_pcs_config_polarity(mpcs, interface); + if (ret) + return ret; =20 if (interface =3D=3D PHY_INTERFACE_MODE_2500BASEX) rgc3 =3D SGMII_PHY_SPEED_3_125G; --=20 2.43.0