From patchwork Sun Mar 21 23:29:42 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Cristian Ciocaltea X-Patchwork-Id: 12153429 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.7 required=3.0 tests=BAYES_00,DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED,DKIM_VALID,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS,USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id BD9D3C433C1 for ; Sun, 21 Mar 2021 23:33:10 +0000 (UTC) Received: from desiato.infradead.org (desiato.infradead.org [90.155.92.199]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 6734561926 for ; Sun, 21 Mar 2021 23:33:10 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 6734561926 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=desiato.20200630; h=Sender:Content-Transfer-Encoding :Content-Type:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:Message-Id:Date:Subject:Cc:To:From: Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender :Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References:List-Owner; bh=sgIvq07DuuUBbotbU0aDDhU2p1FP2tL7MHjxTJ+eNS8=; b=VFgZaQE2oYHceII01uBRzblKar kopleIncJBnFiQ78e6vJiEQYtaE3UyIlObdJrWveopJTsj/XnH0QOHmoBnKCJYhi9zciLNFBTWV/Z MZTr3QckTGlJz6LXXZRXb+x3iyCKfnmhSjvnB2rQ6qbvF54Hji2xyEshamSaLYGLslV66dq76fzhO vP9Fd5kv0BcaXfBgeR0AKkNwaUsiX/D7VbPrdRd1ckIEcaxLhZYP6aroZxCrXY6bTvMmuslKBjSnm T4+BoM5uXUac5QuYPv55qahrb3PUCbysgARiozKLC479VVsskbg8RfNUkYkwayY+Ufn0q0PgXY2Zd lx76FU0Q==; Received: from localhost ([::1] helo=desiato.infradead.org) by desiato.infradead.org with esmtp (Exim 4.94 #2 (Red Hat Linux)) id 1lO7X7-00AXNy-89; Sun, 21 Mar 2021 23:30:57 +0000 Received: from mail-ej1-x62d.google.com ([2a00:1450:4864:20::62d]) by desiato.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lO7W3-00AXJ6-Sx; Sun, 21 Mar 2021 23:30:14 +0000 Received: by mail-ej1-x62d.google.com with SMTP id e14so141789ejz.11; Sun, 21 Mar 2021 16:29:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=7pOLNQfROV9DESH9c1z/95PUsvdUmS+ux4xUVmugTq0=; b=h9qc2xEvgfRcB+T+8D4cDQ+gO7nMzZAye7jQiJqFNHSVNa4+cj/xwYUwklpJl9xV33 mqXJU3Xy44xfdONRVov7Wa24Gz16ZPufnUPAPg7v9aP51g7iNohl+CNR8QimxgcBqKZq 6kA1ig9kralNr6tedvjWNlaYZaeNti05dDjou9IlJ/TF77+GDHkySX2sDlX4YNNztwao uajypSuKh+TX6sWyralMuN8waKHdAmhK2HVgtMrTJeDDwgRs3kL3wDuB1+oi9FR2ELi6 CcJspofOkDRKuPaMiNe06bu7Xp9rQ4GTNaS73oOJae/zOW6hyDA6bnqKf37FXbAG7nCH YFyA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=7pOLNQfROV9DESH9c1z/95PUsvdUmS+ux4xUVmugTq0=; b=dqjWUZ0RET7ocMKpPdVWyH1KbjjYX9c5h+XglJMSVurLJQ40IkIbBnx+SfiATVzrW3 XVjDDG7gAchv5zMlXnqWqPrfjfHDDpac9qiCyaa7KUxKVdPaWXTpMapv3iToWFo2zlDC pnxDhlYiBicr7eAGibUasL80jR8pysTHQR+XDTCupuZUeS6WRRgwX9Dj9+9y5zu/cykZ HXt/OSKXS6i8pOkiiHFUyibPgy2cVRiNn+MlHGyOVpGfnDpCxvH1vkvYiOYp2GLUWzRK VCAR/n/l3BZOE29PWZZzMeY5DgOmBfnmisumFn47/M5UuszIBtiEy885N03te4HwaVVl Sp0w== X-Gm-Message-State: AOAM530ngB+XVAKJHbpB3Nm81moEWBiZmQlw1iuM7cOACnD2KUyNYC01 MGNPc3e0Ukvi1fFxXw5vcPU= X-Google-Smtp-Source: ABdhPJz6DWGODcj429igJhmLIHWMUTHzDEAasDLnQIVoj9x7rHcLoKbHHOoDgqdUl0liiet5NjJj5g== X-Received: by 2002:a17:906:13c4:: with SMTP id g4mr16551073ejc.390.1616369388113; Sun, 21 Mar 2021 16:29:48 -0700 (PDT) Received: from localhost.localdomain ([188.24.140.160]) by smtp.gmail.com with ESMTPSA id bt14sm9801472edb.92.2021.03.21.16.29.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 21 Mar 2021 16:29:47 -0700 (PDT) From: Cristian Ciocaltea To: "David S. Miller" , Andrew Lunn , Jakub Kicinski , Rob Herring , =?utf-8?q?Andreas_F=C3=A4rber?= , Manivannan Sadhasivam , Philipp Zabel Cc: netdev@vger.kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-actions@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH v3 0/3] Add support for Actions Semi Owl Ethernet MAC Date: Mon, 22 Mar 2021 01:29:42 +0200 Message-Id: X-Mailer: git-send-email 2.31.0 MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210321_233010_891046_F53CF9DE X-CRM114-Status: GOOD ( 22.25 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org This patch series adds support for the Ethernet MAC found on the Actions Semi Owl family of SoCs. For the moment I have only tested the driver on RoseapplePi SBC, which is based on the S500 SoC variant. It might work on S900 as well, but I cannot tell for sure since the S900 datasheet I currently have doesn't provide any information regarding the MAC registers - so I couldn't check the compatibility with S500. Similar story for S700: the datasheet I own is incomplete, but it seems the MAC is advertised with Gigabit capabilities. For that reason most probably we need to extend the current implementation in order to support this SoC variant as well. Please note that for testing the driver it is also necessary to update the S500 clock subsystem: https://lore.kernel.org/lkml/cover.1615221459.git.cristian.ciocaltea@gmail.com/ The DTS changes for the S500 SBCs will be provided separately. Thanks, Cristi Changes in v3: - Dropped the 'debug' module parameter and passed the default NETIF_MSG flags to netif_msg_init(), according to David's review - Removed the owl_emac_generate_mac_addr() function and the related OWL_EMAC_GEN_ADDR_SYS_SN config option until a portable solution to get the system serial number is found - when building on arm64 the following error is thrown (as reported by Rob's kernel bot): '[...]/owl-emac.c:9:10: fatal error: asm/system_info.h: No such file or directory' - Rebased patchset on v5.12-rc4 Changes in v2: * According to Philipp's review - Requested exclusive control over serial line via devm_reset_control_get_exclusive() - Optimized error handling by using dev_err_probe() * According to Andrew's review - Dropped the inline keywords - Applied Reverse Christmas Tree format to local variable declarations - Renamed owl_emac_phy_config() to owl_emac_update_link_state() - Documented the purpose of the special descriptor used in the context of owl_emac_setup_frame_xmit() - Updated comment inside owl_emac_mdio_clock_enable() regarding the MDC clock divider setup - Indicated MAC support for symmetric pause via phy_set_sym_pause() in owl_emac_phy_init() - Changed the MAC addr generation algorithm in owl_emac_generate_mac_addr() by setting the locally administered bit in byte 0 and replacing bytes 1 & 2 with additional entries from enc_sn - Moved devm_add_action_or_reset() before clk_set_rate() in owl_emac_probe() * Other - Added SMII interface support: updated owl_emac_core_sw_reset(), added owl_emac_clk_set_rate(), updated description in the YAML binding - Changed OWL_EMAC_TX_TIMEOUT from 0.05*HZ to 2*HZ - Rebased patchset on v5.12-rc3 Cristian Ciocaltea (3): dt-bindings: net: Add Actions Semi Owl Ethernet MAC binding net: ethernet: actions: Add Actions Semi Owl Ethernet MAC driver MAINTAINERS: Add entries for Actions Semi Owl Ethernet MAC .../bindings/net/actions,owl-emac.yaml | 92 + MAINTAINERS | 2 + drivers/net/ethernet/Kconfig | 1 + drivers/net/ethernet/Makefile | 1 + drivers/net/ethernet/actions/Kconfig | 26 + drivers/net/ethernet/actions/Makefile | 6 + drivers/net/ethernet/actions/owl-emac.c | 1625 +++++++++++++++++ drivers/net/ethernet/actions/owl-emac.h | 280 +++ 8 files changed, 2033 insertions(+) create mode 100644 Documentation/devicetree/bindings/net/actions,owl-emac.yaml create mode 100644 drivers/net/ethernet/actions/Kconfig create mode 100644 drivers/net/ethernet/actions/Makefile create mode 100644 drivers/net/ethernet/actions/owl-emac.c create mode 100644 drivers/net/ethernet/actions/owl-emac.h