Message ID | 20230510091129.151669-1-xianwei.zhao@amlogic.com |
---|---|
State | New |
Headers |
Return-Path: <linux-kernel-owner@vger.kernel.org> Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp3480751vqo; Wed, 10 May 2023 02:22:51 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ6la5o8Xc6FcyR24IiNzAnu67dRe4GyVVa2vMkZFpsO/HRGsEmK2hqCwOdpQc1sdmZr9Tk1 X-Received: by 2002:a05:6a20:4c8:b0:ec:6039:f76f with SMTP id 8-20020a056a2004c800b000ec6039f76fmr16339224pzd.11.1683710570819; Wed, 10 May 2023 02:22:50 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1683710570; cv=none; d=google.com; s=arc-20160816; b=uFgwy38qFhB/LQ3371JKo/ZarOuN9FhK0rdYLWnNX8adMqQyHp0M/umRcur7tG0rU6 1dP2m3Ql3rh5cw1ncEQP98eDJYatOakdLT9BQPPOWW+OZ3urFYYyxj3V3aQlo7TbWKCd W/tKeO8NenAcVWGbg9bAqhnlPMxXB6fGHA+mebZYnHTYVall2S26B2FJkp+6H43WR1cb FSIOTsuYGS6F2PkTVEyyedp7mIdAG+Y+/sDSbrEfCMoBRsGbf+YWtiU4FRllCZqRfNoJ HBBxW9m4+LubY06xS5mILtUqkfRxIuDDOfmiqC3gjHRI/4vYTVCQHeZcO/0EmPqarV5A PUUg== 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 :message-id:date:subject:cc:to:from; bh=cATmMTmQhtjUjg5zOA3l+3CwTVxdCdDC/M+2BA8ofDo=; b=zApebt4lFm+ePZCnyBp3S9YlOUm7OKoxPJP7q9sF6Z3DhY49kJn7tOprcA07IA9TCG gm+qSpEy1M9ZOaHp0MuCNHhMo/O08+i7I2Yh+S7LBU+Ix41G2EL8dVaPRiOBfvNWPm2J Va0yi8sKK0/CPW5Ue6tA/SN9mygVLzwgjHClw5lqXVY6U8xon+r2VSirsqfikZWGK9Te BrB42R28qAam2RkSKi/pAZZRECBP0CWN+2nuvnvErsTBPwztwqqP9eK2Z6kspHnorEPl znSg94Mpv6MxeZ81Ohm7qpOMv2h/CwimGehGCwOroWOkoS2/lPfEAnP5/Q3hsGTpFpCB kwDg== 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=amlogic.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id p6-20020a625b06000000b006469e2271f0si4488038pfb.172.2023.05.10.02.22.37; Wed, 10 May 2023 02:22:50 -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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=amlogic.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236593AbjEJJM1 (ORCPT <rfc822;jeantsuru.cumc.mandola@gmail.com> + 99 others); Wed, 10 May 2023 05:12:27 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60538 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231486AbjEJJM0 (ORCPT <rfc822;linux-kernel@vger.kernel.org>); Wed, 10 May 2023 05:12:26 -0400 Received: from mail-sh.amlogic.com (mail-sh.amlogic.com [58.32.228.43]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4F6CB30CF; Wed, 10 May 2023 02:11:35 -0700 (PDT) Received: from droid01-cd.amlogic.com (10.98.11.200) by mail-sh.amlogic.com (10.18.11.5) with Microsoft SMTP Server id 15.1.2507.13; Wed, 10 May 2023 17:11:25 +0800 From: Xianwei Zhao <xianwei.zhao@amlogic.com> To: <linux-arm-kernel@lists.infradead.org>, <linux-kernel@vger.kernel.org>, <linux-amlogic@lists.infradead.org>, <devicetree@vger.kernel.org> CC: Catalin Marinas <catalin.marinas@arm.com>, Will Deacon <will@kernel.org>, Neil Armstrong <neil.armstrong@linaro.org>, Kevin Hilman <khilman@baylibre.com>, Rob Herring <robh+dt@kernel.org>, Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>, Xianwei Zhao <xianwei.zhao@amlogic.com> Subject: [PATCH V4] arm64: dts: add support for C3 based Amlogic AW409 Date: Wed, 10 May 2023 17:11:29 +0800 Message-ID: <20230510091129.151669-1-xianwei.zhao@amlogic.com> X-Mailer: git-send-email 2.37.1 MIME-Version: 1.0 Content-Transfer-Encoding: 7BIT Content-Type: text/plain; charset=US-ASCII X-Originating-IP: [10.98.11.200] X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,SPF_HELO_NONE, SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham 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?1765498495264764724?= X-GMAIL-MSGID: =?utf-8?q?1765498495264764724?= |
Series |
[V4] arm64: dts: add support for C3 based Amlogic AW409
|
|
Commit Message
Xianwei Zhao
May 10, 2023, 9:11 a.m. UTC
Amlogic C3 is an advanced edge AI processor designed for smart IP camera
applications.
Add basic support for the C3 based Amlogic AW409 board, which describes
the following components: CPU, GIC, IRQ, Timer, UART. It's capable of
booting up into the serial console.
Signed-off-by: Xianwei Zhao <xianwei.zhao@amlogic.com>
---
Link: https://lore.kernel.org/all/20230407102704.1055152-1-kelvin.zhang@amlogic.com
Link: https://lore.kernel.org/all/20230307222651.2106615-2-martin.blumenstingl@googlemail.com
V3 -> V4: Move Link under the --- before the changelog.
V2 -> V3: Remove '256m' from filename;
Keep alphabetical order of Makefile.
V1 -> V2: Remove new arch, and use ARCH_MESON;
Modify node name, and delete superfluous blank line.
---
arch/arm64/boot/dts/amlogic/Makefile | 1 +
.../dts/amlogic/amlogic-c3-c302x-aw409.dts | 29 +++++++
arch/arm64/boot/dts/amlogic/amlogic-c3.dtsi | 86 +++++++++++++++++++
3 files changed, 116 insertions(+)
create mode 100644 arch/arm64/boot/dts/amlogic/amlogic-c3-c302x-aw409.dts
create mode 100644 arch/arm64/boot/dts/amlogic/amlogic-c3.dtsi
base-commit: ae68fb187b59bc8645974320808ab2d7c41b1833
Comments
Hi, On 10/05/2023 11:11, Xianwei Zhao wrote: > Amlogic C3 is an advanced edge AI processor designed for smart IP camera > applications. > > Add basic support for the C3 based Amlogic AW409 board, which describes > the following components: CPU, GIC, IRQ, Timer, UART. It's capable of > booting up into the serial console. > > Signed-off-by: Xianwei Zhao <xianwei.zhao@amlogic.com> > --- > Link: https://lore.kernel.org/all/20230407102704.1055152-1-kelvin.zhang@amlogic.com > Link: https://lore.kernel.org/all/20230307222651.2106615-2-martin.blumenstingl@googlemail.com > > V3 -> V4: Move Link under the --- before the changelog. > V2 -> V3: Remove '256m' from filename; > Keep alphabetical order of Makefile. > V1 -> V2: Remove new arch, and use ARCH_MESON; > Modify node name, and delete superfluous blank line. > --- > arch/arm64/boot/dts/amlogic/Makefile | 1 + > .../dts/amlogic/amlogic-c3-c302x-aw409.dts | 29 +++++++ > arch/arm64/boot/dts/amlogic/amlogic-c3.dtsi | 86 +++++++++++++++++++ > 3 files changed, 116 insertions(+) > create mode 100644 arch/arm64/boot/dts/amlogic/amlogic-c3-c302x-aw409.dts > create mode 100644 arch/arm64/boot/dts/amlogic/amlogic-c3.dtsi > > diff --git a/arch/arm64/boot/dts/amlogic/Makefile b/arch/arm64/boot/dts/amlogic/Makefile > index cd1c5b04890a..6f61798a109f 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-c3-c302x-aw409.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-c3-c302x-aw409.dts b/arch/arm64/boot/dts/amlogic/amlogic-c3-c302x-aw409.dts > new file mode 100644 > index 000000000000..edce8850b338 > --- /dev/null > +++ b/arch/arm64/boot/dts/amlogic/amlogic-c3-c302x-aw409.dts > @@ -0,0 +1,29 @@ > +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) > +/* > + * Copyright (c) 2021 Amlogic, Inc. All rights reserved. > + */ > + > +/dts-v1/; > + > +#include "amlogic-c3.dtsi" > + > +/ { > + model = "Amlogic C302 aw409 Development Board"; > + compatible = "amlogic,aw409", "amlogic,c3"; > + interrupt-parent = <&gic>; > + #address-cells = <2>; > + #size-cells = <2>; > + > + aliases { > + serial0 = &uart_b; > + }; > + > + memory@0 { > + device_type = "memory"; > + reg = <0x0 0x0 0x0 0x10000000>; > + }; > +}; > + > +&uart_b { > + status = "okay"; > +}; > diff --git a/arch/arm64/boot/dts/amlogic/amlogic-c3.dtsi b/arch/arm64/boot/dts/amlogic/amlogic-c3.dtsi > new file mode 100644 > index 000000000000..93b335aef605 > --- /dev/null > +++ b/arch/arm64/boot/dts/amlogic/amlogic-c3.dtsi > @@ -0,0 +1,86 @@ > +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) > +/* > + * Copyright (c) 2021 Amlogic, Inc. All rights reserved. > + */ > + > +#include <dt-bindings/interrupt-controller/irq.h> > +#include <dt-bindings/interrupt-controller/arm-gic.h> > +#include <dt-bindings/gpio/gpio.h> > + > +/ { > + cpus { > + #address-cells = <2>; > + #size-cells = <0>; > + > + cpu0: cpu@0 { > + device_type = "cpu"; > + compatible = "arm,cortex-a35"; > + reg = <0x0 0x0>; > + enable-method = "psci"; > + }; > + > + cpu1: cpu@1 { > + device_type = "cpu"; > + compatible = "arm,cortex-a35"; > + reg = <0x0 0x1>; > + enable-method = "psci"; > + }; > + }; > + > + timer { > + compatible = "arm,armv8-timer"; > + interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, > + <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, > + <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, > + <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>; > + }; > + > + psci { > + compatible = "arm,psci-1.0"; > + method = "smc"; > + }; > + > + xtal: xtal-clk { > + compatible = "fixed-clock"; > + clock-frequency = <24000000>; > + clock-output-names = "xtal"; > + #clock-cells = <0>; > + }; > + > + 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 0x2000>, > + <0x0 0xfff04000 0 0x2000>, > + <0x0 0xfff06000 0 0x2000>; > + interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | 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_b: serial@7a000 { > + compatible = "amlogic,meson-g12a-uart"; This should be: compatible = "amlogic,meson-g12a-uart", "amlogic,meson-gx-uart" to match the amlogic,meson-uart.yaml bindings. Please run : make CHECK_DTBS=1 amlogic/amlogic-c3-c302x-aw409.dtb With that fixed, please add on v5: Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org> > + reg = <0x0 0x7a000 0x0 0x18>; > + interrupts = <GIC_SPI 169 IRQ_TYPE_EDGE_RISING>; > + status = "disabled"; > + clocks = <&xtal>, <&xtal>, <&xtal>; > + clock-names = "xtal", "pclk", "baud"; > + }; > + > + }; > + }; > +}; > > base-commit: ae68fb187b59bc8645974320808ab2d7c41b1833
Hi Neil, Thank you for your reply. On 2023/5/11 16:39, Neil Armstrong wrote: > [ EXTERNAL EMAIL ] > > Hi, > > On 10/05/2023 11:11, Xianwei Zhao wrote: >> Amlogic C3 is an advanced edge AI processor designed for smart IP camera >> applications. >> >> Add basic support for the C3 based Amlogic AW409 board, which describes >> the following components: CPU, GIC, IRQ, Timer, UART. It's capable of >> booting up into the serial console. >> >> Signed-off-by: Xianwei Zhao <xianwei.zhao@amlogic.com> >> --- >> Link: >> https://lore.kernel.org/all/20230407102704.1055152-1-kelvin.zhang@amlogic.com >> Link: >> https://lore.kernel.org/all/20230307222651.2106615-2-martin.blumenstingl@googlemail.com >> >> V3 -> V4: Move Link under the --- before the changelog. >> V2 -> V3: Remove '256m' from filename; >> Keep alphabetical order of Makefile. >> V1 -> V2: Remove new arch, and use ARCH_MESON; >> Modify node name, and delete superfluous blank line. >> --- >> arch/arm64/boot/dts/amlogic/Makefile | 1 + >> .../dts/amlogic/amlogic-c3-c302x-aw409.dts | 29 +++++++ >> arch/arm64/boot/dts/amlogic/amlogic-c3.dtsi | 86 +++++++++++++++++++ >> 3 files changed, 116 insertions(+) >> create mode 100644 >> arch/arm64/boot/dts/amlogic/amlogic-c3-c302x-aw409.dts >> create mode 100644 arch/arm64/boot/dts/amlogic/amlogic-c3.dtsi >> >> diff --git a/arch/arm64/boot/dts/amlogic/Makefile >> b/arch/arm64/boot/dts/amlogic/Makefile >> index cd1c5b04890a..6f61798a109f 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-c3-c302x-aw409.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-c3-c302x-aw409.dts >> b/arch/arm64/boot/dts/amlogic/amlogic-c3-c302x-aw409.dts >> new file mode 100644 >> index 000000000000..edce8850b338 >> --- /dev/null >> +++ b/arch/arm64/boot/dts/amlogic/amlogic-c3-c302x-aw409.dts >> @@ -0,0 +1,29 @@ >> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) >> +/* >> + * Copyright (c) 2021 Amlogic, Inc. All rights reserved. >> + */ >> + >> +/dts-v1/; >> + >> +#include "amlogic-c3.dtsi" >> + >> +/ { >> + model = "Amlogic C302 aw409 Development Board"; >> + compatible = "amlogic,aw409", "amlogic,c3"; >> + interrupt-parent = <&gic>; >> + #address-cells = <2>; >> + #size-cells = <2>; >> + >> + aliases { >> + serial0 = &uart_b; >> + }; >> + >> + memory@0 { >> + device_type = "memory"; >> + reg = <0x0 0x0 0x0 0x10000000>; >> + }; >> +}; >> + >> +&uart_b { >> + status = "okay"; >> +}; >> diff --git a/arch/arm64/boot/dts/amlogic/amlogic-c3.dtsi >> b/arch/arm64/boot/dts/amlogic/amlogic-c3.dtsi >> new file mode 100644 >> index 000000000000..93b335aef605 >> --- /dev/null >> +++ b/arch/arm64/boot/dts/amlogic/amlogic-c3.dtsi >> @@ -0,0 +1,86 @@ >> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) >> +/* >> + * Copyright (c) 2021 Amlogic, Inc. All rights reserved. >> + */ >> + >> +#include <dt-bindings/interrupt-controller/irq.h> >> +#include <dt-bindings/interrupt-controller/arm-gic.h> >> +#include <dt-bindings/gpio/gpio.h> >> + >> +/ { >> + cpus { >> + #address-cells = <2>; >> + #size-cells = <0>; >> + >> + cpu0: cpu@0 { >> + device_type = "cpu"; >> + compatible = "arm,cortex-a35"; >> + reg = <0x0 0x0>; >> + enable-method = "psci"; >> + }; >> + >> + cpu1: cpu@1 { >> + device_type = "cpu"; >> + compatible = "arm,cortex-a35"; >> + reg = <0x0 0x1>; >> + enable-method = "psci"; >> + }; >> + }; >> + >> + timer { >> + compatible = "arm,armv8-timer"; >> + interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | >> IRQ_TYPE_LEVEL_LOW)>, >> + <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | >> IRQ_TYPE_LEVEL_LOW)>, >> + <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | >> IRQ_TYPE_LEVEL_LOW)>, >> + <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | >> IRQ_TYPE_LEVEL_LOW)>; >> + }; >> + >> + psci { >> + compatible = "arm,psci-1.0"; >> + method = "smc"; >> + }; >> + >> + xtal: xtal-clk { >> + compatible = "fixed-clock"; >> + clock-frequency = <24000000>; >> + clock-output-names = "xtal"; >> + #clock-cells = <0>; >> + }; >> + >> + 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 0x2000>, >> + <0x0 0xfff04000 0 0x2000>, >> + <0x0 0xfff06000 0 0x2000>; >> + interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) >> | 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_b: serial@7a000 { >> + compatible = "amlogic,meson-g12a-uart"; > > This should be: > > compatible = "amlogic,meson-g12a-uart", "amlogic,meson-gx-uart" > > to match the amlogic,meson-uart.yaml bindings. > I will use strings 'amlogic,meson-s4-uart' instead of these, because of board C3 is only use 12M clock source for serial, the same as s4 series. > Please run : > make CHECK_DTBS=1 amlogic/amlogic-c3-c302x-aw409.dtb > > With that fixed, please add on v5: Will do. > > Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org> > >> + reg = <0x0 0x7a000 0x0 0x18>; >> + interrupts = <GIC_SPI 169 >> IRQ_TYPE_EDGE_RISING>; >> + status = "disabled"; >> + clocks = <&xtal>, <&xtal>, <&xtal>; >> + clock-names = "xtal", "pclk", "baud"; >> + }; >> + >> + }; >> + }; >> +}; >> >> base-commit: ae68fb187b59bc8645974320808ab2d7c41b1833 >
On 12/05/2023 09:03, xianwei.zhao wrote: > Hi Neil, > Thank you for your reply. > > On 2023/5/11 16:39, Neil Armstrong wrote: >> [ EXTERNAL EMAIL ] >> >> Hi, >> >> On 10/05/2023 11:11, Xianwei Zhao wrote: >>> Amlogic C3 is an advanced edge AI processor designed for smart IP camera >>> applications. >>> >>> Add basic support for the C3 based Amlogic AW409 board, which describes >>> the following components: CPU, GIC, IRQ, Timer, UART. It's capable of >>> booting up into the serial console. >>> >>> Signed-off-by: Xianwei Zhao <xianwei.zhao@amlogic.com> >>> --- >>> Link: https://lore.kernel.org/all/20230407102704.1055152-1-kelvin.zhang@amlogic.com >>> Link: https://lore.kernel.org/all/20230307222651.2106615-2-martin.blumenstingl@googlemail.com >>> >>> V3 -> V4: Move Link under the --- before the changelog. >>> V2 -> V3: Remove '256m' from filename; >>> Keep alphabetical order of Makefile. >>> V1 -> V2: Remove new arch, and use ARCH_MESON; >>> Modify node name, and delete superfluous blank line. >>> --- >>> arch/arm64/boot/dts/amlogic/Makefile | 1 + >>> .../dts/amlogic/amlogic-c3-c302x-aw409.dts | 29 +++++++ >>> arch/arm64/boot/dts/amlogic/amlogic-c3.dtsi | 86 +++++++++++++++++++ >>> 3 files changed, 116 insertions(+) >>> create mode 100644 arch/arm64/boot/dts/amlogic/amlogic-c3-c302x-aw409.dts >>> create mode 100644 arch/arm64/boot/dts/amlogic/amlogic-c3.dtsi >>> >>> diff --git a/arch/arm64/boot/dts/amlogic/Makefile b/arch/arm64/boot/dts/amlogic/Makefile >>> index cd1c5b04890a..6f61798a109f 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-c3-c302x-aw409.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-c3-c302x-aw409.dts b/arch/arm64/boot/dts/amlogic/amlogic-c3-c302x-aw409.dts >>> new file mode 100644 >>> index 000000000000..edce8850b338 >>> --- /dev/null >>> +++ b/arch/arm64/boot/dts/amlogic/amlogic-c3-c302x-aw409.dts >>> @@ -0,0 +1,29 @@ >>> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) >>> +/* >>> + * Copyright (c) 2021 Amlogic, Inc. All rights reserved. >>> + */ >>> + >>> +/dts-v1/; >>> + >>> +#include "amlogic-c3.dtsi" >>> + >>> +/ { >>> + model = "Amlogic C302 aw409 Development Board"; >>> + compatible = "amlogic,aw409", "amlogic,c3"; >>> + interrupt-parent = <&gic>; >>> + #address-cells = <2>; >>> + #size-cells = <2>; >>> + >>> + aliases { >>> + serial0 = &uart_b; >>> + }; >>> + >>> + memory@0 { >>> + device_type = "memory"; >>> + reg = <0x0 0x0 0x0 0x10000000>; >>> + }; >>> +}; >>> + >>> +&uart_b { >>> + status = "okay"; >>> +}; >>> diff --git a/arch/arm64/boot/dts/amlogic/amlogic-c3.dtsi b/arch/arm64/boot/dts/amlogic/amlogic-c3.dtsi >>> new file mode 100644 >>> index 000000000000..93b335aef605 >>> --- /dev/null >>> +++ b/arch/arm64/boot/dts/amlogic/amlogic-c3.dtsi >>> @@ -0,0 +1,86 @@ >>> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) >>> +/* >>> + * Copyright (c) 2021 Amlogic, Inc. All rights reserved. >>> + */ >>> + >>> +#include <dt-bindings/interrupt-controller/irq.h> >>> +#include <dt-bindings/interrupt-controller/arm-gic.h> >>> +#include <dt-bindings/gpio/gpio.h> >>> + >>> +/ { >>> + cpus { >>> + #address-cells = <2>; >>> + #size-cells = <0>; >>> + >>> + cpu0: cpu@0 { >>> + device_type = "cpu"; >>> + compatible = "arm,cortex-a35"; >>> + reg = <0x0 0x0>; >>> + enable-method = "psci"; >>> + }; >>> + >>> + cpu1: cpu@1 { >>> + device_type = "cpu"; >>> + compatible = "arm,cortex-a35"; >>> + reg = <0x0 0x1>; >>> + enable-method = "psci"; >>> + }; >>> + }; >>> + >>> + timer { >>> + compatible = "arm,armv8-timer"; >>> + interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, >>> + <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, >>> + <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, >>> + <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>; >>> + }; >>> + >>> + psci { >>> + compatible = "arm,psci-1.0"; >>> + method = "smc"; >>> + }; >>> + >>> + xtal: xtal-clk { >>> + compatible = "fixed-clock"; >>> + clock-frequency = <24000000>; >>> + clock-output-names = "xtal"; >>> + #clock-cells = <0>; >>> + }; >>> + >>> + 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 0x2000>, >>> + <0x0 0xfff04000 0 0x2000>, >>> + <0x0 0xfff06000 0 0x2000>; >>> + interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | 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_b: serial@7a000 { >>> + compatible = "amlogic,meson-g12a-uart"; >> >> This should be: >> >> compatible = "amlogic,meson-g12a-uart", "amlogic,meson-gx-uart" >> >> to match the amlogic,meson-uart.yaml bindings. >> > > I will use strings 'amlogic,meson-s4-uart' instead of these, because of board C3 is only use 12M clock source for serial, the same as s4 series. Sure. Neil > >> Please run : >> make CHECK_DTBS=1 amlogic/amlogic-c3-c302x-aw409.dtb >> >> With that fixed, please add on v5: > > Will do. > >> >> Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org> >> >>> + reg = <0x0 0x7a000 0x0 0x18>; >>> + interrupts = <GIC_SPI 169 IRQ_TYPE_EDGE_RISING>; >>> + status = "disabled"; >>> + clocks = <&xtal>, <&xtal>, <&xtal>; >>> + clock-names = "xtal", "pclk", "baud"; >>> + }; >>> + >>> + }; >>> + }; >>> +}; >>> >>> base-commit: ae68fb187b59bc8645974320808ab2d7c41b1833 >>
Hi, On Wed, 10 May 2023 17:11:29 +0800, Xianwei Zhao wrote: > Amlogic C3 is an advanced edge AI processor designed for smart IP camera > applications. > > Add basic support for the C3 based Amlogic AW409 board, which describes > the following components: CPU, GIC, IRQ, Timer, UART. It's capable of > booting up into the serial console. > > [...] Thanks, Applied to https://git.kernel.org/pub/scm/linux/kernel/git/amlogic/linux.git (v6.5/arm64-dt) [1/1] arm64: dts: add support for C3 based Amlogic AW409 https://git.kernel.org/amlogic/c/02310be6f080071e1b9e2021fd6dd655bd842aad These changes has been applied on the intermediate git tree [1]. The v6.5/arm64-dt branch will then be sent via a formal Pull Request to the Linux SoC maintainers for inclusion in their intermediate git branches in order to be sent to Linus during the next merge window, or sooner if it's a set of fixes. In the cases of fixes, those will be merged in the current release candidate kernel and as soon they appear on the Linux master branch they will be backported to the previous Stable and Long-Stable kernels [2]. The intermediate git branches are merged daily in the linux-next tree [3], people are encouraged testing these pre-release kernels and report issues on the relevant mailing-lists. If problems are discovered on those changes, please submit a signed-off-by revert patch followed by a corrective changeset. [1] https://git.kernel.org/pub/scm/linux/kernel/git/amlogic/linux.git [2] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git [3] https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
diff --git a/arch/arm64/boot/dts/amlogic/Makefile b/arch/arm64/boot/dts/amlogic/Makefile index cd1c5b04890a..6f61798a109f 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-c3-c302x-aw409.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-c3-c302x-aw409.dts b/arch/arm64/boot/dts/amlogic/amlogic-c3-c302x-aw409.dts new file mode 100644 index 000000000000..edce8850b338 --- /dev/null +++ b/arch/arm64/boot/dts/amlogic/amlogic-c3-c302x-aw409.dts @@ -0,0 +1,29 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* + * Copyright (c) 2021 Amlogic, Inc. All rights reserved. + */ + +/dts-v1/; + +#include "amlogic-c3.dtsi" + +/ { + model = "Amlogic C302 aw409 Development Board"; + compatible = "amlogic,aw409", "amlogic,c3"; + interrupt-parent = <&gic>; + #address-cells = <2>; + #size-cells = <2>; + + aliases { + serial0 = &uart_b; + }; + + memory@0 { + device_type = "memory"; + reg = <0x0 0x0 0x0 0x10000000>; + }; +}; + +&uart_b { + status = "okay"; +}; diff --git a/arch/arm64/boot/dts/amlogic/amlogic-c3.dtsi b/arch/arm64/boot/dts/amlogic/amlogic-c3.dtsi new file mode 100644 index 000000000000..93b335aef605 --- /dev/null +++ b/arch/arm64/boot/dts/amlogic/amlogic-c3.dtsi @@ -0,0 +1,86 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* + * Copyright (c) 2021 Amlogic, Inc. All rights reserved. + */ + +#include <dt-bindings/interrupt-controller/irq.h> +#include <dt-bindings/interrupt-controller/arm-gic.h> +#include <dt-bindings/gpio/gpio.h> + +/ { + cpus { + #address-cells = <2>; + #size-cells = <0>; + + cpu0: cpu@0 { + device_type = "cpu"; + compatible = "arm,cortex-a35"; + reg = <0x0 0x0>; + enable-method = "psci"; + }; + + cpu1: cpu@1 { + device_type = "cpu"; + compatible = "arm,cortex-a35"; + reg = <0x0 0x1>; + enable-method = "psci"; + }; + }; + + timer { + compatible = "arm,armv8-timer"; + interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, + <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, + <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, + <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>; + }; + + psci { + compatible = "arm,psci-1.0"; + method = "smc"; + }; + + xtal: xtal-clk { + compatible = "fixed-clock"; + clock-frequency = <24000000>; + clock-output-names = "xtal"; + #clock-cells = <0>; + }; + + 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 0x2000>, + <0x0 0xfff04000 0 0x2000>, + <0x0 0xfff06000 0 0x2000>; + interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | 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_b: serial@7a000 { + compatible = "amlogic,meson-g12a-uart"; + reg = <0x0 0x7a000 0x0 0x18>; + interrupts = <GIC_SPI 169 IRQ_TYPE_EDGE_RISING>; + status = "disabled"; + clocks = <&xtal>, <&xtal>, <&xtal>; + clock-names = "xtal", "pclk", "baud"; + }; + + }; + }; +};