From patchwork Wed May 2 11:23:38 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Vicentiu Galanopulo X-Patchwork-Id: 907515 X-Patchwork-Delegate: joe.hershberger@gmail.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=nxp.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=nxp.com header.i=@nxp.com header.b="b64VJAMF"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 40bbYM32qkz9ry1 for ; Wed, 2 May 2018 21:25:27 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id E91EBC21DB6; Wed, 2 May 2018 11:24:51 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=BAD_ENC_HEADER, RCVD_IN_DNSWL_BLOCKED, SPF_HELO_PASS, T_DKIM_INVALID autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id A7ED4C21DB6; Wed, 2 May 2018 11:24:43 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id C8857C21C50; Wed, 2 May 2018 11:23:59 +0000 (UTC) Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-db5eur01on0087.outbound.protection.outlook.com [104.47.2.87]) by lists.denx.de (Postfix) with ESMTPS id 54616C21C29 for ; Wed, 2 May 2018 11:23:59 +0000 (UTC) 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; bh=KewZ6n0Y2gTxMBV3zQQnG6NRCQTidvwmaQsmBET2M8I=; b=b64VJAMFkGcYvikZdxhDEr0s6E+8j0EYG4BBjY0ShLfSzYE0IMdmk43fKnQmvipxTtDAFaVKwR8M48+VLvctKoCGD/ZSPGapt5Q8ow5F7Jkrcw7Lin2GPZ5TFFsSny6kikYtGQ299Hi67WhtqyoIJl7Fel1wflpTQg6CKUOb2oY= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=vicentiu.galanopulo@nxp.com; Received: from rhuath.am.freescale.net (64.157.242.222) by VI1PR04MB4125.eurprd04.prod.outlook.com (2603:10a6:803:45::26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.715.18; Wed, 2 May 2018 11:23:56 +0000 From: Vicentiu Galanopulo To: u-boot@lists.denx.de, joe.hershberger@ni.com Date: Wed, 2 May 2018 06:23:38 -0500 Message-Id: <20180502112338.20957-1-vicentiu.galanopulo@nxp.com> X-Mailer: git-send-email 2.8.3 MIME-Version: 1.0 X-Originating-IP: [64.157.242.222] X-ClientProxiedBy: MWHPR22CA0005.namprd22.prod.outlook.com (2603:10b6:300:ef::15) To VI1PR04MB4125.eurprd04.prod.outlook.com (2603:10a6:803:45::26) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(48565401081)(5600026)(4534165)(4627221)(201703031133081)(201702281549075)(2017052603328)(7153060)(7193020); SRVR:VI1PR04MB4125; X-Microsoft-Exchange-Diagnostics: 1; VI1PR04MB4125; 3:q/L+WFplW+JgkAsXl1HS4sociogk+PU354B0pjxV4AltjBk8io5Mrv7qXPQhJObCPS8YpfF3oZlz7ezCpw3xzLG5Bdy8Hl8VSeX0ydHDOBPYUd5QmuM7vkD8qeB0iqcJvL6NULmzAY7Wd/IPMzzteT8VC1xsnOYr4EnJ/ClJKq/++N+P/tWWbF+ELQeCNz3hlYUuOXjfQJy9ybqXrYIKu4SsX2XeL5rP8DdU2mCc0kGMfKZDZfDIVm9AMelfKy15; 25:3XhM8kXBE/Lm5NPXZP7qxx587pkiYZIJ97od1LpLjDwyU2NGJx2OcreKFWr2dxv897PdAtc9XVJJhzfTptRB9rSo49I45oek7OQ9nnVDCqB7Q+q6YRqvramEWnTKn8NGClARGUUk8mpIVHx4z6AsXXUUEl80piNjgPC3kB20IfkQp/UBKloB3ahqkJQorfzMEPHPvpT5sZPmTfHN9jCiSYj2UT84K1+QXb9+zdC8IE/Ox8LkV56vB8NW6TbfCZX849xb+lyMqPjYQziWywx1KFcz2eJ1x54Be9xXvtLPETly7B3oFeswg6DrRKmNuZcTJV0wOpgnzJ+Wi2+q4MBn0g==; 31:qlqMxbisx7ksglXLx+skiHpE77AgDzW4YkpKzDWm4JQ45NG3Te+D8VyzelwImpz/dEsiTrEzi+aXqUyQRiEpxc5Sbt6MrcYB0AvAGDq2yHvGnULeyD/iXFDJRCtSch0pODSKTcuxbC3GOVm0Chd8smHf/bTa2q0ZV4+bTCJcWSc8y4TY/zeOI2y/b57M6s99pfGnFRpRzqH0xxBPcXQfF57f12xwH5eRRMKG33+vmKI= X-MS-TrafficTypeDiagnostic: VI1PR04MB4125: X-Microsoft-Exchange-Diagnostics: 1; VI1PR04MB4125; 20:UUqHzgk6ElqhZ3F8KRq0gLxvzCniXKYtxRF2U2RPaZk2y3lVMph+WwYZUFeLhsAryBIBdw77FC1OiUr3cLRXD8C8KZ1P+zVUUOHR0VBkvNoU6juNg/BLK84flFm4ZcQMU12BjboRQ0gyL9CA//5ZpvaQBS/lZHhtBD9VRE1NEsY/1pvRZRu0qHIACDE84XnURgnKBxdhHSeq/dQg6Moihm7uRjXZGG2TjBhHwE/3Y5kWxc+BbakcbOU0sxo19cfXB1oMyP82xi88RW6ZEYYOVdMZw+AWuKw0j1ZDYMA8KfeZbRaByVy9kZtfVYmQzZSsRRMRfTsbrlLzLG/2By1ygfV97ft1BdS3Pze6WlZpV5AHLWrTh5JmthhSqo8DTan4WLIYeN32PEEDGj2LxFGGJPWk+W0yi6cQ7BhDg0K0znAx+0slE/81hholKaboIJ6OC55bQ3a8kbZ1RPB07HqrEg7pOIWYP3KGKsboldwmfAKtbb8LcYaKLAcBzDcDnZvZ; 4:9/YwX3usgmG5QHaxQo4OiDWHeTpJZWkxKz6rkU4v+B5a9esGNg+r6HloaYFz+2C0Jp1YPQus7CBgEc4lbY5mS2c8EAXGfisLBRa8uhH8LcJal3Vy7B418Jr2c9VhQDVCmfGe/hKxIOo/0iAGdmOo+FuMfffotvnbmtnhGfQSYT7OYlgBsjLqkigT7GWZsRHQHUgrdUURocC/nJeLSvErVrv0evd/r2qUWLlM6le5OCgAzXlcGUBKzRoGKYTJPLiHKip9kOyL78noyVNbHzB6AUzzLosmn7jObn40hyrTFm1KSahG/fs3ydoDUEyhbr37 X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(185117386973197); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(93006095)(93001095)(3231254)(944501410)(52105095)(10201501046)(3002001)(6055026)(6041310)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(20161123564045)(20161123558120)(20161123562045)(6072148)(201708071742011); SRVR:VI1PR04MB4125; BCL:0; PCL:0; RULEID:; SRVR:VI1PR04MB4125; X-Forefront-PRVS: 06607E485E X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(39860400002)(366004)(346002)(39380400002)(396003)(376002)(199004)(189003)(476003)(5660300001)(25786009)(6486002)(50466002)(48376002)(2616005)(956004)(478600001)(6116002)(26005)(6512007)(3846002)(105586002)(186003)(16526019)(68736007)(4326008)(106356001)(44832011)(53936002)(1076002)(6666003)(51416003)(52116002)(575784001)(86362001)(97736004)(43066004)(81166006)(81156014)(16586007)(8676002)(316002)(3450700001)(8936002)(6506007)(386003)(486006)(59450400001)(47776003)(7736002)(50226002)(66066001)(305945005)(36756003)(2906002); DIR:OUT; SFP:1101; SCL:1; SRVR:VI1PR04MB4125; H:rhuath.am.freescale.net; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; Received-SPF: None (protection.outlook.com: nxp.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; VI1PR04MB4125; 23:mkQPo22IC5n2tDwi+QmAP/fAzGwvSio3MO7i7+Fgz?= IaJmoDkwZxynADAhkB4RcXhiNCdhQh6ciDHS8zYo2iFg0cEvZDy6RBrynmkpJ5bRKqC6pqipopXn/rbMKlC6y9ISuXVr42djQa4FVVVYQziA5a0R0jtJdNo+HU4ppC3dYvEaQ3VzNoLdIE1qPpNef0GwgMGoLkvIDHTK623Lvm8Tsv2HZr3a1Zhk4UvmQOEWz9s6YJG6mTM2ZDKXwld9w8pGKHPhF96sxI6C4fTZHrbxmE5YrBTWk2im3m9l7YjOQd4Yg+LioxmavU0jvDRD35/BT6kjgcHcY58Z2YvpkCeWNzqmqZnnJevywnVdbPSL/cgrYT3cepq9+amnRK3rtwHoLI2xhM2JO/IdkiHimLulbxnV5qmQ3bpUWyC56XknaMuxYbi3GheCtWTZIP1vpfu3MCVZ33Enf3k63WgVr9t3hIb43hcJKmW3Odr8igTb4vDIRrHRNXE2bByWLGYefiW0eG1tZXMB1l6YjGg/WdSb5Fw1lqvzYrtha3rDPeryqRquaIzPZXB6Yp39G5Ay99wZu8FBint5+ljV+mzm1HKw2iKLxIeV55HqHb/dgoVAmlkzMYLh0ieDLZgXQHj3+59tJpR7M7ZBiwxzMkRUtQY6D0yocuXbN7B15tSc7Hs2d9jxITqjsbaouDd0SH4Ed7HLJE/iN4OHUCY7EpTIDWSKVKCwa5n1UK9I9ikduVIdjtRd1QTcVDMmkwAEMQjDHi1gFFxTBOfphKsqd2uj4SJQ8RBKXygcnj67DXUGkExBWR8dzqEbB/XO+EsTqHxWNweteStfeijTKBjerULIBlCjzLKqR+KYBkv44df+J/kSjCUPIpzBvxTx6XH33bUOEzWI5pmry1nJhmv/qMTqZ+CfcJfpLC2rRG5Z6h6nVhKGpfoNlpJqFzzbvD+fJjSTPUfABUoXzdln+rKd721il/WMd1KIcjr7VnBl6V8CmwrBZzh3LfpDBtmexUigJdPuCkS77ze/bW2ssvzsGZO5crvGynWF1iyBQKrDyD6+lCiRRrV2S7RSrkzwCQ0yWi0MQKqPlovUqUu72Fua3m+0Vrh7/UdAOGSFzWbA0RJWuQ5ExUNs15XcThEQ1fvj8ZJd/R249COlMliXdiq6bZw3UOytm1mYGc0TLhJXccXntLFXsejRItiJoC0vSVcJ9yZWQhIVVHE9V6HvLHlzbwiB5hAktwRroblpADF0+JZgpceZSw= X-Microsoft-Antispam-Message-Info: RgiyaEMfkQVC3v3i1kSTHVVpjIu0SontzdX0/cIYwLO0LS6yp8fIyfTSkTjGzZ/z5+b8zEexEreoq+UXv4Lsvlyd+bopFrY5WNx4SfgT1zbghiZLw3xK6ftSB2RREZQBtuhplOxPtH5gGaZtRiPEaJaEjZkFRAHmEjY5M7DGhlilNI4AeFbAof7iJhwZ/MUh X-Microsoft-Exchange-Diagnostics: 1; VI1PR04MB4125; 6:f9/XX7X/uKzzX6LwiB164DT9NAAH308cokfjZ40TCT1cGoZCR/vNNPO9IWFhdebYJ1tHOHxjc+atQTKO6Lnp/jXdnf26WCP+xhItH/25U+UkGvFksSkJiE9bBN9IJ6UGy1HTPRBKum7iEGCOXWC8Xm56IYobS1Sax0YZ21af8/1FiAbxiq9hiaoBmdm/72apFCrvgNpgGpzXVPQoxh1bxKsMd5aYsW9Ai2lISozODPzJLDK348CUhb1qZs5btBgCEktXQpcVxANV5gqPhRjPWOoyk+RESelzT5nUP0TU3YsZK0JguPWSsiRLo+M4cr3KxvKKWveVycyjIQhwq4/EPLfOXolNpQ4s8Fhs++JoKRsIBBzkZ2F+CjESFnR+p5vKSLar035fAHyPh9EAHHD5V+3zVhsbGrGmc6ZuxOGrN4pYulop9YUU1CdX+EAFaHTl3NTG6jNcYT21hF6YDsEDLQ==; 5:GAs9uZwYQsjySO/wec+0npA6uWOv6BunsmgkMJwPjYeKuUQMLitiDtieCqe8VW7nEOQcWnv4FEoYWXgf91Kbz4TfuB0baOGXE76MUtCa1UiwjDLn9wGDwWdEGmkYAzx5LhM0gZEr+Uvr5ESH/Y4revSihPG+KbjjiUTXcgQUcM0=; 24:yA4QngIC/dg9nVztF0QrtdEkiAIsRXQn5gtfo7M68srl10q7PQAZzhB6VR4Ek4N9T4U1uvVTbBL3VNkWw+Trfu+BnTVeWLJj8Sdu2iGf1wc= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; VI1PR04MB4125; 7:aSCIXfWIaeR7FE6bB7SOqQCfIqz+sFho/oPxMqeU3J4KsZMjWLWS5VbnyZDB9HxEgAk5kzymZZEoMungpSgQx27mpfSuE0I8uC79pbHDMAgREZUUOdNQoRq2DFNLFjIVFw+8eOWLJkoU7vY38YvdDXFAblQdu664dtRYIiRsvFiGSGtG+kgmkJavQLG1NfjrNNSIvrKy0OBlbUQYqfNslkniE/CO9UyYxOUvQCZCCXzils0NZ9iDQurUJrnFqHTD X-MS-Office365-Filtering-Correlation-Id: 92aad15c-f2b2-4141-511d-08d5b01f324b X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 May 2018 11:23:56.3470 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 92aad15c-f2b2-4141-511d-08d5b01f324b X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB4125 X-Mailman-Approved-At: Wed, 02 May 2018 11:24:40 +0000 Cc: priyanka.jain@nxp.com Subject: [U-Boot] [v2] net/phy/cortina: Add support for CS4223 PHY X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: vicentiu.galanopulo@nxp.com Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" Add support for Cortina CS4223 10G PHY - As per the CS4223 specs, an EEPROM module is connected to the PHY. At startup the PHY reads the firmware line and tries to load the firmware into the internal memory. - This driver reads the EEPROM status and checks if firmware has been loaded - v2 - change return value of cs4223_phy_init from -1 to -ENOSYS Signed-off-by: Vicentiu Galanopulo Acked-by: Joe Hershberger --- drivers/net/phy/cortina.c | 48 ++++++++++++++++++++++++++++++++++++++++++++++- include/cortina.h | 4 ++++ include/phy.h | 1 + 3 files changed, 52 insertions(+), 1 deletion(-) diff --git a/drivers/net/phy/cortina.c b/drivers/net/phy/cortina.c index 9cb3a52..cb6dc56 100644 --- a/drivers/net/phy/cortina.c +++ b/drivers/net/phy/cortina.c @@ -285,6 +285,38 @@ int cs4340_startup(struct phy_device *phydev) return 0; } +int cs4223_phy_init(struct phy_device *phydev) +{ + int reg_value; + + reg_value = phy_read(phydev, 0x00, CS4223_EEPROM_STATUS); + if (!(reg_value & CS4223_EEPROM_FIRMWARE_LOADDONE)) { + printf("%s CS4223 Firmware not present in EERPOM\n", __func__); + return -ENOSYS; + } + + return 0; +} + +int cs4223_config(struct phy_device *phydev) +{ + return cs4223_phy_init(phydev); +} + +int cs4223_probe(struct phy_device *phydev) +{ + phydev->flags = PHY_FLAG_BROKEN_RESET; + return 0; +} + +int cs4223_startup(struct phy_device *phydev) +{ + phydev->link = 1; + phydev->speed = SPEED_10000; + phydev->duplex = DUPLEX_FULL; + return 0; +} + struct phy_driver cs4340_driver = { .name = "Cortina CS4315/CS4340", .uid = PHY_UID_CS4340, @@ -299,9 +331,23 @@ struct phy_driver cs4340_driver = { .shutdown = &gen10g_shutdown, }; +struct phy_driver cs4223_driver = { + .name = "Cortina CS4223", + .uid = PHY_UID_CS4223, + .mask = 0x0ffff00f, + .features = PHY_10G_FEATURES, + .mmds = (MDIO_DEVS_PMAPMD | MDIO_DEVS_PCS | + MDIO_DEVS_AN), + .config = &cs4223_config, + .probe = &cs4223_probe, + .startup = &cs4223_startup, + .shutdown = &gen10g_shutdown, +}; + int phy_cortina_init(void) { phy_register(&cs4340_driver); + phy_register(&cs4223_driver); return 0; } @@ -320,7 +366,7 @@ int get_phy_id(struct mii_dev *bus, int addr, int devad, u32 *phy_id) return -EIO; *phy_id |= (phy_reg & 0xffff); - if (*phy_id == PHY_UID_CS4340) + if ((*phy_id == PHY_UID_CS4340) || (*phy_id == PHY_UID_CS4223)) return 0; /* diff --git a/include/cortina.h b/include/cortina.h index 6cadd28..b64cb44 100644 --- a/include/cortina.h +++ b/include/cortina.h @@ -65,6 +65,10 @@ #define VILLA_LINE_SDS_COMMON_STX0_TX_OUTPUT_CTRLA 0x427 #define VILLA_LINE_SDS_COMMON_STX0_TX_OUTPUT_CTRLB 0x428 +/* Cortina CS4223 */ +#define CS4223_EEPROM_STATUS 0x5001 +#define CS4223_EEPROM_FIRMWARE_LOADDONE 0x1 + #define mseq_edc_bist_done (0x1<<0) #define mseq_edc_bist_fail (0x1<<8) diff --git a/include/phy.h b/include/phy.h index 0543ec1..2239317 100644 --- a/include/phy.h +++ b/include/phy.h @@ -315,6 +315,7 @@ static inline bool phy_interface_is_sgmii(struct phy_device *phydev) /* PHY UIDs for various PHYs that are referenced in external code */ #define PHY_UID_CS4340 0x13e51002 +#define PHY_UID_CS4223 0x03e57003 #define PHY_UID_TN2020 0x00a19410 #endif