Message ID | 20240202-add-am64-som-v4-0-5f8b12af5e71@solid-run.com |
---|---|
Headers |
Return-Path: <linux-kernel+bounces-50110-ouuuleilei=gmail.com@vger.kernel.org> Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7301:9bc1:b0:106:209c:c626 with SMTP id op1csp539199dyc; Fri, 2 Feb 2024 08:22:20 -0800 (PST) X-Google-Smtp-Source: AGHT+IGWLjuLtPymZFcizxeD4cIvLT3o4com5MkgiUTwr7XAA9OBvthEapwtiEyglGp0ObeZUOFe X-Received: by 2002:a17:907:7843:b0:a37:1f76:35ba with SMTP id lb3-20020a170907784300b00a371f7635bamr980150ejc.51.1706890940144; Fri, 02 Feb 2024 08:22:20 -0800 (PST) X-Forwarded-Encrypted: i=2; AJvYcCXTEkItMmDLDVnZ5PpHvAnHZ4TDsNJldG+PUk2qrJcJggtRNX9zdlaGHIb5mpanu1ZCt6gBZB/zYm0CDRePoYLTAE5jKQ== Received: from am.mirrors.kernel.org (am.mirrors.kernel.org. [2604:1380:4601:e00::3]) by mx.google.com with ESMTPS id dt14-20020a170906b78e00b00a35ed302695si990250ejb.27.2024.02.02.08.22.19 for <ouuuleilei@gmail.com> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 02 Feb 2024 08:22:20 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-50110-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:4601:e00::3 as permitted sender) client-ip=2604:1380:4601:e00::3; Authentication-Results: mx.google.com; dkim=pass header.i=@solidrn.onmicrosoft.com header.s=selector1-solidrn-onmicrosoft-com header.b=KCQmBTeQ; arc=fail (signature failed); spf=pass (google.com: domain of linux-kernel+bounces-50110-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:4601:e00::3 as permitted sender) smtp.mailfrom="linux-kernel+bounces-50110-ouuuleilei=gmail.com@vger.kernel.org" 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 12F861F2EF8B for <ouuuleilei@gmail.com>; Fri, 2 Feb 2024 16:13:56 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id BD31214AD35; Fri, 2 Feb 2024 16:11:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=solidrn.onmicrosoft.com header.i=@solidrn.onmicrosoft.com header.b="KCQmBTeQ" Received: from EUR02-VI1-obe.outbound.protection.outlook.com (mail-vi1eur02on2098.outbound.protection.outlook.com [40.107.241.98]) (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 00AC91474CB; Fri, 2 Feb 2024 16:10:57 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.241.98 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706890260; cv=fail; b=UnwBPJBG4jfmrCbulV8IHnh8Tj/64aRLMJYlix/Or/trA2P5sWrEQuOJUAH4vY6XVOUORP4br5iln58iOUh2eknQXsZc+Lk8k1M/Imng5ptHh+PJzuP+To2FRuew4ldquhuch8mdgb8v/gX9jbJ0VuUZD8dKDH3ED1gL6gJx2BY= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706890260; c=relaxed/simple; bh=SqKHeumTVKzQsziyHJAfPvghLFWSi7r8Q72VXpbcv4I=; h=From:Subject:Date:Message-Id:Content-Type:To:Cc:MIME-Version; b=t4g+RxLwLLc9CTTyrSBycu74quVCg4YatPm/AqQGon/NKITgftACDEpWtXVD10KQoHIKe/7OUZhne8xmQSdjSMFty0v+PFRnR+hRAqwVdRY/Ya6YwuhzMlobk03rwoPiDyXR3ZVzhgnRFwPqTIixw3V+9bKHeqFpUSvWPEL8FL8= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=solid-run.com; spf=pass smtp.mailfrom=solid-run.com; dkim=pass (1024-bit key) header.d=solidrn.onmicrosoft.com header.i=@solidrn.onmicrosoft.com header.b=KCQmBTeQ; arc=fail smtp.client-ip=40.107.241.98 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=solid-run.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=solid-run.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=LFQM3/JrBNa8nMbGtuSuxxxx+/9y2rz6s2CWj44s5td1vI4ML3F1OzQL/ZU1aml2Zt1yPAh2aT0ExDmfZMHTAA69+8zQB9L6R2sSnSXhidmbilY4mP9BBfId/flP9KNa+xUOqXMFDqfcl1QzScV47kaWOnX19b2WabNWaBthb3pux2jQKtIyuTWr8dx75mF3UesDTD0zeGn9SvdJmc9D/w0u4DmIHEdvF169dXbHop1Kr/IhaTfkstS7IlDPMWtRhOVf0Ew1EAT8dJir7adgARkCfQODj43lc64LGN/DCfH4WaCRu3yDRh3NXfa2iyvcwz4V7kvtzPfhiw2XM5Expg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=JyTwmmXFN6063z9IATwBJw1s7di+nX1rwreDnVMW3HQ=; b=K48ywlWifSkkWxQ/iUNA48j1nHW9Eb614Pfz6drIrEKYmexdyGl9EH7x3RMNXit130CVNNtMEFM425cmXy+3BvjJeREoArsMGJtq38MJqgVS3OMMQkhtJ84+M4b3z2wkYlB4FTlzZg3njRcVqCDNNeMALDXJHfwyapT2wpvD3cQ28+rCew8eqHcQND/1p+BnRBVVKb6IZL5efO/Ub4lTiUBOeeyCrZl+Sud6xSWkmfOVED9If8qCS2CFpYcgRmRF1h2cIh+m3HL9L1JVCI79/Zhk+u5PxkVOd7UP3gq2rXNE62OGoKBah8COkqSs9cmnWao0AFcsIyjEyka7VuIwfQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=solid-run.com; dmarc=pass action=none header.from=solid-run.com; dkim=pass header.d=solid-run.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=solidrn.onmicrosoft.com; s=selector1-solidrn-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=JyTwmmXFN6063z9IATwBJw1s7di+nX1rwreDnVMW3HQ=; b=KCQmBTeQYwvwn+gIqQJRFwNDw370K+GNsqY7s/8SvHCfrzXLp12vEJlpiR60E+0TOMTVKbR+wbm/+d0tCp0StTheybr49RzBDQr3EA2rjWEqrrNdg5YR5CF2T+TALFR6xTLEho0tdjatm5U/pvo3g0HVBQNOoEYDxcejUr2JbmM= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=solid-run.com; Received: from AM9PR04MB7586.eurprd04.prod.outlook.com (2603:10a6:20b:2d5::17) by DU2PR04MB8775.eurprd04.prod.outlook.com (2603:10a6:10:2e2::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7249.30; Fri, 2 Feb 2024 16:10:51 +0000 Received: from AM9PR04MB7586.eurprd04.prod.outlook.com ([fe80::3b94:f607:ebe1:7d6c]) by AM9PR04MB7586.eurprd04.prod.outlook.com ([fe80::3b94:f607:ebe1:7d6c%7]) with mapi id 15.20.7249.027; Fri, 2 Feb 2024 16:10:51 +0000 From: Josua Mayer <josua@solid-run.com> Subject: [PATCH v4 0/5] arm64: dts: add description for solidrun am642 som and hummingboard evb Date: Fri, 02 Feb 2024 17:10:47 +0100 Message-Id: <20240202-add-am64-som-v4-0-5f8b12af5e71@solid-run.com> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit X-B4-Tracking: v=1; b=H4sIAAcUvWUC/23MSwrCMBCA4atI1kYyk/TlynuIi5CHDdhGEi1K6 d2dFkQtbgb+GeYbWXYpuMz2m5ElN4QcYk+hthtmWt2fHQ+WmqFAJUAA19Zy3ZWK59jxAjQYrSp nvWT0ck3Oh8fCHU/Ubci3mJ6LPsC8fUPyFxqAC26tBt8gVtr5Q46XYHm69zsTOzZjA34BgCsAC QBZF6hKo7A2/wD5AWisAEkAekUnaQvhmjUwTdMLPeIaui4BAAA= To: Nishanth Menon <nm@ti.com>, Vignesh Raghavendra <vigneshr@ti.com>, Tero Kristo <kristo@kernel.org>, Rob Herring <robh+dt@kernel.org>, Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>, Conor Dooley <conor+dt@kernel.org>, Alessandro Zummo <a.zummo@towertech.it>, Alexandre Belloni <alexandre.belloni@bootlin.com> Cc: Yazan Shhady <yazan.shhady@solid-run.com>, linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-rtc@vger.kernel.org, Josua Mayer <josua@solid-run.com>, Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>, Suman Anna <s-anna@ti.com>, Grygorii Strashko <grygorii.strashko@ti.com>, MD Danish Anwar <danishanwar@ti.com> X-Mailer: b4 0.12.4 X-ClientProxiedBy: FR0P281CA0158.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:b3::16) To AM9PR04MB7586.eurprd04.prod.outlook.com (2603:10a6:20b:2d5::17) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: <linux-kernel.vger.kernel.org> List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org> List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org> MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM9PR04MB7586:EE_|DU2PR04MB8775:EE_ X-MS-Office365-Filtering-Correlation-Id: 5847c411-7e85-4714-2dd8-08dc240986d1 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: p3rX+GWK6zHbcrIcfw9mJfRzIkEyMQ9ieD1rJ95iR5x3r6q1PEl2L5pe/h8+96G7p14a62bYRsAZweidoq0EgkZrqhUW6UcpZLttu+svjD7nUS5EgEi3NrKTiAnlgwJADz5ZKfFFGvjq89KfoB/3WO3nM5iPnc5igXJSn/Zhx8dGFVwwYGL9IEZ/Vmf021TxR83bnr/QNvcLswcFnxlj1x7Pgsam05WCFm3PGGuEhUqIONr8mZpu7+tRCI74IobAgrcK+d7ZuIUpbHXCAA0UVyfBrbH+HVTr7mhGh5/IcYjVOvHljNE3xNCsHX9UvJxJnka2+UDk/dLdm8XTryevkNVNB+HlXn9z7rp+34kAiFEVefY6qHRMlqF1iqU/4t4nbpcKTgXIN2yDWeE50NP+Yjzu63fPjbcOZk6fb2DZK3lcEs/wTzxTcK3xeKFEXNGLy/MmYOQLYJ2aCKsqLii20xsDTFWMB791eJ2UQbVtnrtZwR2d34k8Zo3Mu7jmMbWTNh/BtqKQudiD6ugM0zzcpuaCAwcCn13ElyZ5i5eFDQPqPNasTIb1jM79C87rbnPmlI/ccZgl4aAKX8f/Oxty373B+1fsDG42qNg6y76Bw+DljQNLupSkdaU2zya8D8I1MWVyf+7WpDHhGmQyQADvWg== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM9PR04MB7586.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(376002)(366004)(39830400003)(396003)(136003)(346002)(230173577357003)(230273577357003)(230922051799003)(1800799012)(451199024)(64100799003)(186009)(6512007)(6666004)(52116002)(26005)(83380400001)(6506007)(2616005)(36756003)(8936002)(8676002)(66556008)(38350700005)(316002)(2906002)(7416002)(66476007)(5660300002)(66946007)(86362001)(4326008)(110136005)(54906003)(41300700001)(478600001)(6486002)(966005)(38100700002);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?fUj3MgpvoxwE4EzA8ZkUCTz/sBHa?= =?utf-8?q?VMXtkzg7Myyh3wM2GxfwrVrzcLapRe9F7gnBwgRZPPCUpkR7kABE5hLHvf6dfkrc5?= =?utf-8?q?n7EXkXLW+QhjF0968n/6klzYuFA8PKE7aNM7ud2G+A1VpJC/OZJvZeqnzY5qN4W/C?= =?utf-8?q?qT2za9OdgJ3/Wfi/awn7L/66rtnez+DKy7LN6dQxvUcolBKW/98PU7Il2AMWekOns?= =?utf-8?q?3+R29MewORUL0JzccgbYWkfMMRgiaPX9ybLfRB92KLCNo12RPc4V8P1/cRineCfj5?= =?utf-8?q?8021y0zjDXgHm7M+JLl260yZlAmeiL7uSCKa0Cb1FvxGNdwE+VTFqzMdwOhOAq58+?= =?utf-8?q?M8668WzJkzE6yRm2OjtDFwgdhqa2INkml870QZA5HKlMvXRqFpyf06pCdDVGrDowp?= =?utf-8?q?RBv+OrK94thJsB+dYMUAMbeoItA91tfT8BnEXNsrKotWCcDG1PUnV6Y2s4Y+uQJ8K?= =?utf-8?q?ARYuwnA4u/+xRhLlogzWanivavgxJ6TITaNGFfLOvSomp8bf1/XzmAESDTWCobi5U?= =?utf-8?q?9xkgWN7yWyRGA6467z6JpbQsnUoLx4Xf8HVuSmz49xfltY87q89abg0cEn+TtkH07?= =?utf-8?q?2u+VnZdF48WUBWdiboJD0KrMViHquftv5Lj2ql3Oe4YKi0tj2eGK6LZ6KUFVsZWkp?= =?utf-8?q?/5lrt7VXy+tF0z7CqAlyGvaAwJ4VJkFWrv5ukjX68HoZ9OFrFkluD9m2HM+3Hzhl3?= =?utf-8?q?NMEBG1q4YKLti1Rr+i1BsIDzKa70nT6hM4/B7gFXbTIFaks4krBeCWwRhmAByfys+?= =?utf-8?q?ehiDi23UIp6Xgc/zTGBOOnD5RtqJI53L28rNgpMtrMZWE72e3Z8ZhVVXnSCalw/kE?= =?utf-8?q?qUmvZ4qC8zYehAURFNCNQMh4pvBIX0FnJNYmFYNSvJ6+onh+YE5rQmFReVvXlrDK+?= =?utf-8?q?e6YQc5oyczzzVAeM8lS4GCi8dQnXen6a9p2bMqkytgKxxuw93J9QKpI+EcJx+Fd8S?= =?utf-8?q?lH1oeubhiiL0ovR8BDZwF433MnK7PUQQL8+uI8Q8V0uHRDg/RPB8J5oH+/3JZTWz1?= =?utf-8?q?C/ET6DI5GWJN766P9TQQO3R3NqyFtdNI0kZwaCMlilfQf7YWC5k+SIfnsuG1tfWmT?= =?utf-8?q?3xeecGXwS0cTc1z104bU+IQOGB5xTe5rTXyPK1sRQH1ZhxsFA2nw4Bur3acsrz38T?= =?utf-8?q?NSHpbFKw/B89JuGCL/wNGpZTKyZm7qO9MZOF8fy/qK7HKtcitYhfmifOdllhud4si?= =?utf-8?q?1KX16vvAKq/jW6jFLGtLcgZkwhp5bQipCiX13BSHJNhhchJ6SGtf/E8cVkadxCIHw?= =?utf-8?q?qbDTnufm/wYY+ip2Z1A5o17bMQFw+kWIGEhbrLD8EoF8LN7OC+hlOZYRi/NGEGTh/?= =?utf-8?q?WMrM1DeRu1Ia0lyaRlHo65UE1aDlVwV6DolrFUiWF/mvGn1DNvVbzVLUWwW0rqvn7?= =?utf-8?q?CEV7fxm95EBNfPb7WRzxYFw5SGcS6hQzvkcQmL0XESrcBPRxqggiydIiihhs5L0ov?= =?utf-8?q?z6AbB+mYr9tUcxl9Tkp2uiBDXc8zoomAESV7/5dDlsNZNqStlFvQPWFh8z1TfDclW?= =?utf-8?q?Fnbd6T021zMR?= X-OriginatorOrg: solid-run.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5847c411-7e85-4714-2dd8-08dc240986d1 X-MS-Exchange-CrossTenant-AuthSource: AM9PR04MB7586.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Feb 2024 16:10:51.6230 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: a4a8aaf3-fd27-4e27-add2-604707ce5b82 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: GBT4tyiy99AqSvPDTLDMZhZ4VqULO3ho6uchQe9+ZxsaNBPom+ltrKiaAwW+Jd+qQgoL4JtJEhe/97TJKhwUPw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU2PR04MB8775 X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1789797455718796613 X-GMAIL-MSGID: 1789804874455028191 |
Series |
arm64: dts: add description for solidrun am642 som and hummingboard evb
|
|
Message
Josua Mayer
Feb. 2, 2024, 4:10 p.m. UTC
This series adds DT bindings and dts descriptions for SolidRun AM642
based SoM and Hummingboard EVB.
Additionally a commit from downstream vendor kernel are included,
enhancing support for pru based ethernet.
I wasn't sure how to properly annotate it in commit description /
signed-off area ...:
1. add description for "Industrial Ethernet Peripherals" (IEP) to am64
https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/commit/arch/arm64/boot/dts/ti/k3-am64-main.dtsi?h=ti-linux-6.1.y-cicd&id=5afb73d82a014b59462162d960b350b8c58e5ae6
IEP is already supported in-tree by a driver, and used in
k3-am65-main.dtsi.
Unfortunately dtbs_check reported many problems, I put some remarks:
- 'mux-controller' does not match any of the regexes
The expectation seems to be that a mux-controller at minimum has an
address, something to put behind an @. However this is a gpio mux, not
sure how to name it better.
- unevaluated properties: interrupts, interrupt-parent
sensors and flash yaml are missing interrupt descriptions, but these
parts definitely have an interrupt signal in this solidrun board.
- wrong names for pinctrl nodes
Other TI DTSs consistently end with *-pins-default. Should a different
naming convention be used?
- cdns,phy-type required property
inherited from k3-am64-main.dtsi
there is a PHY_NONE value in dt-bindings/phy/phy.h,
but not allowed in phy-cadence-torrent.yaml
Signed-off-by: Josua Mayer <josua@solid-run.com>
---
Changes in v4:
- abracon,abx80x.yaml: fixed dtc error in example irq reference
- Link to v3: https://lore.kernel.org/r/20240202-add-am64-som-v3-0-2f44023d50e9@solid-run.com
Changes in v3:
- removed lots more status properties, double-checked against soc dtsi
(reported by Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>)
(reported by Andrew Davis <afd@ti.com>)
- removed intentionally-disabled pcie node from dts
- rewrote yaml bindings to use enum instead of anyof+const+description
(reported by Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>)
- abracon yaml
- added missing maintainer
- added diode type property type
- added example
(reported by Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>)
- added reference to /schemas/interrupts.yaml#
- use generic name for pru ethernet controller node
(reported by Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>)
- removed unnamed dmas from pru ethernet controller node
- moved pcie/usb3 features to dtb overlays
- Link to v2: https://lore.kernel.org/r/20240112-add-am64-som-v2-0-1385246c428c@solid-run.com
Changes in v2:
- reordered patchset to drop separate patch adding iep handle to som
- moved dtbs_check warnings to cover letter
- converted abracon abx80x rtc bindings to yaml
- updated dts:
- remove unnecessary status properties
- changed non-generic node names
- use color property for led descriptions,
they have no default function on evaluation board
- drop earlycon bootargs from chosen node
(reported by Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>)
- converted charger node to comment, part not assembled, has no bindings
- picked up acked-by on board bindings patch
- Link to v1: https://lore.kernel.org/r/20240103-add-am64-som-v1-0-dda1f9227aef@solid-run.com
---
Josua Mayer (4):
dt-bindings: arm: ti: Add bindings for SolidRun AM642 HummingBoard-T
dt-bindings: rtc: abx80x: convert to yaml
arm64: dts: add description for solidrun am642 som and evaluation board
arm64: dts: ti: hummingboard-t: add overlays for m.2 pci-e and usb-3
Suman Anna (1):
arm64: dts: ti: k3-am64-main: Add ICSSG IEP nodes
Documentation/devicetree/bindings/arm/ti/k3.yaml | 7 +
.../devicetree/bindings/rtc/abracon,abx80x.txt | 31 --
.../devicetree/bindings/rtc/abracon,abx80x.yaml | 74 +++
arch/arm64/boot/dts/ti/Makefile | 7 +
arch/arm64/boot/dts/ti/k3-am64-main.dtsi | 24 +
.../boot/dts/ti/k3-am642-hummingboard-t-pcie.dtso | 45 ++
.../boot/dts/ti/k3-am642-hummingboard-t-usb3.dtso | 44 ++
arch/arm64/boot/dts/ti/k3-am642-hummingboard-t.dts | 292 ++++++++++
arch/arm64/boot/dts/ti/k3-am642-sr-som.dtsi | 592 +++++++++++++++++++++
9 files changed, 1085 insertions(+), 31 deletions(-)
---
base-commit: 861deac3b092f37b2c5e6871732f3e11486f7082
change-id: 20240101-add-am64-som-51a1ca47edf3
Sincerely,
Comments
On 2/2/24 10:10 AM, Josua Mayer wrote: > Add description for the SolidRun AM642 SoM, and HummingBoard-T > evaluation board. > > The SoM features: > - 1x cpsw ethernet with phy > - 2x pru ethernet with phy > - eMMC > - spi flash (assembly option) > > Additionally microSD and usb-2.0 otg are included in the SoM > description as they are supported boot sources for the SOC boot-rom. > > The Carrier provides: > - 3x RJ45 connector > - 2x M.2 connector > - USB-2.0 Hub > - USB-A Connector > - LEDs > - 2x CAN transceiver > - 1x RS485 transceiver > - sensors > > The M.2 connectors support either USB-3.1 or PCI-E depending on status > of a mux. By default the mux is switched off. > > Signed-off-by: Josua Mayer <josua@solid-run.com> > --- > arch/arm64/boot/dts/ti/Makefile | 1 + > arch/arm64/boot/dts/ti/k3-am642-hummingboard-t.dts | 292 ++++++++++ > arch/arm64/boot/dts/ti/k3-am642-sr-som.dtsi | 592 +++++++++++++++++++++ > 3 files changed, 885 insertions(+) > > diff --git a/arch/arm64/boot/dts/ti/Makefile b/arch/arm64/boot/dts/ti/Makefile > index 77a347f9f47d..041c3b71155e 100644 > --- a/arch/arm64/boot/dts/ti/Makefile > +++ b/arch/arm64/boot/dts/ti/Makefile > @@ -32,6 +32,7 @@ dtb-$(CONFIG_ARCH_K3) += k3-am62p5-sk.dtb > > # Boards with AM64x SoC > dtb-$(CONFIG_ARCH_K3) += k3-am642-evm.dtb > +dtb-$(CONFIG_ARCH_K3) += k3-am642-hummingboard-t.dtb > dtb-$(CONFIG_ARCH_K3) += k3-am642-phyboard-electra-rdk.dtb > dtb-$(CONFIG_ARCH_K3) += k3-am642-sk.dtb > dtb-$(CONFIG_ARCH_K3) += k3-am642-tqma64xxl-mbax4xxl.dtb > diff --git a/arch/arm64/boot/dts/ti/k3-am642-hummingboard-t.dts b/arch/arm64/boot/dts/ti/k3-am642-hummingboard-t.dts > new file mode 100644 > index 000000000000..ebaf281e1e1e > --- /dev/null > +++ b/arch/arm64/boot/dts/ti/k3-am642-hummingboard-t.dts > @@ -0,0 +1,292 @@ > +// SPDX-License-Identifier: GPL-2.0+ > +/* > + * Copyright (C) 2023 Josua Mayer <josua@solid-run.com> > + * > + * DTS for SolidRun AM642 HummingBoard-T, > + * running on Cortex A53. > + * > + */ > + > +/dts-v1/; > + > +#include <dt-bindings/leds/common.h> > +#include <dt-bindings/phy/phy.h> > + > +#include "k3-am642.dtsi" > +#include "k3-am642-sr-som.dtsi" > + > +/ { > + model = "SolidRun AM642 HummingBoard-T"; > + compatible = "solidrun,am642-hummingboard-t", "solidrun,am642-sr-som", "ti,am642"; > + > + aliases { > + serial5 = &main_uart3; > + }; > + > + leds { > + compatible = "gpio-leds"; > + pinctrl-names = "default"; > + pinctrl-0 = <&leds_pins_default>; > + > + /* D24 */ > + led1: led-1 { > + label = "led1"; > + gpios = <&main_gpio0 29 GPIO_ACTIVE_HIGH>; > + color = <LED_COLOR_ID_GREEN>; > + }; > + > + /* D25 */ > + led2: led-2 { > + label = "led2"; > + gpios = <&main_gpio0 30 GPIO_ACTIVE_HIGH>; > + color = <LED_COLOR_ID_GREEN>; > + }; > + > + /* D26 */ > + led3: led-3 { > + label = "led3"; > + gpios = <&main_gpio0 33 GPIO_ACTIVE_HIGH>; > + color = <LED_COLOR_ID_GREEN>; > + }; > + }; > + > + regulator-m2-3v3 { > + compatible = "regulator-fixed"; > + pinctrl-names = "default"; > + pinctrl-0 = <®ulator_pcie_3v3_pins_default>; > + regulator-name = "m2-3v3"; > + regulator-min-microvolt = <3300000>; > + regulator-max-microvolt = <3300000>; > + gpio = <&main_gpio1 17 GPIO_ACTIVE_HIGH>; > + enable-active-high; > + regulator-always-on; > + }; > + > + regulator-vpp-1v8 { > + compatible = "regulator-fixed"; > + pinctrl-names = "default"; > + pinctrl-0 = <®ulator_vpp_1v8_pins_default>; > + regulator-name = "vpp-1v8"; > + regulator-min-microvolt = <1800000>; > + regulator-max-microvolt = <1800000>; > + gpio = <&main_gpio1 78 GPIO_ACTIVE_HIGH>; > + enable-active-high; > + }; > + > + serdes_mux: mux-controller { > + compatible = "gpio-mux"; > + pinctrl-names = "default"; > + pinctrl-0 = <&serdes_mux_pins_default>; > + #mux-control-cells = <0>; > + /* > + * Mux has 2 IOs: > + * - select: 0 = USB-3 (M2); 1 = PCIE (M1) > + * - shutdown: 0 = active; 1 = disabled (high impedance) > + */ > + mux-gpios = <&main_gpio1 40 GPIO_ACTIVE_HIGH>, <&main_gpio1 41 GPIO_ACTIVE_HIGH>; > + /* default disabled */ > + idle-state = <2>; > + }; > +}; > + > +&main_gpio0 { > + m2-reset-hog { > + gpio-hog; > + gpios = <12 GPIO_ACTIVE_LOW>; > + output-low; /* deasserted */ > + line-name = "m2-reset"; > + }; > + > + m1-m2-w-disable1-hog { > + gpio-hog; > + gpios = <32 GPIO_ACTIVE_LOW>; > + output-low; /* deasserted */ > + line-name = "m1-m2-pcie-w-disable1"; > + }; > + > + m1-m2-w-disable2-hog { > + gpio-hog; > + gpios = <34 GPIO_ACTIVE_LOW>; > + output-low; /* deasserted */ > + line-name = "m1-m2-pcie-w-disable2"; > + }; > +}; > + > +&main_gpio1 { > + m1-pcie-clkreq0-hog { > + gpio-hog; > + gpios = <11 GPIO_ACTIVE_LOW>; > + input; > + line-name = "m1-pcie-clkreq0"; > + }; > + > + m2-pcie-clkreq-hog { > + gpio-hog; > + gpios = <35 GPIO_ACTIVE_LOW>; > + input; > + line-name = "m2-pcie-clkreq"; > + }; > +}; > + > +&main_i2c0 { > + pinctrl-0 = <&main_i2c0_pins_default>, <&main_i2c0_int_pins_default>; > + > + humidity-sensor@41 { > + compatible = "ti,hdc2010"; > + reg = <0x41>; > + interrupt-parent = <&main_gpio0>; > + interrupts = <37 IRQ_TYPE_EDGE_FALLING>; > + }; > + > + light-sensor@44 { > + compatible = "ti,opt3001"; > + reg = <0x44>; > + interrupt-parent = <&main_gpio0>; > + interrupts = <37 IRQ_TYPE_EDGE_FALLING>; > + }; > + > + /* charger@6a */ > +}; > + > +&main_i2c1 { > + pinctrl-names = "default"; > + pinctrl-0 = <&main_i2c1_pins_default>; > + status = "okay"; > + > + rtc@69 { > + compatible = "abracon,abx80x"; > + reg = <0x69>; > + pinctrl-names = "default"; > + pinctrl-0 = <&rtc_int_pins_default>; > + abracon,tc-diode = "schottky"; > + abracon,tc-resistor = <3>; > + interrupt-parent = <&main_gpio0>; > + interrupts = <44 IRQ_TYPE_EDGE_FALLING>; > + }; > +}; > + > +&main_mcan0 { > + pinctrl-names = "default"; > + pinctrl-0 = <&main_mcan0_pins_default>; > + status = "okay"; > + > + can-transceiver { > + max-bitrate = <8000000>; > + }; > +}; > + > +&main_mcan1 { > + pinctrl-names = "default"; > + pinctrl-0 = <&main_mcan1_pins_default>; > + status = "okay"; > + > + can-transceiver { > + max-bitrate = <8000000>; > + }; > +}; > + > +&main_pmx0 { > + leds_pins_default: leds-pins-default { > + pinctrl-single,pins = < > + AM64X_IOPAD(0x0074, PIN_OUTPUT, 7) /* GPMC0_AD14.GPIO0_29 */ > + AM64X_IOPAD(0x0078, PIN_OUTPUT, 7) /* GPMC0_AD15.GPIO0_30 */ > + AM64X_IOPAD(0x0088, PIN_OUTPUT, 7) /* GPMC0_OEn_REn.GPIO0_33 */ > + >; > + }; > + > + main_i2c0_int_pins_default: main-i2c0-pins-int-default { > + pinctrl-single,pins = < > + /* external pull-up on Carrier */ > + AM64X_IOPAD(0x0098, PIN_INPUT, 7) /* GPMC0_WAIT0.GPIO0_37 */ > + >; > + }; > + > + main_i2c1_pins_default: main-i2c1-pins-default { > + pinctrl-single,pins = < > + /* external pull-up on SoM */ > + AM64X_IOPAD(0x0268, PIN_INPUT, 0) /* I2C1_SCL.I2C1_SCL */ > + AM64X_IOPAD(0x026c, PIN_INPUT, 0) /* I2C1_SDA.I2C1_SDA */ > + >; > + }; > + > + main_mcan0_pins_default: main-mcan0-pins-default { > + pinctrl-single,pins = < > + AM64X_IOPAD(0x0254, PIN_INPUT, 0) /* MCAN0_RX.MCAN0_RX */ > + AM64X_IOPAD(0x0250, PIN_OUTPUT, 0) /* MCAN0_TX.MCAN0_TX */ > + >; > + }; > + > + main_mcan1_pins_default: main-mcan1-pins-default { > + pinctrl-single,pins = < > + AM64X_IOPAD(0x025c, PIN_INPUT, 0) /* MCAN1_RX.MCAN1_RX */ > + AM64X_IOPAD(0x0258, PIN_OUTPUT, 0) /* MCAN1_TX.MCAN1_TX */ > + >; > + }; > + > + main_uart3_pins_default: main-uart3-pins-default { > + pinctrl-single,pins = < > + AM64X_IOPAD(0x016c, PIN_INPUT, 10) /* PRG0_PRU0_GPO3.UART3_CTSn */ > + AM64X_IOPAD(0x0170, PIN_OUTPUT, 10) /* PRG0_PRU0_GPO4.UART3_TXD */ > + AM64X_IOPAD(0x0174, PIN_OUTPUT, 10) /* PRG0_PRU0_GPO5.UART3_RTSn */ > + AM64X_IOPAD(0x01ac, PIN_INPUT, 10) /* PRG0_PRU0_GPO19.UART3_RXD */ > + >; > + }; > + > + pcie0_pins_default: pcie0-pins-default { > + pinctrl-single,pins = < > + /* connector M2 RESET */ > + AM64X_IOPAD(0x0030, PIN_OUTPUT, 7) /* OSPI0_CSn1.GPIO0_12 */ > + /* connectors M1 & M2 W_DISABLE1 */ > + AM64X_IOPAD(0x0084, PIN_OUTPUT, 7) /* GPMC0_ADVN_ALE.GPIO0_32 */ > + /* connectors M1 & M2 W_DISABLE2 */ > + AM64X_IOPAD(0x008c, PIN_OUTPUT, 7) /* GPMC0_WEN.GPIO0_34 */ > + /* connectors M1 & M2 PERST0 (PCI Reset) */ > + AM64X_IOPAD(0x019c, PIN_OUTPUT, 7) /* PRG0_PRU0_GPO15.GPIO1_15 */ > + /* connector M1 CLKREQ0 */ > + AM64X_IOPAD(0x018c, PIN_INPUT, 7) /* PRG0_PRU0_GPO11.GPIO1_11 */ > + /* connector M2 CLKREQ0 */ > + AM64X_IOPAD(0x01ec, PIN_INPUT, 7) /* PRG0_PRU1_GPO15.GPIO1_35 */ > + >; > + }; > + > + regulator_pcie_3v3_pins_default: regulator-pcie-3v3-pins-default { > + pinctrl-single,pins = < > + AM64X_IOPAD(0x01a4, PIN_OUTPUT, 7) /* PRG0_PRU0_GPO17.GPIO1_17 */ > + >; > + }; > + > + regulator_vpp_1v8_pins_default: regulator-vpp-1v8-pins-default { > + pinctrl-single,pins = < > + AM64X_IOPAD(0x029c, PIN_OUTPUT, 7) /* MMC1_SDWP.GPIO1_78 */ > + >; > + }; > + > + rtc_int_pins_default: rtc-int-pins-default { > + pinctrl-single,pins = < > + /* external pull-up on Carrier */ > + AM64X_IOPAD(0x00b4, PIN_INPUT, 7) /* GPMC0_CSn3.GPIO0_44 */ > + >; > + }; > + > + serdes_mux_pins_default: serdes-mux-pins-default { > + pinctrl-single,pins = < > + /* SEL, 10k pull-down on carrier, 2.2k pullup on SoM */ > + AM64X_IOPAD(0x0200, PIN_OUTPUT, 7) /* PRG0_MDIO0_MDIO.GPIO1_40 */ > + /* EN */ > + AM64X_IOPAD(0x0204, PIN_OUTPUT, 7) /* PRG0_MDIO0_MDC.GPIO1_41 */ > + >; > + }; > +}; > + > +&main_uart3 { > + pinctrl-names = "default"; > + pinctrl-0 = <&main_uart3_pins_default>; > + uart-has-rtscts; > + rs485-rts-active-low; > + linux,rs485-enabled-at-boot-time; > + status = "okay"; > +}; > + > +&usb0 { > + dr_mode = "host"; > +}; > diff --git a/arch/arm64/boot/dts/ti/k3-am642-sr-som.dtsi b/arch/arm64/boot/dts/ti/k3-am642-sr-som.dtsi > new file mode 100644 > index 000000000000..83b73d433508 > --- /dev/null > +++ b/arch/arm64/boot/dts/ti/k3-am642-sr-som.dtsi > @@ -0,0 +1,592 @@ > +// SPDX-License-Identifier: GPL-2.0+ > +/* > + * Copyright (C) 2023 Josua Mayer <josua@solid-run.com> > + * > + */ > + > +#include <dt-bindings/net/ti-dp83869.h> > + > +/ { > + model = "SolidRun AM642 SoM"; > + compatible = "solidrun,am642-sr-som", "ti,am642"; > + > + aliases { > + ethernet0 = &cpsw_port1; > + ethernet1 = &icssg1_emac0; > + ethernet2 = &icssg1_emac1; > + mmc0 = &sdhci0; > + mmc1 = &sdhci1; > + serial2 = &main_uart0; > + }; > + > + chosen { > + /* SoC default UART console */ > + stdout-path = "serial2:115200n8"; > + }; > + > + /* PRU Ethernet Controller */ > + ethernet { > + compatible = "ti,am642-icssg-prueth"; > + pinctrl-names = "default"; > + pinctrl-0 = <&pru_rgmii1_pins_default>, <&pru_rgmii2_pins_default>; > + > + sram = <&oc_sram>; > + ti,prus = <&pru1_0>, <&rtu1_0>, <&tx_pru1_0>, <&pru1_1>, <&rtu1_1>, <&tx_pru1_1>; > + firmware-name = "ti-pruss/am65x-sr2-pru0-prueth-fw.elf", > + "ti-pruss/am65x-sr2-rtu0-prueth-fw.elf", > + "ti-pruss/am65x-sr2-txpru0-prueth-fw.elf", > + "ti-pruss/am65x-sr2-pru1-prueth-fw.elf", > + "ti-pruss/am65x-sr2-rtu1-prueth-fw.elf", > + "ti-pruss/am65x-sr2-txpru1-prueth-fw.elf"; > + > + /* configure internal pinmux for mii mode */ > + ti,pruss-gp-mux-sel = <2>, <2>, <2>, <2>, <2>, <2>; > + > + ti,mii-g-rt = <&icssg1_mii_g_rt>; > + ti,mii-rt = <&icssg1_mii_rt>; > + ti,iep = <&icssg1_iep0>, <&icssg1_iep1>; > + > + /* > + * Configure icssg interrupt controller to map pru-internal > + * interrupts 8/9 via channels 0/1 to host interrupts 0/1. > + * > + * For details see interrupt controller documentation: > + * Documentation/devicetree/bindings/interrupt-controller/ti,pruss-intc.yaml > + */ > + interrupt-parent = <&icssg1_intc>; > + interrupts = <24 0 2>, <25 1 3>; > + interrupt-names = "tx_ts0", "tx_ts1"; > + > + dmas = <&main_pktdma 0xc200 15>, /* egress slice 0 */ > + <&main_pktdma 0xc201 15>, /* egress slice 0 */ > + <&main_pktdma 0xc202 15>, /* egress slice 0 */ > + <&main_pktdma 0xc203 15>, /* egress slice 0 */ > + <&main_pktdma 0xc204 15>, /* egress slice 1 */ > + <&main_pktdma 0xc205 15>, /* egress slice 1 */ > + <&main_pktdma 0xc206 15>, /* egress slice 1 */ > + <&main_pktdma 0xc207 15>, /* egress slice 1 */ > + <&main_pktdma 0x4200 15>, /* ingress slice 0 */ > + <&main_pktdma 0x4201 15>; /* ingress slice 1 */ > + dma-names = "tx0-0", "tx0-1", "tx0-2", "tx0-3", > + "tx1-0", "tx1-1", "tx1-2", "tx1-3", > + "rx0", "rx1"; > + > + ethernet-ports { > + #address-cells = <1>; > + #size-cells = <0>; > + > + icssg1_emac0: port@0 { > + reg = <0>; > + ti,syscon-rgmii-delay = <&main_conf 0x4110>; > + /* Filled in by bootloader */ > + local-mac-address = [00 00 00 00 00 00]; > + phy-handle = <ðernet_phy2>; > + phy-mode = "rgmii-id"; > + }; > + > + icssg1_emac1: port@1 { > + reg = <1>; > + ti,syscon-rgmii-delay = <&main_conf 0x4114>; > + /* Filled in by bootloader */ > + local-mac-address = [00 00 00 00 00 00]; > + phy-handle = <ðernet_phy1>; > + phy-mode = "rgmii-id"; > + }; > + }; > + }; > + > + /* DDR16SS0: > + * - Bank 1 @ 0x080000000-0x0FFFFFFFF: max. 2GB in 32-bit address space > + * - Bank 2 @ 0x880000000-0x9FFFFFFFF: max. 6GB in 64-bit address space > + */ > + memory@80000000 { > + reg = <0x00000000 0x80000000 0x00000000 0x80000000>, > + <0x00000008 0x80000000 0x00000001 0x80000000>; > + device_type = "memory"; > + }; > + > + reserved-memory { > + #address-cells = <2>; > + #size-cells = <2>; > + ranges; > + > + secure_ddr: optee@9e800000 { > + reg = <0x00 0x9e800000 0x00 0x01800000>; /* for OP-TEE */ > + no-map; > + }; > + > + main_r5fss0_core0_dma_memory_region: r5f-dma-memory@a0000000 { > + compatible = "shared-dma-pool"; > + reg = <0x00 0xa0000000 0x00 0x100000>; > + no-map; > + }; > + > + main_r5fss0_core0_memory_region: r5f-memory@a0100000 { > + compatible = "shared-dma-pool"; > + reg = <0x00 0xa0100000 0x00 0xf00000>; > + no-map; > + }; > + > + main_r5fss0_core1_dma_memory_region: r5f-dma-memory@a1000000 { > + compatible = "shared-dma-pool"; > + reg = <0x00 0xa1000000 0x00 0x100000>; > + no-map; > + }; > + > + main_r5fss0_core1_memory_region: r5f-memory@a1100000 { > + compatible = "shared-dma-pool"; > + reg = <0x00 0xa1100000 0x00 0xf00000>; > + no-map; > + }; > + > + main_r5fss1_core0_dma_memory_region: r5f-dma-memory@a2000000 { > + compatible = "shared-dma-pool"; > + reg = <0x00 0xa2000000 0x00 0x100000>; > + no-map; > + }; > + > + main_r5fss1_core0_memory_region: r5f-memory@a2100000 { > + compatible = "shared-dma-pool"; > + reg = <0x00 0xa2100000 0x00 0xf00000>; > + no-map; > + }; > + > + main_r5fss1_core1_dma_memory_region: r5f-dma-memory@a3000000 { > + compatible = "shared-dma-pool"; > + reg = <0x00 0xa3000000 0x00 0x100000>; > + no-map; > + }; > + > + main_r5fss1_core1_memory_region: r5f-memory@a3100000 { > + compatible = "shared-dma-pool"; > + reg = <0x00 0xa3100000 0x00 0xf00000>; > + no-map; > + }; > + }; > + > + vdd_mmc0: regulator-vdd-mmc0 { > + compatible = "regulator-fixed"; > + regulator-name = "vdd-mmc0"; > + regulator-min-microvolt = <1800000>; > + regulator-max-microvolt = <1800000>; > + regulator-always-on; > + regulator-boot-on; > + }; > +}; > + > +&cpsw3g { > + pinctrl-names = "default"; > + pinctrl-0 = <&rgmii1_pins_default>; > +}; > + > +&cpsw3g_mdio { > + pinctrl-names = "default"; > + pinctrl-0 = <&mdio0_pins_default>; > + status = "okay"; > + > + ethernet_phy0: ethernet-phy@0 { > + compatible = "ethernet-phy-id2000.a0f1"; > + reg = <0>; > + pinctrl-names = "default"; > + pinctrl-0 = <ðernet_phy0_pins_default>; > + ti,clk-output-sel = <DP83869_CLK_O_SEL_REF_CLK>; > + ti,op-mode = <DP83869_RGMII_COPPER_ETHERNET>; > + /* > + * Disable interrupts because ISR never clears 0x0040 > + * > + * interrupt-parent = <&main_gpio1>; > + * interrupts = <70 IRQ_TYPE_LEVEL_LOW>; > + */ > + /* > + * Disable HW Reset because clock signal is daisy-chained > + * > + * reset-gpios = <&main_gpio0 84 GPIO_ACTIVE_LOW>; > + * reset-assert-us = <1>; > + * reset-deassert-us = <30>; > + */ > + }; > +}; > + > +&cpsw_port1 { > + phy-mode = "rgmii-id"; > + phy-handle = <ðernet_phy0>; > +}; > + > +&cpsw_port2 { > + status = "disabled"; > +}; > + > +&icssg1_mdio { > + pinctrl-names = "default"; > + pinctrl-0 = <&pru1_mdio0_pins_default>; > + status = "okay"; > + > + ethernet_phy1: ethernet-phy@3 { > + compatible = "ethernet-phy-id2000.a0f1"; > + reg = <3>; > + pinctrl-names = "default"; > + pinctrl-0 = <ðernet_phy1_pins_default>; > + ti,clk-output-sel = <DP83869_CLK_O_SEL_REF_CLK>; > + ti,op-mode = <DP83869_RGMII_COPPER_ETHERNET>; > + /* > + * Disable interrupts because ISR never clears 0x0040 > + * > + * interrupt-parent = <&main_gpio1>; > + * interrupts = <70 IRQ_TYPE_LEVEL_LOW>; > + */ > + /* > + * Disable HW Reset because clock signal is daisy-chained > + * > + * reset-gpios = <&main_gpio0 20 GPIO_ACTIVE_LOW>; > + * reset-assert-us = <1>; > + * reset-deassert-us = <30>; > + */ > + }; > + > + ethernet_phy2: ethernet-phy@f { > + compatible = "ethernet-phy-id2000.a0f1"; > + reg = <0xf>; > + pinctrl-names = "default"; > + pinctrl-0 = <ðernet_phy2_pins_default>; > + ti,op-mode = <DP83869_RGMII_COPPER_ETHERNET>; > + /* > + * Disable interrupts because ISR never clears 0x0040 > + * > + * interrupt-parent = <&main_gpio1>; > + * interrupts = <70 IRQ_TYPE_LEVEL_LOW>; > + */ > + /* > + * Disable HW Reset because clock signal is daisy-chained > + * > + * reset-gpios = <&main_gpio0 52 GPIO_ACTIVE_LOW>; > + * reset-assert-us = <1>; > + * reset-deassert-us = <30>; > + */ > + }; > +}; > + > +&mailbox0_cluster2 { > + status = "okay"; > + > + mbox_main_r5fss0_core0: mbox-main-r5fss0-core0 { > + ti,mbox-rx = <0 0 2>; > + ti,mbox-tx = <1 0 2>; > + }; > + > + mbox_main_r5fss0_core1: mbox-main-r5fss0-core1 { > + ti,mbox-rx = <2 0 2>; > + ti,mbox-tx = <3 0 2>; > + }; > +}; > + > +&mailbox0_cluster4 { > + status = "okay"; > + > + mbox_main_r5fss1_core0: mbox-main-r5fss1-core0 { > + ti,mbox-rx = <0 0 2>; > + ti,mbox-tx = <1 0 2>; > + }; > + > + mbox_main_r5fss1_core1: mbox-main-r5fss1-core1 { > + ti,mbox-rx = <2 0 2>; > + ti,mbox-tx = <3 0 2>; > + }; > +}; > + > +&main_i2c0 { > + pinctrl-names = "default"; > + pinctrl-0 = <&main_i2c0_pins_default>; > + status = "okay"; > + > + som_eeprom: eeprom@50 { > + compatible = "atmel,24c01"; > + reg = <0x50>; > + pagesize = <8>; > + }; > +}; > + > +&main_pmx0 { > + /* hog global functions */ > + pinctrl-names = "default"; > + pinctrl-0 = <ðernet_phy_pins_default>; > + > + ethernet_phy_pins_default: ethernet-phy-pins-default { > + pinctrl-single,pins = < > + /* interrupt / power-down, external pull-up on SoM */ > + AM64X_IOPAD(0x0278, PIN_INPUT, 7) /* EXTINTn.GPIO1_70 */ > + >; > + }; > + > + ethernet_phy0_pins_default: ethernet-phy0-pins-default { > + pinctrl-single,pins = < > + /* reset */ > + AM64X_IOPAD(0x0154, PIN_OUTPUT, 7) /* PRG1_PRU1_GPO19.GPIO0_84 */ > + /* reference clock */ > + AM64X_IOPAD(0x0274, PIN_OUTPUT, 5) /* EXT_REFCLK1.CLKOUT0 */ > + >; > + }; > + > + ethernet_phy1_pins_default: ethernet-phy1-pins-default { > + pinctrl-single,pins = < > + /* reset */ > + AM64X_IOPAD(0x0150, PIN_OUTPUT, 7) /* PRG1_PRU1_GPO18.GPIO0_20 */ > + /* led0, external pull-down on SoM */ > + AM64X_IOPAD(0x0128, PIN_INPUT, 7) /* PRG1_PRU1_GPO8.GPIO0_73 */ > + /* led1/rxer */ > + AM64X_IOPAD(0x011c, PIN_INPUT, 7) /* PRG1_PRU1_GPO5.GPIO0_70 */ > + >; > + }; > + > + ethernet_phy2_pins_default: ethernet-phy2-pins-default { > + pinctrl-single,pins = < > + /* reset */ > + AM64X_IOPAD(0x00d4, PIN_OUTPUT, 7) /* PRG1_PRU0_GPO7.GPIO0_52 */ > + /* led0, external pull-down on SoM */ > + AM64X_IOPAD(0x00d8, PIN_INPUT, 7) /* PRG1_PRU0_GPO8.GPIO0_53 */ > + /* led1/rxer */ > + AM64X_IOPAD(0x00cc, PIN_INPUT, 7) /* PRG1_PRU0_GPO5.GPIO0_50 */ > + >; > + }; > + > + main_i2c0_pins_default: main-i2c0-pins-default { > + pinctrl-single,pins = < > + /* external pull-up on SoM */ > + AM64X_IOPAD(0x0260, PIN_INPUT, 0) /* I2C0_SCL.I2C0_SCL */ > + AM64X_IOPAD(0x0264, PIN_INPUT, 0) /* I2C0_SDA.I2C0_SDA */ > + >; > + }; > + > + /* > + * main_mmc0_pins_default: main-mmc0-pins-default > + * > + * MMC0_CMD: no padconfig > + * MMC0_CLK: no padconfig, external pull-up on SoM > + * MMC0_DAT0: no padconfig > + * MMC0_DAT1: no padconfig > + * MMC0_DAT2: no padconfig > + * MMC0_DAT3: no padconfig > + * MMC0_DAT4: no padconfig > + * MMC0_DAT5: no padconfig > + * MMC0_DAT6: no padconfig > + * MMC0_DAT7: no padconfig > + * MMC0_DS: no padconfig, external pull-down on SoM > + */ > + > + main_mmc1_pins_default: main-mmc1-pins-default { > + pinctrl-single,pins = < > + AM64X_IOPAD(0x0294, PIN_INPUT_PULLUP, 0) /* (J19) MMC1_CMD */ > + AM64X_IOPAD(0x028c, PIN_INPUT, 0) /* MMC1_CLK.MMC1_CLK */ > + AM64X_IOPAD(0x0288, PIN_INPUT_PULLUP, 0) /* MMC1_DAT0.MMC1_DAT0 */ > + AM64X_IOPAD(0x0284, PIN_INPUT_PULLUP, 0) /* MMC1_DAT1.MMC1_DAT1 */ > + AM64X_IOPAD(0x0280, PIN_INPUT_PULLUP, 0) /* MMC1_DAT2.MMC1_DAT2 */ > + AM64X_IOPAD(0x027c, PIN_INPUT_PULLUP, 0) /* MMC1_DAT3.MMC1_DAT3 */ > + /* external pull-down on SoM & Carrier */ > + AM64X_IOPAD(0x0298, PIN_INPUT_PULLUP, 0) /* MMC1_SDCD.MMC1_SDCD */ > + AM64X_IOPAD(0x0290, PIN_INPUT, 0) /* MMC1_CLKLB: clock loopback */ > + >; > + }; > + > + main_uart0_pins_default: main-uart0-pins-default { > + pinctrl-single,pins = < > + AM64X_IOPAD(0x0230, PIN_INPUT, 0) /* UART0_RXD.UART0_RXD */ > + AM64X_IOPAD(0x0234, PIN_OUTPUT, 0) /* UART0_TXD.UART0_TXD */ > + >; > + }; > + > + mdio0_pins_default: mdio0-pins-default { > + pinctrl-single,pins = < > + AM64X_IOPAD(0x01fc, PIN_OUTPUT, 4) /* PRG0_PRU1_GPO19.MDIO0_MDC */ > + AM64X_IOPAD(0x01f8, PIN_INPUT, 4) /* PRG0_PRU1_GPO18.MDIO0_MDIO */ > + >; > + }; > + > + ospi0_pins_default: ospi0-pins-default { > + pinctrl-single,pins = < > + /* external pull-down on SoM */ > + AM64X_IOPAD(0x0000, PIN_OUTPUT, 0) /* OSPI0_CLK.OSPI0_CLK */ > + AM64X_IOPAD(0x0008, PIN_OUTPUT, 0) /* OSPI0_DQS.OSPI0_DQS */ > + /* external pull-up on SoM */ > + AM64X_IOPAD(0x002c, PIN_OUTPUT, 0) /* OSPI0_CSn0.OSPI0_CSn0 */ > + AM64X_IOPAD(0x000c, PIN_INPUT, 0) /* OSPI0_D0.OSPI0_D0 */ > + AM64X_IOPAD(0x0010, PIN_INPUT, 0) /* OSPI0_D1.OSPI0_D1 */ > + AM64X_IOPAD(0x0014, PIN_INPUT, 0) /* OSPI0_D2.OSPI0_D2 */ > + AM64X_IOPAD(0x0018, PIN_INPUT, 0) /* OSPI0_D3.OSPI0_D3 */ > + AM64X_IOPAD(0x001c, PIN_INPUT, 0) /* OSPI0_D4.OSPI0_D4 */ > + AM64X_IOPAD(0x0020, PIN_INPUT, 0) /* OSPI0_D5.OSPI0_D5 */ > + AM64X_IOPAD(0x0024, PIN_INPUT, 0) /* OSPI0_D6.OSPI0_D6 */ > + AM64X_IOPAD(0x0028, PIN_INPUT, 0) /* OSPI0_D7.OSPI0_D7 */ > + >; > + }; > + > + ospi0_flash0_pins_default: ospi0-flash0-pins-default { > + pinctrl-single,pins = < > + AM64X_IOPAD(0x0034, PIN_OUTPUT, 7) /* OSPI0_CSn2.GPIO0_13 */ > + AM64X_IOPAD(0x0038, PIN_INPUT, 7) /* OSPI0_CSn3.GPIO0_14 */ > + >; > + }; > + > + pru1_mdio0_pins_default: pru1-mdio0-pins-default { > + pinctrl-single,pins = < > + AM64X_IOPAD(0x015c, PIN_OUTPUT, 0) /* PRG1_MDIO0_MDC.PRG1_MDIO0_MDC */ > + AM64X_IOPAD(0x0158, PIN_INPUT, 0) /* PRG1_MDIO0_MDIO.PRG1_MDIO0_MDIO */ > + >; > + }; > + > + pru_rgmii1_pins_default: pru-rgmii1-pins-default { > + pinctrl-single,pins = < > + AM64X_IOPAD(0x00b8, PIN_INPUT, 2) /* (Y7) PRG1_PRU0_GPO0.PRG1_RGMII1_RD0 */ > + AM64X_IOPAD(0x00bc, PIN_INPUT, 2) /* (U8) PRG1_PRU0_GPO1.PRG1_RGMII1_RD1 */ > + AM64X_IOPAD(0x00c0, PIN_INPUT, 2) /* (W8) PRG1_PRU0_GPO2.PRG1_RGMII1_RD2 */ > + AM64X_IOPAD(0x00c4, PIN_INPUT, 2) /* (V8) PRG1_PRU0_GPO3.PRG1_RGMII1_RD3 */ > + AM64X_IOPAD(0x00d0, PIN_INPUT, 2) /* (AA7) PRG1_PRU0_GPO6.PRG1_RGMII1_RXC */ > + AM64X_IOPAD(0x00c8, PIN_INPUT, 2) /* (Y8) PRG1_PRU0_GPO4.PRG1_RGMII1_RX_CTL */ > + AM64X_IOPAD(0x00e4, PIN_OUTPUT, 2) /* (AA8) PRG1_PRU0_GPO11.PRG1_RGMII1_TD0 */ > + AM64X_IOPAD(0x00e8, PIN_OUTPUT, 2) /* (U9) PRG1_PRU0_GPO12.PRG1_RGMII1_TD1 */ > + AM64X_IOPAD(0x00ec, PIN_OUTPUT, 2) /* (W9) PRG1_PRU0_GPO13.PRG1_RGMII1_TD2 */ > + AM64X_IOPAD(0x00f0, PIN_OUTPUT, 2) /* (AA9) PRG1_PRU0_GPO14.PRG1_RGMII1_TD3 */ > + AM64X_IOPAD(0x00f8, PIN_INPUT, 2) /* (V9) PRG1_PRU0_GPO16.PRG1_RGMII1_TXC */ > + AM64X_IOPAD(0x00f4, PIN_OUTPUT, 2) /* (Y9) PRG1_PRU0_GPO15.PRG1_RGMII1_TX_CTL */ > + >; > + }; > + > + pru_rgmii2_pins_default: pru-rgmii2-pins-default { > + pinctrl-single,pins = < > + AM64X_IOPAD(0x0108, PIN_INPUT, 2) /* PRG1_PRU1_GPO0.RGMII2_RD0 */ > + AM64X_IOPAD(0x010c, PIN_INPUT, 2) /* PRG1_PRU1_GPO1.RGMII2_RD1 */ > + AM64X_IOPAD(0x0110, PIN_INPUT, 2) /* PRG1_PRU1_GPO2.RGMII2_RD2 */ > + AM64X_IOPAD(0x0114, PIN_INPUT, 2) /* PRG1_PRU1_GPO3.RGMII2_RD3 */ > + AM64X_IOPAD(0x0120, PIN_INPUT, 2) /* PRG1_PRU1_GPO6.RGMII2_RXC */ > + AM64X_IOPAD(0x0118, PIN_INPUT, 2) /* PRG1_PRU1_GPO4.RGMII2_RX_CTL */ > + AM64X_IOPAD(0x0134, PIN_OUTPUT, 2) /* PRG1_PRU1_GPO11.RGMII2_TD0 */ > + AM64X_IOPAD(0x0138, PIN_OUTPUT, 2) /* PRG1_PRU1_GPO12.RGMII2_TD1 */ > + AM64X_IOPAD(0x013c, PIN_OUTPUT, 2) /* PRG1_PRU1_GPO13.RGMII2_TD2 */ > + AM64X_IOPAD(0x0140, PIN_OUTPUT, 2) /* PRG1_PRU1_GPO14.RGMII2_TD3 */ > + AM64X_IOPAD(0x0148, PIN_INPUT, 2) /* PRG1_PRU1_GPO16.RGMII2_TXC */ > + AM64X_IOPAD(0x0144, PIN_OUTPUT, 2) /* PRG1_PRU1_GPO15.RGMII2_TX_CTL */ > + >; > + }; > + > + rgmii1_pins_default: rgmii1-pins-default { > + pinctrl-single,pins = < > + AM64X_IOPAD(0x01cc, PIN_INPUT, 4) /* PRG0_PRU1_GPO7.RGMII1_RD0 */ > + AM64X_IOPAD(0x01d4, PIN_INPUT, 4) /* PRG0_PRU1_GPO9.RGMII1_RD1 */ > + AM64X_IOPAD(0x01d8, PIN_INPUT, 4) /* PRG0_PRU1_GPO10.RGMII1_RD2 */ > + AM64X_IOPAD(0x01f4, PIN_INPUT, 4) /* PRG0_PRU1_GPO17.RGMII1_RD3 */ > + AM64X_IOPAD(0x0188, PIN_INPUT, 4) /* PRG0_PRU0_GPO10.RGMII1_RXC */ > + AM64X_IOPAD(0x0184, PIN_INPUT, 4) /* PRG0_PRU0_GPO9.RGMII1_RX_CTL */ > + AM64X_IOPAD(0x0124, PIN_OUTPUT, 4) /* PRG1_PRU1_GPO7.RGMII1_TD0 */ > + AM64X_IOPAD(0x012c, PIN_OUTPUT, 4) /* PRG1_PRU1_GPO9.RGMII1_TD1 */ > + AM64X_IOPAD(0x0130, PIN_OUTPUT, 4) /* PRG1_PRU1_GPO10.RGMII1_TD2 */ > + AM64X_IOPAD(0x014c, PIN_OUTPUT, 4) /* PRG1_PRU1_GPO17.RGMII1_TD3 */ > + AM64X_IOPAD(0x00e0, PIN_INPUT, 4) /* PRG1_PRU0_GPO10.RGMII1_TXC */ > + AM64X_IOPAD(0x00dc, PIN_OUTPUT, 4) /* PRG1_PRU0_GPO9.RGMII1_TX_CTL */ > + >; > + }; > + > + usb0_pins_default: usb0-pins-default { > + pinctrl-single,pins = < > + AM64X_IOPAD(0x02a8, PIN_OUTPUT, 0) /* USB0_DRVVBUS.USB0_DRVVBUS */ > + >; > + }; > +}; > + > +&main_r5fss0_core0 { > + mboxes = <&mailbox0_cluster2 &mbox_main_r5fss0_core0>; > + memory-region = <&main_r5fss0_core0_dma_memory_region>, > + <&main_r5fss0_core0_memory_region>; > +}; > + > +&main_r5fss0_core1 { > + mboxes = <&mailbox0_cluster2 &mbox_main_r5fss0_core1>; > + memory-region = <&main_r5fss0_core1_dma_memory_region>, > + <&main_r5fss0_core1_memory_region>; > +}; > + > +&main_r5fss1_core0 { > + mboxes = <&mailbox0_cluster4 &mbox_main_r5fss1_core0>; > + memory-region = <&main_r5fss1_core0_dma_memory_region>, > + <&main_r5fss1_core0_memory_region>; > +}; > + > +&main_r5fss1_core1 { > + mboxes = <&mailbox0_cluster4 &mbox_main_r5fss1_core1>; > + memory-region = <&main_r5fss1_core1_dma_memory_region>, > + <&main_r5fss1_core1_memory_region>; > +}; > + > +/* SoC default UART console */ > +&main_uart0 { > + pinctrl-names = "default"; > + pinctrl-0 = <&main_uart0_pins_default>; > + status = "okay"; > +}; > + > +&ospi0 { > + pinctrl-names = "default"; > + pinctrl-0 = <&ospi0_pins_default>; > + num-cs = <1>; > + status = "okay"; > + > + flash@0 { > + compatible = "jedec,spi-nor"; > + reg = <0>; > + pinctrl-names = "default"; > + pinctrl-0 = <&ospi0_flash0_pins_default>; > + spi-tx-bus-width = <8>; > + spi-rx-bus-width = <8>; > + spi-max-frequency = <200000000>; > + cdns,tshsl-ns = <50>; > + cdns,tsd2d-ns = <50>; > + cdns,tchsh-ns = <4>; > + cdns,tslch-ns = <4>; > + cdns,read-delay = <0>; > + interrupt-parent = <&main_gpio0>; > + interrupts = <14 IRQ_TYPE_LEVEL_LOW>; > + reset-gpios = <&main_gpio0 13 GPIO_ACTIVE_LOW>; > + }; > +}; > + > +&sdhci0 { These sdhci* nodes are disabled by default, you might want to status = "okay" here. Rule of thumb is if you needed to add info to the node here in the board file it probably needs to be enabled here too. Otherwise LGTM, Reviewed-by: Andrew Davis <afd@ti.com> > + /* mmc0 pins have no padconfig */ > + bus-width = <8>; > + ti,driver-strength-ohm = <50>; > + disable-wp; > + non-removable; > + cap-mmc-hw-reset; > + no-sd; > + /* > + * MMC controller supports switching between 1.8V and 3.3V signalling. > + * However MMC0 (unlike MMC1) does not integrate an LDO. > + * Explicitly link a regulator node for indicating to the driver which > + * voltages are actually usable. > + */ > + vqmmc-supply = <&vdd_mmc0>; > +}; > + > +/* > + * microSD is on carrier - however since SoC can boot from it, > + * configure it just in case. > + */ > +&sdhci1 { > + pinctrl-names = "default"; > + pinctrl-0 = <&main_mmc1_pins_default>; > + bus-width = <4>; > + ti,driver-strength-ohm = <50>; > + disable-wp; > +}; > + > +/* > + * USB settings are a carrier choice - however since SoC can boot from it, > + * configure as USB-2.0 OTG here, keeping USB-3 serdes disabled. > + */ > +&usb0 { > + pinctrl-names = "default"; > + pinctrl-0 = <&usb0_pins_default>; > + dr_mode = "otg"; > + maximum-speed = "high-speed"; > +}; > + > +&usbss0 { > + ti,vbus-divider; > + ti,usb2-only; > +}; >