From patchwork Fri Dec 15 07:39:50 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jie Luo X-Patchwork-Id: 18100 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7300:3b04:b0:fb:cd0c:d3e with SMTP id c4csp9104212dys; Thu, 14 Dec 2023 23:42:10 -0800 (PST) X-Google-Smtp-Source: AGHT+IEB662idd/xnQ4n5DdLuoXfL8+ObC2RciNXoKjfrX3XlH6kKioFfyhNXhABTEdPtZhQtxyA X-Received: by 2002:a17:906:116:b0:a1b:7df6:11dd with SMTP id 22-20020a170906011600b00a1b7df611ddmr6350740eje.80.1702626130663; Thu, 14 Dec 2023 23:42:10 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1702626130; cv=none; d=google.com; s=arc-20160816; b=fszUABAXuTYEbXWZKBanaIh9SihiPxRWTwyatIVtUIcfdfhMHaQjLrMwyR48kgB107 1thfvSd17fXg6pvo+Dr8urgNnOgBPcA8iMbfec8XumrXQrH++COk8YekaJ6m/S04pQTO /ymzVlZhqSd7KvSBZ0htLyrqRI5SMEvm/BhAi5Ru4ud8IHrtC0Eaurcf+ZA2IwH2YXhM eo2thTRKtnklGGbpYOnfltUc1BILbE8kH+W+p/jrQ3iZaWZwmULrmhspvs+X9E/dnbVC 9v+KFG6ogcoJc1JKVP/o8XRoGRFLjCSO6DZ9gh43xYGi0NtGTUlJt8YWRTJnUb/aoWNK L33A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:message-id:date:subject:cc:to :from:dkim-signature; bh=cc46bw14xJuIpwN3HCYVxNwMWDOdvELnA7ZzC1YJuPk=; fh=/GuWXIFJTb2Z3LVYajHwooJWphp6NrpriHhj5GHcik0=; b=ac5kguEM+5wIYqSG49MeUI+D3gujQW0rQ667VU21VCudCPAgiG0jizrQ46xLHgJvE2 T+Ml+dvzKWfek6O2TrSJMAqPeUCO6y55vbRW5oHWEGXZjfmFX2tu7sFWgPoziS8ncWgZ oT3oJGnIOzRGnstpq8KSOz2oSAsXuJyK5GghIeqECKaxYHsbD1tuGtHi9SKr89hUoR4o P6RkwN1CgQovAbOINeXKHM7DgeinBkSHIzn5VwjBlD+U/FvoscTZdCkGU7lzNtDkZvYl 9wCLX8kEbqLD+9nNfPieVsmrRnkhm+PZyTUODTeMPVjHqtFY8ysbqfccNl6kQ5SpfKsV ixtg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=GIQR3pZs; spf=pass (google.com: domain of linux-kernel+bounces-542-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) smtp.mailfrom="linux-kernel+bounces-542-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=quicinc.com Received: from am.mirrors.kernel.org (am.mirrors.kernel.org. [147.75.80.249]) by mx.google.com with ESMTPS id ga22-20020a170906b85600b00a1cc16013a7si6769334ejb.987.2023.12.14.23.42.10 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 14 Dec 2023 23:42:10 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-542-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) client-ip=147.75.80.249; Authentication-Results: mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=GIQR3pZs; spf=pass (google.com: domain of linux-kernel+bounces-542-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) smtp.mailfrom="linux-kernel+bounces-542-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=quicinc.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by am.mirrors.kernel.org (Postfix) with ESMTPS id E4CCA1F2152A for ; Fri, 15 Dec 2023 07:42:09 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 7507C12B6A; Fri, 15 Dec 2023 07:40:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=quicinc.com header.i=@quicinc.com header.b="GIQR3pZs" X-Original-To: linux-kernel@vger.kernel.org Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (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 48AEE19445; Fri, 15 Dec 2023 07:40:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=quicinc.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=quicinc.com Received: from pps.filterd (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.17.1.24/8.17.1.24) with ESMTP id 3BF6DIoG002558; Fri, 15 Dec 2023 07:40:28 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; h= from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding:content-type; s=qcppdkim1; bh=cc46bw1 4xJuIpwN3HCYVxNwMWDOdvELnA7ZzC1YJuPk=; b=GIQR3pZskWkwUmucLjO7/6X 4spcm/Bn6Ve+0MyhMU+Bc9fB/W8MUjRLl2+0U20SMeZgqeqfFmlsVtlbunyj4eEj LP0iE38xFJgjUBytVmlKYH5pI5ulbv0PjaUtlXE24IKxrWF/fJkmxyF4FsFswS8j Vae4D+XP4UW3bympwmYGQA/n0wFynJMufy1cWSg+6yn8EDdhEPVJwhmN7wv/pFcG 7Ngkr8uYG2U426d3TBsbn5BoYBLsdaOvqwAVbEkcSk1yluvDPjklnOlyg515GOQ2 3+XShZT62Hozoa5aNus0OPkGqBciC9keKAPH7jNNuEE/TTr/lk+lHEuqJw2n4vg= = Received: from nalasppmta01.qualcomm.com (Global_NAT1.qualcomm.com [129.46.96.20]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3v0hb1r6km-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 15 Dec 2023 07:40:27 +0000 (GMT) Received: from nalasex01c.na.qualcomm.com (nalasex01c.na.qualcomm.com [10.47.97.35]) by NALASPPMTA01.qualcomm.com (8.17.1.5/8.17.1.5) with ESMTPS id 3BF7eQwU002232 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 15 Dec 2023 07:40:26 GMT Received: from akronite-sh-dev02.qualcomm.com (10.80.80.8) by nalasex01c.na.qualcomm.com (10.47.97.35) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1118.40; Thu, 14 Dec 2023 23:40:22 -0800 From: Luo Jie To: , , , , , , , , , , , , CC: , , , Subject: [PATCH v8 00/14] add qca8084 ethernet phy driver Date: Fri, 15 Dec 2023 15:39:50 +0800 Message-ID: <20231215074005.26976-1-quic_luoj@quicinc.com> X-Mailer: git-send-email 2.42.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-ClientProxiedBy: nasanex01a.na.qualcomm.com (10.52.223.231) To nalasex01c.na.qualcomm.com (10.47.97.35) X-QCInternal: smtphost X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Proofpoint-GUID: 9Rao9__cIlWVS5ATnGxIwedAexYJD9KF X-Proofpoint-ORIG-GUID: 9Rao9__cIlWVS5ATnGxIwedAexYJD9KF X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.272,Aquarius:18.0.997,Hydra:6.0.619,FMLib:17.11.176.26 definitions=2023-12-09_02,2023-12-07_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 suspectscore=0 lowpriorityscore=0 phishscore=0 malwarescore=0 mlxlogscore=954 spamscore=0 adultscore=0 priorityscore=1501 bulkscore=0 impostorscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2311290000 definitions=main-2312150047 X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1785332897812539055 X-GMAIL-MSGID: 1785332897812539055 QCA8084 is four-port PHY with maximum link capability 2.5G, which supports the interface mode qusgmii and sgmii mode, there are two PCSs available to connected with ethernet port. QCA8084 can work in switch mode or PHY mode. For switch mode, both PCS0 and PCS1 work on sgmii mode. For PHY mode, PCS1 works on qusgmii mode. The fourth PHY connected with PCS0 works on sgmii mode. Besides this PHY driver patches, the PCS driver is also needed to bring up the qca8084 device, which mainly configurs PCS and clocks. The qca8084 PHY driver depends on the following clock controller patchset, the initial clocks and resets are provided by the clock controller driver below. https://lore.kernel.org/lkml/20231104034858.9159-2-quic_luoj@quicinc.com/T/ Changes in v3: * pick the two patches to introduce the interface mode 10g-qxgmii from Vladimir Oltean(olteanv@gmail.com). * add the function phydev_id_is_qca808x to identify the PHY qca8081 and qca8084. * update the interface mode name PHY_INTERFACE_MODE_QUSGMII to PHY_INTERFACE_MODE_10G_QXGMII. Changes in v4: * remove the following patch: . * split out 10g_qxgmii change of ethernet-controller.yaml. Changes in v5: * update the author of the patch below. . Changes in v6: * drop the "inline" keyword. * apply the patches with "--max-line-length=80". Changes in v7: * add possible interfaces of phydev * customize phy address * add initialized clock & reset config * add the work mode config * update qca,ar803x.yaml for the new added properties Changes in v7: * updated the patcheset based on the latest code Luo Jie (12): net: phy: at803x: add QCA8084 ethernet phy support net: phy: at803x: add the function phydev_id_is_qca808x net: phy: at803x: Add qca8084_config_init function net: phy: at803x: add qca8084_link_change_notify net: phy: at803x: add the possible_interfaces net: phy: at803x: add qca8084 switch registe access net: phy: at803x: set MDIO address of qca8084 PHY net: phy: at803x: parse qca8084 clocks and resets net: phy: at803x: add qca808x initial config sequence net: phy: at803x: configure qca8084 common clocks net: phy: at803x: configure qca8084 work mode dt-bindings: net: ar803x: add qca8084 PHY properties Vladimir Oltean (2): net: phy: introduce core support for phy-mode = "10g-qxgmii" dt-bindings: net: ethernet-controller: add 10g-qxgmii mode .../bindings/net/ethernet-controller.yaml | 1 + .../devicetree/bindings/net/qca,ar803x.yaml | 158 ++++- Documentation/networking/phy.rst | 6 + drivers/net/phy/at803x.c | 577 +++++++++++++++++- drivers/net/phy/phy-core.c | 1 + drivers/net/phy/phylink.c | 11 +- include/linux/phy.h | 4 + include/linux/phylink.h | 2 + 8 files changed, 752 insertions(+), 8 deletions(-) base-commit: 17cb8a20bde66a520a2ca7aad1063e1ce7382240