Message ID | 20230629073419.207886-5-tanure@linux.com |
---|---|
State | New |
Headers |
Return-Path: <linux-kernel-owner@vger.kernel.org> Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp9466401vqr; Thu, 29 Jun 2023 00:53:41 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ6rTb9hslU7W9E+c896fOLMGkMyg9njEV6Rf3sOnQL2WNeRTYepkwkp6Oinfkqurk2h1t+K X-Received: by 2002:a05:6a21:32a5:b0:112:cf5:d5cc with SMTP id yt37-20020a056a2132a500b001120cf5d5ccmr2893863pzb.1.1688025221210; Thu, 29 Jun 2023 00:53:41 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1688025221; cv=none; d=google.com; s=arc-20160816; b=ZUIzWKp4xUrdbBDk+F/j3X3mT39EQo4ANzfmSTZAjE3YWrDQ8nQScdTggkTb0BOM06 iznjOkveBeeuUmXyN/KC1lhr4EiUytoX80Q1erHBGwU3/ljC1LtVLP0RoueS32fl9jVG lbyR0hnxojrTvW/zhE3ZGAiwwEDBDGyAj8BvXzFXbsA77T5S6PrlZCeVd8wM5lwZEm2i wndCZlWxhFXy7dQKKz0RmZtYUcnfq8Ka1jTXE6C1Mq55j9vecowRBIGcia7S15TghIEw 4eH4UFo88EJycik17bBKAdcf/hUYSNm3CbqWOTyWZuDcovHuIRFkkKd+g2AyrZj/v/IX gDsA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=0vLOzMvWACex/rb5eWfLh/DJjDV5koOvVacUrN9e5UU=; fh=Y0tFq8WLSLg0WB9dwKe3wnpCs24nrUR8WkgYZffPeno=; b=iIyhykkqHd/QN3P57KBFTnSFHcVzsKZNm90gfQ54nCkDtCRgbwXK5JPkRX5WbUgctG 1IORa9mRheT3tUW49o9jw6cBAaLHJ2XVh8/Ie/kkofvJSn90KUhwu26WTW7NBSE56UFW YznXkcsMstwyDbmGwqYF0cbKkENESeaLYaePr9EUtvhqtPZGEfYws+g/Oes4xJGscfQj GcmZudqT3CSl9OBe253Rg8SWGbxCvOhcO5XRI0xqnOR4UXN9q2TJwm6RTGfZ7iqQ/KXS 95o4tPEJXQjLaBya+LxUdWeZgBDWBqEELr4dNJr1/eXwgm1TUNI23am9CFQXypReMSX8 hxwA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id q11-20020a056a00084b00b006776687031esi7789220pfk.221.2023.06.29.00.53.28; Thu, 29 Jun 2023 00:53:41 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232193AbjF2Hfr (ORCPT <rfc822;ivan.orlov0322@gmail.com> + 99 others); Thu, 29 Jun 2023 03:35:47 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55012 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232371AbjF2He3 (ORCPT <rfc822;linux-kernel@vger.kernel.org>); Thu, 29 Jun 2023 03:34:29 -0400 Received: from mail-ej1-f44.google.com (mail-ej1-f44.google.com [209.85.218.44]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 75A6C35B8; Thu, 29 Jun 2023 00:34:27 -0700 (PDT) Received: by mail-ej1-f44.google.com with SMTP id a640c23a62f3a-98df3dea907so45626166b.3; Thu, 29 Jun 2023 00:34:27 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1688024066; x=1690616066; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=0vLOzMvWACex/rb5eWfLh/DJjDV5koOvVacUrN9e5UU=; b=AnBMhd0aBGg7Dth9GHIxukaNqYfau5z4XUFNqztkQmCBc1aSlke+eCXbBB4RlnrOEQ MPw0ZXC6OdvtXPFlXZtMMEbVpXOER+HK/Xjc75YAz9AIToy0RZoOFIQuoHq0WqjJTavu KxW+3v3/UIuDfIiemPvOjusApvY1LEwDBoTeRzdJIo8V2t9YyrygupVx/UrHATBTauvr ufynUWdJsBXxm5t3tzfkzTgIjUWT6mavIKKfOpG7+bO1W+LBbNXjfk2sVjZl/sqfPbEh EyShmpCkKKZUvBQQZiSIUtIqBQDyExAooX5rXZSqsY6pDxQWyuFOpiA1Xx+90XKBvyAJ q6NA== X-Gm-Message-State: AC+VfDyIwlYZy9ZgoJu4HAnI69dE+pxYHR9LQB1VB4yEm/11e2gy0wsZ ktUtl8vXVo5W58bNpu+Te1w= X-Received: by 2002:a17:907:9804:b0:98c:d355:bb38 with SMTP id ji4-20020a170907980400b0098cd355bb38mr18615307ejc.11.1688024065929; Thu, 29 Jun 2023 00:34:25 -0700 (PDT) Received: from ryzen.lan (cpc87451-finc19-2-0-cust61.4-2.cable.virginm.net. [82.11.51.62]) by smtp.gmail.com with ESMTPSA id be28-20020a0564021a3c00b0051bfb7de166sm5453716edb.39.2023.06.29.00.34.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 29 Jun 2023 00:34:25 -0700 (PDT) From: Lucas Tanure <tanure@linux.com> To: Rob Herring <robh+dt@kernel.org>, Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>, Conor Dooley <conor+dt@kernel.org>, Neil Armstrong <neil.armstrong@linaro.org>, Jerome Brunet <jbrunet@baylibre.com>, Kevin Hilman <khilman@baylibre.com>, Xianwei Zhao <xianwei.zhao@amlogic.com> Cc: Nick <nick@khadas.com>, Artem <art@khadas.com>, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-amlogic@lists.infradead.org, linux-arm-kernel@lists.infradead.org, Lucas Tanure <tanure@linux.com> Subject: [PATCH v7 4/4] arm64: dts: amlogic-t7-a311d2-khadas-vim4: add initial device-tree Date: Thu, 29 Jun 2023 08:34:19 +0100 Message-ID: <20230629073419.207886-5-tanure@linux.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20230629073419.207886-1-tanure@linux.com> References: <20230629073419.207886-1-tanure@linux.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-1.4 required=5.0 tests=BAYES_00, FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM,HEADER_FROM_DIFFERENT_DOMAINS, RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: <linux-kernel.vger.kernel.org> X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1770022734513386575?= X-GMAIL-MSGID: =?utf-8?q?1770022734513386575?= |
Series |
Add Amlogic A311D2 and Khadas Vim4 Board Support
|
|
Commit Message
Lucas Tanure
June 29, 2023, 7:34 a.m. UTC
The Khadas VIM4 uses the Amlogic A311D2 SoC, based on the Amlogic T7 SoC
family, on a board with the same form factor as the VIM3 models.
- 8GB LPDDR4X 2016MHz
- 32GB eMMC 5.1 storage
- 32MB SPI flash
- 10/100/1000 Base-T Ethernet
- AP6275S Wireless (802.11 a/b/g/n/ac/ax, BT5.1)
- HDMI 2.1 video
- HDMI Input
- 1x USB 2.0 + 1x USB 3.0 ports
- 1x USB-C (power) with USB 2.0 OTG
- 3x LED's (1x red, 1x blue, 1x white)
- 3x buttons (power, function, reset)
- M2 socket with PCIe, USB, ADC & I2C
- 40pin GPIO Header
- 1x micro SD card slot
Signed-off-by: Lucas Tanure <tanure@linux.com>
---
arch/arm64/boot/dts/amlogic/Makefile | 1 +
.../amlogic/amlogic-t7-a311d2-khadas-vim4.dts | 54 ++++++
arch/arm64/boot/dts/amlogic/amlogic-t7.dtsi | 155 ++++++++++++++++++
3 files changed, 210 insertions(+)
create mode 100644 arch/arm64/boot/dts/amlogic/amlogic-t7-a311d2-khadas-vim4.dts
create mode 100644 arch/arm64/boot/dts/amlogic/amlogic-t7.dtsi
--
2.41.0
Comments
On 2023/6/29 15:34, Lucas Tanure wrote: > [ EXTERNAL EMAIL ] > > The Khadas VIM4 uses the Amlogic A311D2 SoC, based on the Amlogic T7 SoC > family, on a board with the same form factor as the VIM3 models. > > - 8GB LPDDR4X 2016MHz > - 32GB eMMC 5.1 storage > - 32MB SPI flash > - 10/100/1000 Base-T Ethernet > - AP6275S Wireless (802.11 a/b/g/n/ac/ax, BT5.1) > - HDMI 2.1 video > - HDMI Input > - 1x USB 2.0 + 1x USB 3.0 ports > - 1x USB-C (power) with USB 2.0 OTG > - 3x LED's (1x red, 1x blue, 1x white) > - 3x buttons (power, function, reset) > - M2 socket with PCIe, USB, ADC & I2C > - 40pin GPIO Header > - 1x micro SD card slot > > Signed-off-by: Lucas Tanure <tanure@linux.com> > --- > arch/arm64/boot/dts/amlogic/Makefile | 1 + > .../amlogic/amlogic-t7-a311d2-khadas-vim4.dts | 54 ++++++ > arch/arm64/boot/dts/amlogic/amlogic-t7.dtsi | 155 ++++++++++++++++++ > 3 files changed, 210 insertions(+) > create mode 100644 arch/arm64/boot/dts/amlogic/amlogic-t7-a311d2-khadas-vim4.dts > create mode 100644 arch/arm64/boot/dts/amlogic/amlogic-t7.dtsi > > diff --git a/arch/arm64/boot/dts/amlogic/Makefile b/arch/arm64/boot/dts/amlogic/Makefile > index cd1c5b04890a..166fec1e4229 100644 > --- a/arch/arm64/boot/dts/amlogic/Makefile > +++ b/arch/arm64/boot/dts/amlogic/Makefile > @@ -1,4 +1,5 @@ > # SPDX-License-Identifier: GPL-2.0 > +dtb-$(CONFIG_ARCH_MESON) += amlogic-t7-a311d2-khadas-vim4.dtb > dtb-$(CONFIG_ARCH_MESON) += meson-a1-ad401.dtb > dtb-$(CONFIG_ARCH_MESON) += meson-axg-jethome-jethub-j100.dtb > dtb-$(CONFIG_ARCH_MESON) += meson-axg-jethome-jethub-j110-rev-2.dtb > diff --git a/arch/arm64/boot/dts/amlogic/amlogic-t7-a311d2-khadas-vim4.dts b/arch/arm64/boot/dts/amlogic/amlogic-t7-a311d2-khadas-vim4.dts > new file mode 100644 > index 000000000000..fffdab96b12e > --- /dev/null > +++ b/arch/arm64/boot/dts/amlogic/amlogic-t7-a311d2-khadas-vim4.dts > @@ -0,0 +1,54 @@ > +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) > +/* > + * Copyright (c) 2022 Wesion, Inc. All rights reserved. > + */ > + > +/dts-v1/; > + > +#include "amlogic-t7.dtsi" > + > +/ { > + model = "Khadas vim4"; > + compatible = "khadas,vim4", "amlogic,a311d2", "amlogic,t7"; > + > + aliases { > + serial0 = &uart_a; > + }; > + > + memory@0 { > + device_type = "memory"; > + reg = <0x0 0x0 0x2 0x0>; /* 8 GB */ > + }; > + > + reserved-memory { > + #address-cells = <2>; > + #size-cells = <2>; > + ranges; > + > + /* 3 MiB reserved for ARM Trusted Firmware (BL31) */ > + secmon_reserved: secmon@5000000 { > + reg = <0x0 0x05000000 0x0 0x300000>; > + no-map; > + }; > + > + /* 32 MiB reserved for ARM Trusted Firmware (BL32) */ > + secmon_reserved_bl32: secmon@5300000 { > + reg = <0x0 0x05300000 0x0 0x2000000>; > + no-map; > + }; > + }; > + > + xtal: xtal-clk { > + compatible = "fixed-clock"; > + clock-frequency = <24000000>; > + clock-output-names = "xtal"; > + #clock-cells = <0>; > + }; Place xal in DTSI files is beterr, the same as other Amlogic SoCs family. If frequency is different, reset value in here. > + > +}; > + > +&uart_a { > + status = "okay"; > + clocks = <&xtal>, <&xtal>, <&xtal>; > + clock-names = "xtal", "pclk", "baud"; > +}; > diff --git a/arch/arm64/boot/dts/amlogic/amlogic-t7.dtsi b/arch/arm64/boot/dts/amlogic/amlogic-t7.dtsi > new file mode 100644 > index 000000000000..1423d4a79156 > --- /dev/null > +++ b/arch/arm64/boot/dts/amlogic/amlogic-t7.dtsi > @@ -0,0 +1,155 @@ > +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) > +/* > + * Copyright (c) 2019 Amlogic, Inc. All rights reserved. > + */ > + > +#include <dt-bindings/interrupt-controller/arm-gic.h> > + > +/ { > + interrupt-parent = <&gic>; > + #address-cells = <2>; > + #size-cells = <2>; > + > + cpus { > + #address-cells = <0x2>; > + #size-cells = <0x0>; > + > + cpu-map { > + cluster0 { > + core0 { > + cpu = <&cpu100>; > + }; > + core1 { > + cpu = <&cpu101>; > + }; > + core2 { > + cpu = <&cpu102>; > + }; > + core3 { > + cpu = <&cpu103>; > + }; > + }; > + > + cluster1 { > + core0 { > + cpu = <&cpu0>; > + }; > + core1 { > + cpu = <&cpu1>; > + }; > + core2 { > + cpu = <&cpu2>; > + }; > + core3 { > + cpu = <&cpu3>; > + }; > + }; > + }; > + > + cpu100: cpu@100 { > + device_type = "cpu"; > + compatible = "arm,cortex-a53"; > + reg = <0x0 0x100>; > + enable-method = "psci"; > + }; > + > + cpu101: cpu@101{ > + device_type = "cpu"; > + compatible = "arm,cortex-a53"; > + reg = <0x0 0x101>; > + enable-method = "psci"; > + }; > + > + cpu102: cpu@102 { > + device_type = "cpu"; > + compatible = "arm,cortex-a53"; > + reg = <0x0 0x102>; > + enable-method = "psci"; > + }; > + > + cpu103: cpu@103 { > + device_type = "cpu"; > + compatible = "arm,cortex-a53"; > + reg = <0x0 0x103>; > + enable-method = "psci"; > + }; > + > + cpu0: cpu@0 { > + device_type = "cpu"; > + compatible = "arm,cortex-a73"; > + reg = <0x0 0x0>; > + enable-method = "psci"; > + }; > + > + cpu1: cpu@1 { > + device_type = "cpu"; > + compatible = "arm,cortex-a73"; > + reg = <0x0 0x1>; > + enable-method = "psci"; > + }; > + > + cpu2: cpu@2 { > + device_type = "cpu"; > + compatible = "arm,cortex-a73"; > + reg = <0x0 0x2>; > + enable-method = "psci"; > + }; > + > + cpu3: cpu@3 { > + device_type = "cpu"; > + compatible = "arm,cortex-a73"; > + reg = <0x0 0x3>; > + enable-method = "psci"; > + }; > + }; > + > + timer { > + compatible = "arm,armv8-timer"; > + interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>, > + <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>, > + <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>, > + <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>; > + }; > + > + psci { > + compatible = "arm,psci-1.0"; > + method = "smc"; > + }; > + > + sm: secure-monitor { > + compatible = "amlogic,meson-gxbb-sm"; > + }; > + > + soc { > + compatible = "simple-bus"; > + #address-cells = <2>; > + #size-cells = <2>; > + ranges; > + > + gic: interrupt-controller@fff01000 { > + compatible = "arm,gic-400"; > + #interrupt-cells = <3>; > + #address-cells = <0>; > + interrupt-controller; > + reg = <0x0 0xfff01000 0 0x1000>, > + <0x0 0xfff02000 0 0x0100>; > + interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_HIGH)>; > + }; > + > + apb4: bus@fe000000 { > + compatible = "simple-bus"; > + reg = <0x0 0xfe000000 0x0 0x480000>; > + #address-cells = <2>; > + #size-cells = <2>; > + ranges = <0x0 0x0 0x0 0xfe000000 0x0 0x480000>; > + > + uart_a: serial@78000 { > + compatible = "amlogic,t7-uart", "amlogic,meson-s4-uart"; > + reg = <0x0 0x78000 0x0 0x18>; > + interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>; > + status = "disabled"; > + }; > + }; > + > + }; > +}; > -- > 2.41.0 >
Hi, On 03/07/2023 04:39, Xianwei Zhao wrote: > > > On 2023/6/29 15:34, Lucas Tanure wrote: >> [ EXTERNAL EMAIL ] >> >> The Khadas VIM4 uses the Amlogic A311D2 SoC, based on the Amlogic T7 SoC >> family, on a board with the same form factor as the VIM3 models. >> >> - 8GB LPDDR4X 2016MHz >> - 32GB eMMC 5.1 storage >> - 32MB SPI flash >> - 10/100/1000 Base-T Ethernet >> - AP6275S Wireless (802.11 a/b/g/n/ac/ax, BT5.1) >> - HDMI 2.1 video >> - HDMI Input >> - 1x USB 2.0 + 1x USB 3.0 ports >> - 1x USB-C (power) with USB 2.0 OTG >> - 3x LED's (1x red, 1x blue, 1x white) >> - 3x buttons (power, function, reset) >> - M2 socket with PCIe, USB, ADC & I2C >> - 40pin GPIO Header >> - 1x micro SD card slot >> >> Signed-off-by: Lucas Tanure <tanure@linux.com> >> --- >> arch/arm64/boot/dts/amlogic/Makefile | 1 + >> .../amlogic/amlogic-t7-a311d2-khadas-vim4.dts | 54 ++++++ >> arch/arm64/boot/dts/amlogic/amlogic-t7.dtsi | 155 ++++++++++++++++++ >> 3 files changed, 210 insertions(+) >> create mode 100644 arch/arm64/boot/dts/amlogic/amlogic-t7-a311d2-khadas-vim4.dts >> create mode 100644 arch/arm64/boot/dts/amlogic/amlogic-t7.dtsi >> >> diff --git a/arch/arm64/boot/dts/amlogic/Makefile b/arch/arm64/boot/dts/amlogic/Makefile >> index cd1c5b04890a..166fec1e4229 100644 >> --- a/arch/arm64/boot/dts/amlogic/Makefile >> +++ b/arch/arm64/boot/dts/amlogic/Makefile >> @@ -1,4 +1,5 @@ >> # SPDX-License-Identifier: GPL-2.0 >> +dtb-$(CONFIG_ARCH_MESON) += amlogic-t7-a311d2-khadas-vim4.dtb >> dtb-$(CONFIG_ARCH_MESON) += meson-a1-ad401.dtb >> dtb-$(CONFIG_ARCH_MESON) += meson-axg-jethome-jethub-j100.dtb >> dtb-$(CONFIG_ARCH_MESON) += meson-axg-jethome-jethub-j110-rev-2.dtb >> diff --git a/arch/arm64/boot/dts/amlogic/amlogic-t7-a311d2-khadas-vim4.dts b/arch/arm64/boot/dts/amlogic/amlogic-t7-a311d2-khadas-vim4.dts >> new file mode 100644 >> index 000000000000..fffdab96b12e >> --- /dev/null >> +++ b/arch/arm64/boot/dts/amlogic/amlogic-t7-a311d2-khadas-vim4.dts >> @@ -0,0 +1,54 @@ >> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) >> +/* >> + * Copyright (c) 2022 Wesion, Inc. All rights reserved. >> + */ >> + >> +/dts-v1/; >> + >> +#include "amlogic-t7.dtsi" >> + >> +/ { >> + model = "Khadas vim4"; >> + compatible = "khadas,vim4", "amlogic,a311d2", "amlogic,t7"; >> + >> + aliases { >> + serial0 = &uart_a; >> + }; >> + >> + memory@0 { >> + device_type = "memory"; >> + reg = <0x0 0x0 0x2 0x0>; /* 8 GB */ >> + }; >> + >> + reserved-memory { >> + #address-cells = <2>; >> + #size-cells = <2>; >> + ranges; >> + >> + /* 3 MiB reserved for ARM Trusted Firmware (BL31) */ >> + secmon_reserved: secmon@5000000 { >> + reg = <0x0 0x05000000 0x0 0x300000>; >> + no-map; >> + }; >> + >> + /* 32 MiB reserved for ARM Trusted Firmware (BL32) */ >> + secmon_reserved_bl32: secmon@5300000 { >> + reg = <0x0 0x05300000 0x0 0x2000000>; >> + no-map; >> + }; >> + }; >> + >> + xtal: xtal-clk { >> + compatible = "fixed-clock"; >> + clock-frequency = <24000000>; >> + clock-output-names = "xtal"; >> + #clock-cells = <0>; >> + }; > Place xal in DTSI files is beterr, the same as other Amlogic SoCs family. If frequency is different, reset value in here. It's expected to have xtal in the board dts, since it's part of the board not the SoC. Neil > >> + >> +}; >> + >> +&uart_a { >> + status = "okay"; >> + clocks = <&xtal>, <&xtal>, <&xtal>; >> + clock-names = "xtal", "pclk", "baud"; >> +}; >> diff --git a/arch/arm64/boot/dts/amlogic/amlogic-t7.dtsi b/arch/arm64/boot/dts/amlogic/amlogic-t7.dtsi >> new file mode 100644 >> index 000000000000..1423d4a79156 >> --- /dev/null >> +++ b/arch/arm64/boot/dts/amlogic/amlogic-t7.dtsi >> @@ -0,0 +1,155 @@ >> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) >> +/* >> + * Copyright (c) 2019 Amlogic, Inc. All rights reserved. >> + */ >> + >> +#include <dt-bindings/interrupt-controller/arm-gic.h> >> + >> +/ { >> + interrupt-parent = <&gic>; >> + #address-cells = <2>; >> + #size-cells = <2>; >> + >> + cpus { >> + #address-cells = <0x2>; >> + #size-cells = <0x0>; >> + >> + cpu-map { >> + cluster0 { >> + core0 { >> + cpu = <&cpu100>; >> + }; >> + core1 { >> + cpu = <&cpu101>; >> + }; >> + core2 { >> + cpu = <&cpu102>; >> + }; >> + core3 { >> + cpu = <&cpu103>; >> + }; >> + }; >> + >> + cluster1 { >> + core0 { >> + cpu = <&cpu0>; >> + }; >> + core1 { >> + cpu = <&cpu1>; >> + }; >> + core2 { >> + cpu = <&cpu2>; >> + }; >> + core3 { >> + cpu = <&cpu3>; >> + }; >> + }; >> + }; >> + >> + cpu100: cpu@100 { >> + device_type = "cpu"; >> + compatible = "arm,cortex-a53"; >> + reg = <0x0 0x100>; >> + enable-method = "psci"; >> + }; >> + >> + cpu101: cpu@101{ >> + device_type = "cpu"; >> + compatible = "arm,cortex-a53"; >> + reg = <0x0 0x101>; >> + enable-method = "psci"; >> + }; >> + >> + cpu102: cpu@102 { >> + device_type = "cpu"; >> + compatible = "arm,cortex-a53"; >> + reg = <0x0 0x102>; >> + enable-method = "psci"; >> + }; >> + >> + cpu103: cpu@103 { >> + device_type = "cpu"; >> + compatible = "arm,cortex-a53"; >> + reg = <0x0 0x103>; >> + enable-method = "psci"; >> + }; >> + >> + cpu0: cpu@0 { >> + device_type = "cpu"; >> + compatible = "arm,cortex-a73"; >> + reg = <0x0 0x0>; >> + enable-method = "psci"; >> + }; >> + >> + cpu1: cpu@1 { >> + device_type = "cpu"; >> + compatible = "arm,cortex-a73"; >> + reg = <0x0 0x1>; >> + enable-method = "psci"; >> + }; >> + >> + cpu2: cpu@2 { >> + device_type = "cpu"; >> + compatible = "arm,cortex-a73"; >> + reg = <0x0 0x2>; >> + enable-method = "psci"; >> + }; >> + >> + cpu3: cpu@3 { >> + device_type = "cpu"; >> + compatible = "arm,cortex-a73"; >> + reg = <0x0 0x3>; >> + enable-method = "psci"; >> + }; >> + }; >> + >> + timer { >> + compatible = "arm,armv8-timer"; >> + interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>, >> + <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>, >> + <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>, >> + <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>; >> + }; >> + >> + psci { >> + compatible = "arm,psci-1.0"; >> + method = "smc"; >> + }; >> + >> + sm: secure-monitor { >> + compatible = "amlogic,meson-gxbb-sm"; >> + }; >> + >> + soc { >> + compatible = "simple-bus"; >> + #address-cells = <2>; >> + #size-cells = <2>; >> + ranges; >> + >> + gic: interrupt-controller@fff01000 { >> + compatible = "arm,gic-400"; >> + #interrupt-cells = <3>; >> + #address-cells = <0>; >> + interrupt-controller; >> + reg = <0x0 0xfff01000 0 0x1000>, >> + <0x0 0xfff02000 0 0x0100>; >> + interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_HIGH)>; >> + }; >> + >> + apb4: bus@fe000000 { >> + compatible = "simple-bus"; >> + reg = <0x0 0xfe000000 0x0 0x480000>; >> + #address-cells = <2>; >> + #size-cells = <2>; >> + ranges = <0x0 0x0 0x0 0xfe000000 0x0 0x480000>; >> + >> + uart_a: serial@78000 { >> + compatible = "amlogic,t7-uart", "amlogic,meson-s4-uart"; >> + reg = <0x0 0x78000 0x0 0x18>; >> + interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>; >> + status = "disabled"; >> + }; >> + }; >> + >> + }; >> +}; >> -- >> 2.41.0 >>
On 29/06/2023 09:34, Lucas Tanure wrote: > The Khadas VIM4 uses the Amlogic A311D2 SoC, based on the Amlogic T7 SoC > family, on a board with the same form factor as the VIM3 models. > > - 8GB LPDDR4X 2016MHz > - 32GB eMMC 5.1 storage > - 32MB SPI flash > - 10/100/1000 Base-T Ethernet > - AP6275S Wireless (802.11 a/b/g/n/ac/ax, BT5.1) > - HDMI 2.1 video > - HDMI Input > - 1x USB 2.0 + 1x USB 3.0 ports > - 1x USB-C (power) with USB 2.0 OTG > - 3x LED's (1x red, 1x blue, 1x white) > - 3x buttons (power, function, reset) > - M2 socket with PCIe, USB, ADC & I2C > - 40pin GPIO Header > - 1x micro SD card slot > > Signed-off-by: Lucas Tanure <tanure@linux.com> > --- > arch/arm64/boot/dts/amlogic/Makefile | 1 + > .../amlogic/amlogic-t7-a311d2-khadas-vim4.dts | 54 ++++++ > arch/arm64/boot/dts/amlogic/amlogic-t7.dtsi | 155 ++++++++++++++++++ > 3 files changed, 210 insertions(+) > create mode 100644 arch/arm64/boot/dts/amlogic/amlogic-t7-a311d2-khadas-vim4.dts > create mode 100644 arch/arm64/boot/dts/amlogic/amlogic-t7.dtsi > > diff --git a/arch/arm64/boot/dts/amlogic/Makefile b/arch/arm64/boot/dts/amlogic/Makefile > index cd1c5b04890a..166fec1e4229 100644 > --- a/arch/arm64/boot/dts/amlogic/Makefile > +++ b/arch/arm64/boot/dts/amlogic/Makefile > @@ -1,4 +1,5 @@ > # SPDX-License-Identifier: GPL-2.0 > +dtb-$(CONFIG_ARCH_MESON) += amlogic-t7-a311d2-khadas-vim4.dtb > dtb-$(CONFIG_ARCH_MESON) += meson-a1-ad401.dtb > dtb-$(CONFIG_ARCH_MESON) += meson-axg-jethome-jethub-j100.dtb > dtb-$(CONFIG_ARCH_MESON) += meson-axg-jethome-jethub-j110-rev-2.dtb > diff --git a/arch/arm64/boot/dts/amlogic/amlogic-t7-a311d2-khadas-vim4.dts b/arch/arm64/boot/dts/amlogic/amlogic-t7-a311d2-khadas-vim4.dts > new file mode 100644 > index 000000000000..fffdab96b12e > --- /dev/null > +++ b/arch/arm64/boot/dts/amlogic/amlogic-t7-a311d2-khadas-vim4.dts > @@ -0,0 +1,54 @@ > +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) > +/* > + * Copyright (c) 2022 Wesion, Inc. All rights reserved. > + */ > + > +/dts-v1/; > + > +#include "amlogic-t7.dtsi" > + > +/ { > + model = "Khadas vim4"; > + compatible = "khadas,vim4", "amlogic,a311d2", "amlogic,t7"; > + > + aliases { > + serial0 = &uart_a; > + }; > + > + memory@0 { > + device_type = "memory"; > + reg = <0x0 0x0 0x2 0x0>; /* 8 GB */ > + }; > + > + reserved-memory { > + #address-cells = <2>; > + #size-cells = <2>; > + ranges; > + > + /* 3 MiB reserved for ARM Trusted Firmware (BL31) */ > + secmon_reserved: secmon@5000000 { > + reg = <0x0 0x05000000 0x0 0x300000>; > + no-map; > + }; > + > + /* 32 MiB reserved for ARM Trusted Firmware (BL32) */ > + secmon_reserved_bl32: secmon@5300000 { > + reg = <0x0 0x05300000 0x0 0x2000000>; > + no-map; > + }; > + }; > + > + xtal: xtal-clk { > + compatible = "fixed-clock"; > + clock-frequency = <24000000>; > + clock-output-names = "xtal"; > + #clock-cells = <0>; > + }; > + > +}; > + > +&uart_a { > + status = "okay"; > + clocks = <&xtal>, <&xtal>, <&xtal>; > + clock-names = "xtal", "pclk", "baud"; > +}; > diff --git a/arch/arm64/boot/dts/amlogic/amlogic-t7.dtsi b/arch/arm64/boot/dts/amlogic/amlogic-t7.dtsi > new file mode 100644 > index 000000000000..1423d4a79156 > --- /dev/null > +++ b/arch/arm64/boot/dts/amlogic/amlogic-t7.dtsi > @@ -0,0 +1,155 @@ > +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) > +/* > + * Copyright (c) 2019 Amlogic, Inc. All rights reserved. > + */ > + > +#include <dt-bindings/interrupt-controller/arm-gic.h> > + > +/ { > + interrupt-parent = <&gic>; > + #address-cells = <2>; > + #size-cells = <2>; > + > + cpus { > + #address-cells = <0x2>; > + #size-cells = <0x0>; > + > + cpu-map { > + cluster0 { > + core0 { > + cpu = <&cpu100>; > + }; > + core1 { > + cpu = <&cpu101>; > + }; > + core2 { > + cpu = <&cpu102>; > + }; > + core3 { > + cpu = <&cpu103>; > + }; > + }; > + > + cluster1 { > + core0 { > + cpu = <&cpu0>; > + }; > + core1 { > + cpu = <&cpu1>; > + }; > + core2 { > + cpu = <&cpu2>; > + }; > + core3 { > + cpu = <&cpu3>; > + }; > + }; > + }; > + > + cpu100: cpu@100 { > + device_type = "cpu"; > + compatible = "arm,cortex-a53"; > + reg = <0x0 0x100>; > + enable-method = "psci"; > + }; > + > + cpu101: cpu@101{ > + device_type = "cpu"; > + compatible = "arm,cortex-a53"; > + reg = <0x0 0x101>; > + enable-method = "psci"; > + }; > + > + cpu102: cpu@102 { > + device_type = "cpu"; > + compatible = "arm,cortex-a53"; > + reg = <0x0 0x102>; > + enable-method = "psci"; > + }; > + > + cpu103: cpu@103 { > + device_type = "cpu"; > + compatible = "arm,cortex-a53"; > + reg = <0x0 0x103>; > + enable-method = "psci"; > + }; > + > + cpu0: cpu@0 { > + device_type = "cpu"; > + compatible = "arm,cortex-a73"; > + reg = <0x0 0x0>; > + enable-method = "psci"; > + }; > + > + cpu1: cpu@1 { > + device_type = "cpu"; > + compatible = "arm,cortex-a73"; > + reg = <0x0 0x1>; > + enable-method = "psci"; > + }; > + > + cpu2: cpu@2 { > + device_type = "cpu"; > + compatible = "arm,cortex-a73"; > + reg = <0x0 0x2>; > + enable-method = "psci"; > + }; > + > + cpu3: cpu@3 { > + device_type = "cpu"; > + compatible = "arm,cortex-a73"; > + reg = <0x0 0x3>; > + enable-method = "psci"; > + }; > + }; > + > + timer { > + compatible = "arm,armv8-timer"; > + interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>, > + <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>, > + <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>, > + <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>; > + }; > + > + psci { > + compatible = "arm,psci-1.0"; > + method = "smc"; > + }; > + > + sm: secure-monitor { > + compatible = "amlogic,meson-gxbb-sm"; > + }; > + > + soc { > + compatible = "simple-bus"; > + #address-cells = <2>; > + #size-cells = <2>; > + ranges; > + > + gic: interrupt-controller@fff01000 { > + compatible = "arm,gic-400"; > + #interrupt-cells = <3>; > + #address-cells = <0>; > + interrupt-controller; > + reg = <0x0 0xfff01000 0 0x1000>, > + <0x0 0xfff02000 0 0x0100>; > + interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_HIGH)>; > + }; > + > + apb4: bus@fe000000 { > + compatible = "simple-bus"; > + reg = <0x0 0xfe000000 0x0 0x480000>; > + #address-cells = <2>; > + #size-cells = <2>; > + ranges = <0x0 0x0 0x0 0xfe000000 0x0 0x480000>; > + > + uart_a: serial@78000 { > + compatible = "amlogic,t7-uart", "amlogic,meson-s4-uart"; > + reg = <0x0 0x78000 0x0 0x18>; > + interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>; > + status = "disabled"; > + }; > + }; > + > + }; > +}; > -- > 2.41.0 > Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
diff --git a/arch/arm64/boot/dts/amlogic/Makefile b/arch/arm64/boot/dts/amlogic/Makefile index cd1c5b04890a..166fec1e4229 100644 --- a/arch/arm64/boot/dts/amlogic/Makefile +++ b/arch/arm64/boot/dts/amlogic/Makefile @@ -1,4 +1,5 @@ # SPDX-License-Identifier: GPL-2.0 +dtb-$(CONFIG_ARCH_MESON) += amlogic-t7-a311d2-khadas-vim4.dtb dtb-$(CONFIG_ARCH_MESON) += meson-a1-ad401.dtb dtb-$(CONFIG_ARCH_MESON) += meson-axg-jethome-jethub-j100.dtb dtb-$(CONFIG_ARCH_MESON) += meson-axg-jethome-jethub-j110-rev-2.dtb diff --git a/arch/arm64/boot/dts/amlogic/amlogic-t7-a311d2-khadas-vim4.dts b/arch/arm64/boot/dts/amlogic/amlogic-t7-a311d2-khadas-vim4.dts new file mode 100644 index 000000000000..fffdab96b12e --- /dev/null +++ b/arch/arm64/boot/dts/amlogic/amlogic-t7-a311d2-khadas-vim4.dts @@ -0,0 +1,54 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* + * Copyright (c) 2022 Wesion, Inc. All rights reserved. + */ + +/dts-v1/; + +#include "amlogic-t7.dtsi" + +/ { + model = "Khadas vim4"; + compatible = "khadas,vim4", "amlogic,a311d2", "amlogic,t7"; + + aliases { + serial0 = &uart_a; + }; + + memory@0 { + device_type = "memory"; + reg = <0x0 0x0 0x2 0x0>; /* 8 GB */ + }; + + reserved-memory { + #address-cells = <2>; + #size-cells = <2>; + ranges; + + /* 3 MiB reserved for ARM Trusted Firmware (BL31) */ + secmon_reserved: secmon@5000000 { + reg = <0x0 0x05000000 0x0 0x300000>; + no-map; + }; + + /* 32 MiB reserved for ARM Trusted Firmware (BL32) */ + secmon_reserved_bl32: secmon@5300000 { + reg = <0x0 0x05300000 0x0 0x2000000>; + no-map; + }; + }; + + xtal: xtal-clk { + compatible = "fixed-clock"; + clock-frequency = <24000000>; + clock-output-names = "xtal"; + #clock-cells = <0>; + }; + +}; + +&uart_a { + status = "okay"; + clocks = <&xtal>, <&xtal>, <&xtal>; + clock-names = "xtal", "pclk", "baud"; +}; diff --git a/arch/arm64/boot/dts/amlogic/amlogic-t7.dtsi b/arch/arm64/boot/dts/amlogic/amlogic-t7.dtsi new file mode 100644 index 000000000000..1423d4a79156 --- /dev/null +++ b/arch/arm64/boot/dts/amlogic/amlogic-t7.dtsi @@ -0,0 +1,155 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* + * Copyright (c) 2019 Amlogic, Inc. All rights reserved. + */ + +#include <dt-bindings/interrupt-controller/arm-gic.h> + +/ { + interrupt-parent = <&gic>; + #address-cells = <2>; + #size-cells = <2>; + + cpus { + #address-cells = <0x2>; + #size-cells = <0x0>; + + cpu-map { + cluster0 { + core0 { + cpu = <&cpu100>; + }; + core1 { + cpu = <&cpu101>; + }; + core2 { + cpu = <&cpu102>; + }; + core3 { + cpu = <&cpu103>; + }; + }; + + cluster1 { + core0 { + cpu = <&cpu0>; + }; + core1 { + cpu = <&cpu1>; + }; + core2 { + cpu = <&cpu2>; + }; + core3 { + cpu = <&cpu3>; + }; + }; + }; + + cpu100: cpu@100 { + device_type = "cpu"; + compatible = "arm,cortex-a53"; + reg = <0x0 0x100>; + enable-method = "psci"; + }; + + cpu101: cpu@101{ + device_type = "cpu"; + compatible = "arm,cortex-a53"; + reg = <0x0 0x101>; + enable-method = "psci"; + }; + + cpu102: cpu@102 { + device_type = "cpu"; + compatible = "arm,cortex-a53"; + reg = <0x0 0x102>; + enable-method = "psci"; + }; + + cpu103: cpu@103 { + device_type = "cpu"; + compatible = "arm,cortex-a53"; + reg = <0x0 0x103>; + enable-method = "psci"; + }; + + cpu0: cpu@0 { + device_type = "cpu"; + compatible = "arm,cortex-a73"; + reg = <0x0 0x0>; + enable-method = "psci"; + }; + + cpu1: cpu@1 { + device_type = "cpu"; + compatible = "arm,cortex-a73"; + reg = <0x0 0x1>; + enable-method = "psci"; + }; + + cpu2: cpu@2 { + device_type = "cpu"; + compatible = "arm,cortex-a73"; + reg = <0x0 0x2>; + enable-method = "psci"; + }; + + cpu3: cpu@3 { + device_type = "cpu"; + compatible = "arm,cortex-a73"; + reg = <0x0 0x3>; + enable-method = "psci"; + }; + }; + + timer { + compatible = "arm,armv8-timer"; + interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>, + <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>, + <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>, + <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>; + }; + + psci { + compatible = "arm,psci-1.0"; + method = "smc"; + }; + + sm: secure-monitor { + compatible = "amlogic,meson-gxbb-sm"; + }; + + soc { + compatible = "simple-bus"; + #address-cells = <2>; + #size-cells = <2>; + ranges; + + gic: interrupt-controller@fff01000 { + compatible = "arm,gic-400"; + #interrupt-cells = <3>; + #address-cells = <0>; + interrupt-controller; + reg = <0x0 0xfff01000 0 0x1000>, + <0x0 0xfff02000 0 0x0100>; + interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_HIGH)>; + }; + + apb4: bus@fe000000 { + compatible = "simple-bus"; + reg = <0x0 0xfe000000 0x0 0x480000>; + #address-cells = <2>; + #size-cells = <2>; + ranges = <0x0 0x0 0x0 0xfe000000 0x0 0x480000>; + + uart_a: serial@78000 { + compatible = "amlogic,t7-uart", "amlogic,meson-s4-uart"; + reg = <0x0 0x78000 0x0 0x18>; + interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>; + status = "disabled"; + }; + }; + + }; +};