Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1331123 > unrolled thread
| Started by | Lars Persson <lars.persson@axis.com> |
|---|---|
| First post | 2016-02-10 13:50 +0100 |
| Last post | 2016-02-10 15:50 +0100 |
| Articles | 14 — 2 participants |
Back to article view | Back to linux.kernel
[PATCH 0/8] arm: Add Artpec-6 SoC Lars Persson <lars.persson@axis.com> - 2016-02-10 13:50 +0100
[PATCH 7/8] arm: multi_v7_defconfig: add MACH_ARTPEC6 Lars Persson <lars.persson@axis.com> - 2016-02-10 13:50 +0100
Re: [PATCH 7/8] arm: multi_v7_defconfig: add MACH_ARTPEC6 Arnd Bergmann <arnd@arndb.de> - 2016-02-10 15:50 +0100
[PATCH 4/8] arm: dts: add Artpec-6 soc dtsi file Lars Persson <lars.persson@axis.com> - 2016-02-10 13:50 +0100
Re: [PATCH 4/8] arm: dts: add Artpec-6 soc dtsi file Arnd Bergmann <arnd@arndb.de> - 2016-02-10 15:40 +0100
[PATCH 6/8] arm: initial machine port for artpec-6 SoC Lars Persson <lars.persson@axis.com> - 2016-02-10 13:50 +0100
Re: [PATCH 6/8] arm: initial machine port for artpec-6 SoC Arnd Bergmann <arnd@arndb.de> - 2016-02-10 15:50 +0100
[PATCH 5/8] arm: dts: add Artpec-6 development board dts Lars Persson <lars.persson@axis.com> - 2016-02-10 14:00 +0100
[PATCH 8/8] arm: mach-artpec: add entry to MAINTAINERS Lars Persson <lars.persson@axis.com> - 2016-02-10 14:00 +0100
[PATCH 1/8] clk: add device tree binding for artpec-6 pll1 clock Lars Persson <lars.persson@axis.com> - 2016-02-10 14:00 +0100
Re: [PATCH 1/8] clk: add device tree binding for artpec-6 pll1 clock Arnd Bergmann <arnd@arndb.de> - 2016-02-10 15:40 +0100
[PATCH 3/8] arm: add device-tree SoC bindings for Axis Artpec-6 Lars Persson <lars.persson@axis.com> - 2016-02-10 14:00 +0100
Re: [PATCH 3/8] arm: add device-tree SoC bindings for Axis Artpec-6 Arnd Bergmann <arnd@arndb.de> - 2016-02-10 15:40 +0100
Re: [PATCH 0/8] arm: Add Artpec-6 SoC Arnd Bergmann <arnd@arndb.de> - 2016-02-10 15:50 +0100
| From | Lars Persson <lars.persson@axis.com> |
|---|---|
| Date | 2016-02-10 13:50 +0100 |
| Subject | [PATCH 0/8] arm: Add Artpec-6 SoC |
| Message-ID | <r0Cnw-2fc-11@gated-at.bofh.it> |
Basic support for the Axis Artpec-6 ARM SoC. Timers, interrupts, UARTs and ethernet are wired up. Lars Persson (8): clk: add device tree binding for artpec-6 pll1 clock clk: add artpec-6 pll1 clock driver arm: add device-tree SoC bindings for Axis Artpec-6 arm: dts: add Artpec-6 soc dtsi file arm: dts: add Artpec-6 development board dts arm: initial machine port for artpec-6 SoC arm: multi_v7_defconfig: add MACH_ARTPEC6 arm: mach-artpec: add entry to MAINTAINERS Documentation/devicetree/bindings/arm/axis.txt | 8 + .../devicetree/bindings/clock/artpec6.txt | 14 ++ MAINTAINERS | 10 + arch/arm/Kconfig | 2 + arch/arm/Makefile | 1 + arch/arm/boot/dts/Makefile | 2 + arch/arm/boot/dts/artpec6-devboard.dts | 57 +++++ arch/arm/boot/dts/artpec6.dtsi | 238 +++++++++++++++++++++ arch/arm/configs/multi_v7_defconfig | 2 + arch/arm/mach-artpec/Kconfig | 22 ++ arch/arm/mach-artpec/Makefile | 1 + arch/arm/mach-artpec/board-artpec6.c | 66 ++++++ drivers/clk/Makefile | 1 + drivers/clk/clk-artpec6.c | 70 ++++++ 14 files changed, 494 insertions(+) create mode 100644 Documentation/devicetree/bindings/arm/axis.txt create mode 100644 Documentation/devicetree/bindings/clock/artpec6.txt create mode 100644 arch/arm/boot/dts/artpec6-devboard.dts create mode 100644 arch/arm/boot/dts/artpec6.dtsi create mode 100644 arch/arm/mach-artpec/Kconfig create mode 100644 arch/arm/mach-artpec/Makefile create mode 100644 arch/arm/mach-artpec/board-artpec6.c create mode 100644 drivers/clk/clk-artpec6.c -- 2.1.4
[toc] | [next] | [standalone]
| From | Lars Persson <lars.persson@axis.com> |
|---|---|
| Date | 2016-02-10 13:50 +0100 |
| Subject | [PATCH 7/8] arm: multi_v7_defconfig: add MACH_ARTPEC6 |
| Message-ID | <r0Cnw-2fc-13@gated-at.bofh.it> |
| In reply to | #1331123 |
Signed-off-by: Lars Persson <larper@axis.com> --- arch/arm/configs/multi_v7_defconfig | 2 ++ 1 file changed, 2 insertions(+) diff --git a/arch/arm/configs/multi_v7_defconfig b/arch/arm/configs/multi_v7_defconfig index 8e8b2ac..bf3840e 100644 --- a/arch/arm/configs/multi_v7_defconfig +++ b/arch/arm/configs/multi_v7_defconfig @@ -16,6 +16,8 @@ CONFIG_ARCH_MULTI_V7=y # CONFIG_ARCH_MULTI_V4 is not set CONFIG_ARCH_VIRT=y CONFIG_ARCH_ALPINE=y +CONFIG_ARCH_ARTPEC=y +CONFIG_MACH_ARTPEC6=y CONFIG_ARCH_MVEBU=y CONFIG_MACH_ARMADA_370=y CONFIG_MACH_ARMADA_375=y -- 2.1.4
[toc] | [prev] | [next] | [standalone]
| From | Arnd Bergmann <arnd@arndb.de> |
|---|---|
| Date | 2016-02-10 15:50 +0100 |
| Subject | Re: [PATCH 7/8] arm: multi_v7_defconfig: add MACH_ARTPEC6 |
| Message-ID | <r0EfF-3qm-43@gated-at.bofh.it> |
| In reply to | #1331124 |
On Wednesday 10 February 2016 13:41:56 Lars Persson wrote: > Signed-off-by: Lars Persson <larper@axis.com> > --- > arch/arm/configs/multi_v7_defconfig | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/arch/arm/configs/multi_v7_defconfig b/arch/arm/configs/multi_v7_defconfig > index 8e8b2ac..bf3840e 100644 > --- a/arch/arm/configs/multi_v7_defconfig > +++ b/arch/arm/configs/multi_v7_defconfig > @@ -16,6 +16,8 @@ CONFIG_ARCH_MULTI_V7=y > # CONFIG_ARCH_MULTI_V4 is not set > CONFIG_ARCH_VIRT=y > CONFIG_ARCH_ALPINE=y > +CONFIG_ARCH_ARTPEC=y > +CONFIG_MACH_ARTPEC6=y > CONFIG_ARCH_MVEBU=y > CONFIG_MACH_ARMADA_370=y > CONFIG_MACH_ARMADA_375=y > No other drivers that you need here? Arnd
[toc] | [prev] | [next] | [standalone]
| From | Lars Persson <lars.persson@axis.com> |
|---|---|
| Date | 2016-02-10 13:50 +0100 |
| Subject | [PATCH 4/8] arm: dts: add Artpec-6 soc dtsi file |
| Message-ID | <r0Cnx-2fc-17@gated-at.bofh.it> |
| In reply to | #1331123 |
Signed-off-by: Lars Persson <larper@axis.com>
---
arch/arm/boot/dts/artpec6.dtsi | 238 +++++++++++++++++++++++++++++++++++++++++
1 file changed, 238 insertions(+)
create mode 100644 arch/arm/boot/dts/artpec6.dtsi
diff --git a/arch/arm/boot/dts/artpec6.dtsi b/arch/arm/boot/dts/artpec6.dtsi
new file mode 100644
index 0000000..c1790d8
--- /dev/null
+++ b/arch/arm/boot/dts/artpec6.dtsi
@@ -0,0 +1,238 @@
+/*
+ * Device Tree Source for the Axis ARTPEC-6 SoC
+ *
+ * This file is licensed under the terms of the GNU General Public License
+ * version 2. This program is licensed "as is" without any warranty of any
+ * kind, whether express or implied.
+ */
+
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+#include "skeleton.dtsi"
+
+/ {
+ compatible = "axis,artpec6";
+ interrupt-parent = <&intc>;
+
+ aliases {
+ serial0 = &uart0;
+ serial1 = &uart1;
+ serial2 = &uart2;
+ serial3 = &uart3;
+ };
+
+ cpus {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ cpu0: cpu@0 {
+ device_type = "cpu";
+ compatible = "arm,cortex-a9";
+ reg = <0>;
+ next-level-cache = <&pl310>;
+ };
+
+ cpu1: cpu@1 {
+ device_type = "cpu";
+ compatible = "arm,cortex-a9";
+ reg = <1>;
+ next-level-cache = <&pl310>;
+ };
+ };
+
+ psci {
+ compatible = "arm,psci-0.2", "arm,psci";
+ method = "smc";
+ psci_version = <0x84000000>;
+ cpu_on = <0x84000003>;
+ system_reset = <0x84000009>;
+ };
+
+ scu@faf00000 {
+ compatible = "arm,cortex-a9-scu";
+ reg = <0xfaf00000 0x58>;
+ };
+
+ /* Main external clock driving CPU and peripherals */
+ ext_clk: ext_clk {
+ #clock-cells = <0>;
+ compatible = "fixed-clock";
+ clock-frequency = <50000000>;
+ };
+
+ /* PLL1 is used by CPU and some peripherals */
+ pll1_clk: pll1_clk@f8000000 {
+ #clock-cells = <0>;
+ compatible = "axis,artpec6-pll1-clock";
+ reg = <0xf8000000 4>;
+ clocks = <&ext_clk>;
+ };
+
+ cpu_clk: cpu_clk {
+ #clock-cells = <0>;
+ compatible = "fixed-factor-clock";
+ clock-div = <1>;
+ clock-mult = <1>;
+ clocks = <&pll1_clk>;
+ clock-output-names = "cpu_clk";
+ };
+
+ cpu_clkdiv2: cpu_clkdiv2 {
+ #clock-cells = <0>;
+ compatible = "fixed-factor-clock";
+ clock-div = <2>;
+ clock-mult = <1>;
+ clocks = <&cpu_clk>;
+ };
+
+ cpu_clkdiv4: cpu_clkdiv4 {
+ #clock-cells = <0>;
+ compatible = "fixed-factor-clock";
+ clock-div = <4>;
+ clock-mult = <1>;
+ clocks = <&cpu_clk>;
+ };
+
+ apb_pclk: apb_pclk {
+ #clock-cells = <0>;
+ compatible = "fixed-factor-clock";
+ clock-div = <8>;
+ clock-mult = <1>;
+ clocks = <&cpu_clk>;
+ clock-output-names = "apb_pclk";
+ };
+
+ /* PLL2 is used by a number of peripherals, including UDL */
+ pll2: pll2 {
+ #clock-cells = <0>;
+ compatible = "fixed-factor-clock";
+ clock-div = <1>;
+ clock-mult = <24>;
+ clocks = <&ext_clk>;
+ };
+
+ /* PLL2DIV2 is used by the Fractional Clock Divider, for i2s */
+ pll2div2: pll2div2 {
+ #clock-cells = <0>;
+ compatible = "fixed-factor-clock";
+ clock-div = <2>;
+ clock-mult = <1>;
+ clocks = <&pll2>;
+ };
+
+ pll2div12: pll2div12 {
+ #clock-cells = <0>;
+ compatible = "fixed-factor-clock";
+ clock-div = <12>;
+ clock-mult = <1>;
+ clocks = <&pll2>;
+ };
+
+ pll2div24: pll2div24 {
+ #clock-cells = <0>;
+ compatible = "fixed-factor-clock";
+ clock-div = <24>;
+ clock-mult = <1>;
+ clocks = <&pll2>;
+ clock-output-names = "uart_clk";
+ };
+
+
+ gtimer@faf00200 {
+ compatible = "arm,cortex-a9-global-timer";
+ reg = <0xfaf00200 0x20>;
+ interrupts = <GIC_PPI 11 0xf01>;
+ clocks = <&cpu_clkdiv2>;
+ };
+
+ timer@faf00600 {
+ compatible = "arm,cortex-a9-twd-timer";
+ reg = <0xfaf00600 0x20>;
+ interrupts = <GIC_PPI 13 0xf04>;
+ clocks = <&cpu_clkdiv2>;
+ status = "disabled";
+ };
+
+ intc: interrupt-controller@faf01000 {
+ interrupt-controller;
+ compatible = "arm,cortex-a9-gic";
+ #interrupt-cells = <3>;
+ reg = < 0xfaf01000 0x1000 >, < 0xfaf00100 0x0100 >;
+ };
+
+ pl310: cache-controller@faf10000 {
+ compatible = "arm,pl310-cache";
+ cache-unified;
+ cache-level = <2>;
+ reg = <0xfaf10000 0x1000>;
+ interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
+ arm,data-latency = <1 1 1>;
+ arm,tag-latency = <1 1 1>;
+ arm,filter-ranges = <0x0 0x80000000>;
+ };
+
+ pmu {
+ compatible = "arm,cortex-a9-pmu";
+ interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-parent = <&intc>;
+ };
+
+ amba@0 {
+ compatible = "simple-bus";
+ #address-cells = <0x1>;
+ #size-cells = <0x1>;
+ interrupt-parent = <&intc>;
+ ranges;
+ dma-ranges = <0x80000000 0x00000000 0x40000000>;
+ dma-coherent;
+
+ ethernet: ethernet@f8010000 {
+ clock-names = "phy_ref_clk", "apb_pclk";
+ clocks = <&ext_clk>, <&apb_pclk>;
+ compatible = "snps,dwc-qos-ethernet-4.10";
+ interrupt-parent = <&intc>;
+ interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
+ reg = <0xf8010000 0x4000>;
+
+ snps,write-requests = <2>;
+ snps,read-requests = <16>;
+ snps,txpbl = <8>;
+ snps,rxpbl = <2>;
+
+ status = "disabled";
+ };
+
+ uart0: uart@f8036000 {
+ compatible = "arm,pl011", "arm,primecell";
+ reg = <0xf8036000 0x1000>;
+ interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&pll2div24>, <&apb_pclk>;
+ clock-names = "uart_clk", "apb_pclk";
+ status = "disabled";
+ };
+ uart1: uart@f8037000 {
+ compatible = "arm,pl011", "arm,primecell";
+ reg = <0xf8037000 0x1000>;
+ interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&pll2div24>, <&apb_pclk>;
+ clock-names = "uart_clk", "apb_pclk";
+ status = "disabled";
+ };
+ uart2: uart@f8038000 {
+ compatible = "arm,pl011", "arm,primecell";
+ reg = <0xf8038000 0x1000>;
+ interrupts = <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&pll2div24>, <&apb_pclk>;
+ clock-names = "uart_clk", "apb_pclk";
+ status = "disabled";
+ };
+ uart3: uart@f8039000 {
+ compatible = "arm,pl011", "arm,primecell";
+ reg = <0xf8039000 0x1000>;
+ interrupts = <GIC_SPI 129 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&pll2div24>, <&apb_pclk>;
+ clock-names = "uart_clk", "apb_pclk";
+ status = "disabled";
+ };
+ };
+};
--
2.1.4
[toc] | [prev] | [next] | [standalone]
| From | Arnd Bergmann <arnd@arndb.de> |
|---|---|
| Date | 2016-02-10 15:40 +0100 |
| Subject | Re: [PATCH 4/8] arm: dts: add Artpec-6 soc dtsi file |
| Message-ID | <r0E5Y-3mS-3@gated-at.bofh.it> |
| In reply to | #1331126 |
On Wednesday 10 February 2016 13:41:53 Lars Persson wrote:
> Signed-off-by: Lars Persson <larper@axis.com>
> ---
Missing changelog
> arch/arm/boot/dts/artpec6.dtsi | 238 +++++++++++++++++++++++++++++++++++++++++
> 1 file changed, 238 insertions(+)
> create mode 100644 arch/arm/boot/dts/artpec6.dtsi
>
> diff --git a/arch/arm/boot/dts/artpec6.dtsi b/arch/arm/boot/dts/artpec6.dtsi
> new file mode 100644
> index 0000000..c1790d8
> --- /dev/null
> +++ b/arch/arm/boot/dts/artpec6.dtsi
> @@ -0,0 +1,238 @@
> +/*
> + * Device Tree Source for the Axis ARTPEC-6 SoC
> + *
> + * This file is licensed under the terms of the GNU General Public License
> + * version 2. This program is licensed "as is" without any warranty of any
> + * kind, whether express or implied.
> + */
> +
> +#include <dt-bindings/interrupt-controller/arm-gic.h>
> +#include "skeleton.dtsi"
> +
> +/ {
> + compatible = "axis,artpec6";
> + interrupt-parent = <&intc>;
> +
> + aliases {
> + serial0 = &uart0;
> + serial1 = &uart1;
> + serial2 = &uart2;
> + serial3 = &uart3;
> + };
Move the aliases into the board, not all boards might use all four
uarts, or some board might assign different numbers.
> + uart0: uart@f8036000 {
make this "serial@f8036000"
Arnd
[toc] | [prev] | [next] | [standalone]
| From | Lars Persson <lars.persson@axis.com> |
|---|---|
| Date | 2016-02-10 13:50 +0100 |
| Subject | [PATCH 6/8] arm: initial machine port for artpec-6 SoC |
| Message-ID | <r0Cnx-2fc-21@gated-at.bofh.it> |
| In reply to | #1331123 |
Basic machine port for the Artpec-6 SoC from Axis
Communications.
Signed-off-by: Lars Persson <larper@axis.com>
---
arch/arm/Kconfig | 2 ++
arch/arm/Makefile | 1 +
arch/arm/mach-artpec/Kconfig | 22 ++++++++++++
arch/arm/mach-artpec/Makefile | 1 +
arch/arm/mach-artpec/board-artpec6.c | 66 ++++++++++++++++++++++++++++++++++++
5 files changed, 92 insertions(+)
create mode 100644 arch/arm/mach-artpec/Kconfig
create mode 100644 arch/arm/mach-artpec/Makefile
create mode 100644 arch/arm/mach-artpec/board-artpec6.c
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 4f799e5..e1565dd 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -724,6 +724,8 @@ source "arch/arm/mach-mvebu/Kconfig"
source "arch/arm/mach-alpine/Kconfig"
+source "arch/arm/mach-artpec/Kconfig"
+
source "arch/arm/mach-asm9260/Kconfig"
source "arch/arm/mach-at91/Kconfig"
diff --git a/arch/arm/Makefile b/arch/arm/Makefile
index fe25410..4eb24c6 100644
--- a/arch/arm/Makefile
+++ b/arch/arm/Makefile
@@ -154,6 +154,7 @@ textofs-$(CONFIG_ARCH_AXXIA) := 0x00308000
# Machine directory name. This list is sorted alphanumerically
# by CONFIG_* macro name.
machine-$(CONFIG_ARCH_ALPINE) += alpine
+machine-$(CONFIG_ARCH_ARTPEC) += artpec
machine-$(CONFIG_ARCH_AT91) += at91
machine-$(CONFIG_ARCH_AXXIA) += axxia
machine-$(CONFIG_ARCH_BCM) += bcm
diff --git a/arch/arm/mach-artpec/Kconfig b/arch/arm/mach-artpec/Kconfig
new file mode 100644
index 0000000..eaa73d6
--- /dev/null
+++ b/arch/arm/mach-artpec/Kconfig
@@ -0,0 +1,22 @@
+menuconfig ARCH_ARTPEC
+ bool "Axis Communications ARM based ARTPEC SoCs" if ARCH_MULTI_V7
+
+if ARCH_ARTPEC
+
+config MACH_ARTPEC6
+ bool "Axis ARTPEC-6 ARM Cortex A9 Platform" if ARCH_MULTI_V7
+ select ARM_AMBA
+ select ARM_GIC
+ select ARM_GLOBAL_TIMER
+ select ARM_PSCI
+ select COMMON_CLK
+ select GENERIC_CLOCKEVENTS
+ select HAVE_ARM_ARCH_TIMER
+ select HAVE_ARM_SCU
+ select HAVE_ARM_TWD if SMP
+ select SPARSE_IRQ
+ select USE_OF
+ help
+ Support for Axis ARTPEC-6 ARM Cortex A9 Platform
+
+endif
diff --git a/arch/arm/mach-artpec/Makefile b/arch/arm/mach-artpec/Makefile
new file mode 100644
index 0000000..78325f0
--- /dev/null
+++ b/arch/arm/mach-artpec/Makefile
@@ -0,0 +1 @@
+obj-$(CONFIG_MACH_ARTPEC6) := board-artpec6.o
diff --git a/arch/arm/mach-artpec/board-artpec6.c b/arch/arm/mach-artpec/board-artpec6.c
new file mode 100644
index 0000000..6d7a59f
--- /dev/null
+++ b/arch/arm/mach-artpec/board-artpec6.c
@@ -0,0 +1,66 @@
+/*
+ * ARTPEC-6 device support.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+
+#include <linux/amba/bus.h>
+#include <linux/clocksource.h>
+#include <linux/dma-mapping.h>
+#include <linux/io.h>
+#include <linux/irqchip.h>
+#include <linux/irqchip/arm-gic.h>
+#include <linux/of_platform.h>
+#include <linux/of.h>
+#include <linux/clk-provider.h>
+#include <linux/smp.h>
+#include <asm/smp_scu.h>
+#include <asm/mach/arch.h>
+#include <asm/mach/map.h>
+#include <asm/psci.h>
+#include <linux/arm-smccc.h>
+
+#define ARTPEC6_DMACFG 0xf8000010
+#define ARTPEC6_DMACFG_UARTS_BURST 0xff
+
+#define SECURE_OP_L2C_WRITEREG 0xb4000001
+
+static void __init artpec6_init_machine(void)
+{
+ void __iomem *dmacfg;
+
+ /* Use PL011 DMA Burst Request signal instead of DMA Single Request */
+ dmacfg = ioremap(ARTPEC6_DMACFG, 4);
+ if (dmacfg) {
+ __raw_writel(ARTPEC6_DMACFG_UARTS_BURST, dmacfg);
+ iounmap(dmacfg);
+ }
+
+ of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);
+}
+
+static void artpec6_l2c310_write_sec(unsigned long val, unsigned reg)
+{
+ struct arm_smccc_res res;
+
+ arm_smccc_smc(SECURE_OP_L2C_WRITEREG, reg, val, 0,
+ 0, 0, 0, 0, &res);
+
+ WARN_ON(res.a0);
+}
+
+static const char * const artpec6_dt_match[] = {
+ "axis,artpec6",
+ NULL
+};
+
+DT_MACHINE_START(ARTPEC6, "Axis ARTPEC-6 Platform")
+ .l2c_aux_val = 0x0C000000,
+ .l2c_aux_mask = 0xF3FFFFFF,
+ .l2c_write_sec = artpec6_l2c310_write_sec,
+ .init_irq = irqchip_init,
+ .init_machine = artpec6_init_machine,
+ .dt_compat = artpec6_dt_match,
+MACHINE_END
--
2.1.4
[toc] | [prev] | [next] | [standalone]
| From | Arnd Bergmann <arnd@arndb.de> |
|---|---|
| Date | 2016-02-10 15:50 +0100 |
| Subject | Re: [PATCH 6/8] arm: initial machine port for artpec-6 SoC |
| Message-ID | <r0EfE-3qm-27@gated-at.bofh.it> |
| In reply to | #1331127 |
On Wednesday 10 February 2016 13:41:55 Lars Persson wrote:
> @@ -0,0 +1,22 @@
> +menuconfig ARCH_ARTPEC
> + bool "Axis Communications ARM based ARTPEC SoCs" if ARCH_MULTI_V7
> +
> +if ARCH_ARTPEC
> +
> +config MACH_ARTPEC6
> + bool "Axis ARTPEC-6 ARM Cortex A9 Platform" if ARCH_MULTI_V7
Change both to use
depends on ARCH_MULTI_V7
like we changed all other platforms in 4.5
> + select ARM_AMBA
> + select ARM_GIC
> + select ARM_GLOBAL_TIMER
> + select ARM_PSCI
> + select COMMON_CLK
> + select GENERIC_CLOCKEVENTS
> + select HAVE_ARM_ARCH_TIMER
> + select HAVE_ARM_SCU
> + select HAVE_ARM_TWD if SMP
> + select SPARSE_IRQ
> + select USE_OF
No need for GENERIC_CLOCKEVENTS, COMMON_CLK, USE_OF or SPARSE_IRQ to be selected, they
are always enabled with ARCH_MULTIPLATFORM. Check the others as well to see if
you can drop more of them.
> +
> +#define ARTPEC6_DMACFG 0xf8000010
> +#define ARTPEC6_DMACFG_UARTS_BURST 0xff
> +
> +#define SECURE_OP_L2C_WRITEREG 0xb4000001
> +
> +static void __init artpec6_init_machine(void)
> +{
> + void __iomem *dmacfg;
> +
> + /* Use PL011 DMA Burst Request signal instead of DMA Single Request */
> + dmacfg = ioremap(ARTPEC6_DMACFG, 4);
> + if (dmacfg) {
> + __raw_writel(ARTPEC6_DMACFG_UARTS_BURST, dmacfg);
> + iounmap(dmacfg);
> + }
Can you do this in the bootloader?
If not, please use a DT node to pass the address rather than hardcoding it,
and use writel() instead of __raw_writel() so it works with on big-endian kernels.
> +DT_MACHINE_START(ARTPEC6, "Axis ARTPEC-6 Platform")
> + .l2c_aux_val = 0x0C000000,
> + .l2c_aux_mask = 0xF3FFFFFF,
> + .l2c_write_sec = artpec6_l2c310_write_sec,
> + .init_irq = irqchip_init,
> + .init_machine = artpec6_init_machine,
> + .dt_compat = artpec6_dt_match,
> +MACHINE_END
>
You can drop the irqchip_init.
Arnd
[toc] | [prev] | [next] | [standalone]
| From | Lars Persson <lars.persson@axis.com> |
|---|---|
| Date | 2016-02-10 14:00 +0100 |
| Subject | [PATCH 5/8] arm: dts: add Artpec-6 development board dts |
| Message-ID | <r0Cxc-2iO-3@gated-at.bofh.it> |
| In reply to | #1331123 |
Signed-off-by: Lars Persson <larper@axis.com>
---
arch/arm/boot/dts/Makefile | 2 ++
arch/arm/boot/dts/artpec6-devboard.dts | 57 ++++++++++++++++++++++++++++++++++
2 files changed, 59 insertions(+)
create mode 100644 arch/arm/boot/dts/artpec6-devboard.dts
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index a4a6d70..2ebe99c 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -2,6 +2,8 @@ ifeq ($(CONFIG_OF),y)
dtb-$(CONFIG_ARCH_ALPINE) += \
alpine-db.dtb
+dtb-$(CONFIG_MACH_ARTPEC6) += \
+ artpec6-devboard.dtb
dtb-$(CONFIG_MACH_ASM9260) += \
alphascale-asm9260-devkit.dtb
# Keep at91 dtb files sorted alphabetically for each SoC
diff --git a/arch/arm/boot/dts/artpec6-devboard.dts b/arch/arm/boot/dts/artpec6-devboard.dts
new file mode 100644
index 0000000..f6c5e4f
--- /dev/null
+++ b/arch/arm/boot/dts/artpec6-devboard.dts
@@ -0,0 +1,57 @@
+/*
+ * Axis ARTPEC-6 development board.
+ *
+ * This file is licensed under the terms of the GNU General Public License
+ * version 2. This program is licensed "as is" without any warranty of any
+ * kind, whether express or implied.
+ */
+
+/dts-v1/;
+#include "artpec6.dtsi"
+
+/ {
+ model = "ARTPEC-6 development board";
+ compatible = "axis,artpec6-dev-board", "axis,artpec6";
+
+ chosen {
+ stdout-path = "serial3:115200n8";
+ };
+
+ memory {
+ device_type = "memory";
+ reg = <0x0 0x10000000>;
+ };
+};
+
+&uart0 {
+ status = "okay";
+};
+
+&uart1 {
+ status = "okay";
+};
+
+&uart2 {
+ status = "okay";
+};
+
+&uart3 {
+ status = "okay";
+};
+
+ðernet {
+ status = "okay";
+
+ phy-handle = <&phy1>;
+ phy-mode = "gmii";
+
+ mdio {
+ #address-cells = <0x1>;
+ #size-cells = <0x0>;
+ phy1: phy@0 {
+ compatible = "ethernet-phy-ieee802.3-c22";
+ device_type = "ethernet-phy";
+ reg = <0x0>;
+ };
+ };
+};
--
2.1.4
[toc] | [prev] | [next] | [standalone]
| From | Lars Persson <lars.persson@axis.com> |
|---|---|
| Date | 2016-02-10 14:00 +0100 |
| Subject | [PATCH 8/8] arm: mach-artpec: add entry to MAINTAINERS |
| Message-ID | <r0Cxd-2iO-7@gated-at.bofh.it> |
| In reply to | #1331123 |
Signed-off-by: Lars Persson <larper@axis.com> Signed-off-by: Jesper Nilsson <jesper.nilsson@axis.com> --- MAINTAINERS | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/MAINTAINERS b/MAINTAINERS index 7f1fa4f..d32c1aa 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -932,6 +932,16 @@ M: Tsahee Zidenberg <tsahee@annapurnalabs.com> S: Maintained F: arch/arm/mach-alpine/ +ARM/ARTPEC MACHINE SUPPORT +M: Jesper Nilsson <jesper.nilsson@axis.com> +M: Lars Persson <lars.persson@axis.com> +M: Niklas Cassel <niklas.cassel@axis.com> +S: Maintained +L: linux-arm-kernel@axis.com +F: arch/arm/mach-artpec +F: arch/arm/boot/dts/artpec6* +F: drivers/clk/clk-artpec6.c + ARM/ATMEL AT91RM9200, AT91SAM9 AND SAMA5 SOC SUPPORT M: Nicolas Ferre <nicolas.ferre@atmel.com> M: Alexandre Belloni <alexandre.belloni@free-electrons.com> -- 2.1.4
[toc] | [prev] | [next] | [standalone]
| From | Lars Persson <lars.persson@axis.com> |
|---|---|
| Date | 2016-02-10 14:00 +0100 |
| Subject | [PATCH 1/8] clk: add device tree binding for artpec-6 pll1 clock |
| Message-ID | <r0Cxd-2iO-11@gated-at.bofh.it> |
| In reply to | #1331123 |
Signed-off-by: Lars Persson <larper@axis.com>
---
Documentation/devicetree/bindings/clock/artpec6.txt | 14 ++++++++++++++
1 file changed, 14 insertions(+)
create mode 100644 Documentation/devicetree/bindings/clock/artpec6.txt
diff --git a/Documentation/devicetree/bindings/clock/artpec6.txt b/Documentation/devicetree/bindings/clock/artpec6.txt
new file mode 100644
index 0000000..e50f7a5
--- /dev/null
+++ b/Documentation/devicetree/bindings/clock/artpec6.txt
@@ -0,0 +1,14 @@
+* Clock bindings for Axis ARTPEC-6 chip
+
+Required properties:
+- compatible: Should be "axis,artpec6-pll1-clock"
+- #clock-cells: Should be <1>
+
+Examples:
+
+pll1_clk: pll1_clk {
+ #clock-cells = <1>;
+ compatible = "axis,artpec6-pll1-clock";
+ clocks = <&ext_clk>;
+ status = "okay";
+};
--
2.1.4
[toc] | [prev] | [next] | [standalone]
| From | Arnd Bergmann <arnd@arndb.de> |
|---|---|
| Date | 2016-02-10 15:40 +0100 |
| Subject | Re: [PATCH 1/8] clk: add device tree binding for artpec-6 pll1 clock |
| Message-ID | <r0E5Z-3mS-27@gated-at.bofh.it> |
| In reply to | #1331132 |
On Wednesday 10 February 2016 13:41:50 Lars Persson wrote:
> Signed-off-by: Lars Persson <larper@axis.com>
> ---
Always write a changelog comment.
> +* Clock bindings for Axis ARTPEC-6 chip
> +
> +Required properties:
> +- compatible: Should be "axis,artpec6-pll1-clock"
> +- #clock-cells: Should be <1>
What is the clock cell used for?
> +Examples:
> +
> +pll1_clk: pll1_clk {
> + #clock-cells = <1>;
> + compatible = "axis,artpec6-pll1-clock";
> + clocks = <&ext_clk>;
> + status = "okay";
> +};
>
[toc] | [prev] | [next] | [standalone]
| From | Lars Persson <lars.persson@axis.com> |
|---|---|
| Date | 2016-02-10 14:00 +0100 |
| Subject | [PATCH 3/8] arm: add device-tree SoC bindings for Axis Artpec-6 |
| Message-ID | <r0Cxd-2iO-19@gated-at.bofh.it> |
| In reply to | #1331123 |
Signed-off-by: Lars Persson <larper@axis.com> --- Documentation/devicetree/bindings/arm/axis.txt | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 Documentation/devicetree/bindings/arm/axis.txt diff --git a/Documentation/devicetree/bindings/arm/axis.txt b/Documentation/devicetree/bindings/arm/axis.txt new file mode 100644 index 0000000..4c98701 --- /dev/null +++ b/Documentation/devicetree/bindings/arm/axis.txt @@ -0,0 +1,8 @@ +Axis Communications AB +ARTPEC series SoC Device Tree Bindings + + +ARTPEC-6 ARM SoC + +Required root node properties: + - compatible = "axis,artpec6-dev-board", "axis,artpec6"; -- 2.1.4
[toc] | [prev] | [next] | [standalone]
| From | Arnd Bergmann <arnd@arndb.de> |
|---|---|
| Date | 2016-02-10 15:40 +0100 |
| Subject | Re: [PATCH 3/8] arm: add device-tree SoC bindings for Axis Artpec-6 |
| Message-ID | <r0E5Y-3mS-13@gated-at.bofh.it> |
| In reply to | #1331137 |
On Wednesday 10 February 2016 13:41:52 Lars Persson wrote: > Signed-off-by: Lars Persson <larper@axis.com> Add a changelog > Documentation/devicetree/bindings/arm/axis.txt | 8 ++++++++ > 1 file changed, 8 insertions(+) > create mode 100644 Documentation/devicetree/bindings/arm/axis.txt > > diff --git a/Documentation/devicetree/bindings/arm/axis.txt b/Documentation/devicetree/bindings/arm/axis.txt > new file mode 100644 > index 0000000..4c98701 > --- /dev/null > +++ b/Documentation/devicetree/bindings/arm/axis.txt > @@ -0,0 +1,8 @@ > +Axis Communications AB > +ARTPEC series SoC Device Tree Bindings > + > + > +ARTPEC-6 ARM SoC > + > +Required root node properties: > + - compatible = "axis,artpec6-dev-board", "axis,artpec6"; > Requiring "axis,artpec6-dev-board" to be used for all boards somewhat misses the point of board specific compatibility values. Arnd
[toc] | [prev] | [next] | [standalone]
| From | Arnd Bergmann <arnd@arndb.de> |
|---|---|
| Date | 2016-02-10 15:50 +0100 |
| Message-ID | <r0EfF-3qm-41@gated-at.bofh.it> |
| In reply to | #1331123 |
On Wednesday 10 February 2016 13:41:49 Lars Persson wrote: > Basic support for the Axis Artpec-6 ARM SoC. Timers, interrupts, UARTs and > ethernet are wired up. > Hi Lars, Looks nice overall, I just have a few small comments on some of the patches. Please also add a patch do add yourself in the MAINTAINERS file. Arnd
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web