@@ -1207,6 +1207,7 @@ dtb-$(CONFIG_ARCH_MEDIATEK) += \
mt7623n-bananapi-bpi-r2.dtb \
mt8127-moose.dtb \
mt8135-evbp1.dtb
+dtb-$(CONFIG_MACH_M10V_EVB) += milbeaut-m10v-evb.dtb
dtb-$(CONFIG_ARCH_ZX) += zx296702-ad1.dtb
dtb-$(CONFIG_ARCH_ASPEED) += \
aspeed-ast2500-evb.dtb \
new file mode 100644
@@ -0,0 +1,35 @@
+// SPDX-License-Identifier: GPL-2.0
+/* Socionext Milbeaut M10V Evaluation Board */
+/dts-v1/;
+#include "milbeaut-m10v-evb.dtsi"
+
+/ {
+ cpus {
+ cpu@0 {
+ device_type = "cpu";
+ compatible = "arm,cortex-a7";
+ reg = <0xf00>;
+ };
+ cpu@1 {
+ device_type = "cpu";
+ compatible = "arm,cortex-a7";
+ reg = <0xf01>;
+ };
+
+ cpu@2 {
+ device_type = "cpu";
+ compatible = "arm,cortex-a7";
+ reg = <0xf02>;
+ };
+ cpu@3 {
+ device_type = "cpu";
+ compatible = "arm,cortex-a7";
+ reg = <0xf03>;
+ };
+
+ };
+ trampoline: trampoline@0x0000F100 {
+ compatible = "socionext,smp-trampoline";
+ reg = <0x0000F100 0x100>;
+ };
+};
new file mode 100644
@@ -0,0 +1,17 @@
+// SPDX-License-Identifier: GPL-2.0
+#include "milbeaut-m10v.dtsi"
+
+/ {
+ model = "Socionext M10V EVB";
+ compatible = "socionext,sc2000a", "socionext,milbeaut-m10v-evb";
+ interrupt-parent = <&gic>;
+ chosen {
+ bootargs = "consoleblank=0 loglevel=8 init=/sbin/finit root=/dev/mmcblk0p2 rootwait ro console=ttyUSI0,115200n8 console=/dev/tty1 ";
+ linux,initrd-start = <0x4A000000>;
+ linux,initrd-end = <0x4BF00000>;
+ };
+ memory {
+ device_type = "memory";
+ reg = <0x40000000 0x80000000>;
+ };
+};
new file mode 100644
@@ -0,0 +1,510 @@
+// SPDX-License-Identifier: GPL-2.0
+#include <dt-bindings/interrupt-controller/irq.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+
+#include "skeleton.dtsi"
+
+/ {
+ compatible = "socionext,sc2000a";
+ interrupt-parent = <&gic>;
+ cpus {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ };
+
+
+ gic: interrupt-controller@1d000000 {
+ compatible = "arm,cortex-a7-gic";
+ interrupt-controller;
+ #interrupt-cells = <3>;
+ reg = <0x1d001000 0x1000>, /* Distributer base and size */
+ <0x1d002000 0x1000>; /* CPU I/f base and size */
+ };
+
+ m10v-clk-tree@ {
+ compatible = "socionext,milbeaut-m10v-clk-regs";
+ reg = <0x1d021000 0x4000>;
+
+ clocks {
+ #address-cells = <0>;
+ #size-cells = <0>;
+
+ uclk40xi: uclk40xi {
+ compatible = "fixed-clock";
+ #clock-cells = <0>;
+ clock-frequency = <40000000>;
+ };
+
+ aumclki: aumclki {
+ compatible = "fixed-clock";
+ #clock-cells = <0>;
+ clock-frequency = <20000000>;
+ };
+
+ rtc32k: rtc32k {
+ compatible = "fixed-clock";
+ #clock-cells = <0>;
+ clock-frequency = <32768>;
+ };
+
+ pxrefclk: pxrefclk {
+ compatible = "fixed-clock";
+ #clock-cells = <0>;
+ clock-frequency = <100000000>;
+ };
+
+ pcisuppclk: pcisuppclk {
+ compatible = "fixed-factor-clock";
+ #clock-cells = <0>;
+ clocks = <&uclk40xi>;
+ clock-div = <20>;
+ clock-mult = <1>;
+ };
+
+ usb2_clk: usb2_clk {
+ compatible = "fixed-factor-clock";
+ #clock-cells = <0>;
+ clocks = <&uclk40xi>;
+ clock-div = <2>;
+ clock-mult = <1>;
+ };
+
+ pll1: pll1 {
+ compatible =
+ "socionext,milbeaut-m10v-pll-fixed-factor";
+ #clock-cells = <0>;
+ clocks = <&uclk40xi>;
+ offset = <1>;
+ clock-div = <1>;
+ clock-mult = <40>;
+ };
+
+ pll2: pll2 {
+ compatible =
+ "socionext,milbeaut-m10v-pll-fixed-factor";
+ #clock-cells = <0>;
+ clocks = <&uclk40xi>;
+ offset = <2>;
+ clock-div = <1>;
+ clock-mult = <30>;
+ };
+
+ pll6: pll6 { /* CLK 6-1 */
+ compatible =
+ "socionext,milbeaut-m10v-pll-fixed-factor";
+ #clock-cells = <0>;
+ clocks = <&uclk40xi>;
+ offset = <7>;
+ clock-div = <1>;
+ clock-mult = <35>;
+ };
+
+ pll7: pll7 { /* CLK 7-1 */
+ compatible =
+ "socionext,milbeaut-m10v-pll-fixed-factor";
+ #clock-cells = <0>;
+ clocks = <&uclk40xi>;
+ offset = <8>;
+ clock-div = <1>;
+ clock-mult = <40>;
+ };
+
+ pll9: pll9 { /* CA7CLK, ATCLK */
+ compatible = "fixed-factor-clock";
+ #clock-cells = <0>;
+ clocks = <&uclk40xi>;
+ clock-div = <1>;
+ clock-mult = <33>;
+ };
+
+ pll10: pll10 {
+ compatible =
+ "socionext,milbeaut-m10v-pll-fixed-factor";
+ #clock-cells = <0>;
+ clocks = <&uclk40xi>;
+ offset = <10>;
+ clock-div = <5>;
+ clock-mult = <108>;
+ };
+
+ pll11: pll11 { /* CLK 11-1 */
+ compatible =
+ "socionext,milbeaut-m10v-pll-fixed-factor";
+ #clock-cells = <0>;
+ clocks = <&uclk40xi>;
+ offset = <12>;
+ clock-div = <2>;
+ clock-mult = <75>;
+ };
+
+ emmcclk: emmcclk {
+ compatible = "socionext,milbeaut-m10v-clk-div";
+ #clock-cells = <0>;
+ clocks = <&pll11>;
+ offset = <28>; /* EMMCCLK */
+ mask = <0x3>;
+ ratios = <15 0x7 10 0x6 9 0x5 8 0x4>;
+ };
+
+ pll1_div_1_2: pll1_div_1_2 { /* CLK 1-2 */
+ compatible = "fixed-factor-clock";
+ #clock-cells = <0>;
+ clocks = <&pll1>;
+ clock-div = <2>;
+ clock-mult = <1>;
+ };
+
+ pll2_div_1_2: pll2_div_1_2 { /* CLK 2-2 */
+ compatible = "fixed-factor-clock";
+ #clock-cells = <0>;
+ clocks = <&pll2>;
+ clock-div = <2>;
+ clock-mult = <1>;
+ };
+
+ pll6_div_1_2: pll6_div_1_2 { /* CLK 6-2 */
+ compatible = "fixed-factor-clock";
+ #clock-cells = <0>;
+ clocks = <&pll6>;
+ clock-div = <2>;
+ clock-mult = <1>;
+ };
+
+ pll6_div_1_3: pll6_div_1_3 { /* CLK 6-3 */
+ compatible = "fixed-factor-clock";
+ #clock-cells = <0>;
+ clocks = <&pll6>;
+ clock-div = <3>;
+ clock-mult = <1>;
+ };
+
+ pll7_div_1_2: pll7_div_1_2 { /* CLK 7-2 */
+ compatible = "fixed-factor-clock";
+ #clock-cells = <0>;
+ clocks = <&pll7>;
+ clock-div = <2>;
+ clock-mult = <1>;
+ };
+
+ pll7_div_1_5: pll7_div_1_5 { /* CLK 7-5 */
+ compatible = "fixed-factor-clock";
+ #clock-cells = <0>;
+ clocks = <&pll7>;
+ clock-div = <5>;
+ clock-mult = <1>;
+ };
+
+ pll10_div_1_2: pll10_div_1_2 { /* CLK 10-2 */
+ compatible = "fixed-factor-clock";
+ #clock-cells = <0>;
+ clocks = <&pll10>;
+ clock-div = <2>;
+ clock-mult = <1>;
+ };
+
+ spiclk_mux_0: spiclk_mux_0 {
+ compatible = "socionext,milbeaut-m10v-clk-div";
+ #clock-cells = <0>;
+ clocks = <&pll10_div_1_2>;
+ offset = <227>; /* SPICLK */
+ mask = <0x3>;
+ ratios = <4 0x5 2 0x4>;
+ };
+
+ spiclk_mux_1: spiclk_mux_1 {
+ compatible = "socionext,milbeaut-m10v-clk-div";
+ #clock-cells = <0>;
+ clocks = <&pll7_div_1_2>;
+ offset = <227>; /* SPICLK */
+ mask = <0x3>;
+ ratios = <8 0x6>;
+ };
+
+ spiclk: spiclk {
+ compatible = "socionext,milbeaut-m10v-clk-mux";
+ #clock-cells = <0>;
+ clocks = <&spiclk_mux_0>, <&spiclk_mux_1>;
+ };
+
+ ca7wdclk: ca7wdclk {
+ compatible = "fixed-factor-clock";
+ #clock-cells = <0>;
+ clocks = <&pll2_div_1_2>;
+ clock-div = <12>;
+ clock-mult = <1>;
+ };
+
+ pll9_div_1_2: pll9_div_1_2 {
+ compatible = "fixed-factor-clock";
+ #clock-cells = <0>;
+ clocks = <&pll9>;
+ clock-div = <2>;
+ clock-mult = <1>;
+ };
+
+ mclk400: mclk400 {
+ compatible = "socionext,milbeaut-m10v-clk-div";
+ #clock-cells = <0>;
+ clocks = <&pll1_div_1_2>;
+ offset = <295>; /* MCLK400 */
+ mask = <0x3>;
+ ratios = <4 0x7 2 0x5>;
+ };
+
+ mclk200: mclk200 {
+ compatible = "socionext,milbeaut-m10v-clk-div";
+ #clock-cells = <0>;
+ clocks = <&pll1_div_1_2>;
+ offset = <291>; /* MCLK200 */
+ mask = <0x7>;
+ ratios = <8 0xf 4 0xb>;
+ };
+
+ aclk400: aclk400 {
+ compatible = "socionext,milbeaut-m10v-clk-div";
+ #clock-cells = <0>;
+ clocks = <&pll1_div_1_2>;
+ offset = <288>; /* ACLK400 */
+ mask = <0x3>;
+ ratios = <4 0x7 2 0x5>;
+ };
+
+ aclk300: aclk300 {
+ compatible = "socionext,milbeaut-m10v-clk-div";
+ #clock-cells = <0>;
+ clocks = <&pll2_div_1_2>;
+ offset = <352>; /* ACLK300 */
+ mask = <0x1>;
+ ratios = <6 0x3 4 0x2>;
+ };
+
+ aclk: aclk {
+ compatible = "socionext,milbeaut-m10v-clk-div";
+ #clock-cells = <0>;
+ clocks = <&pll1_div_1_2>;
+ offset = <276>; /* ACLK */
+ mask = <0x7>;
+ ratios = <8 0xf 4 0xb>;
+ };
+
+ aclkexs: aclkexs {
+ compatible = "socionext,milbeaut-m10v-clk-div";
+ #clock-cells = <0>;
+ clocks = <&pll1_div_1_2>;
+ offset = <272>; /* ACLKEXS */
+ mask = <0x7>;
+ ratios = <8 0xf 6 0xd 5 0xc 4 0xb>;
+ };
+
+ hclk: hclk {
+ compatible = "socionext,milbeaut-m10v-clk-div";
+ #clock-cells = <0>;
+ clocks = <&pll1_div_1_2>;
+ offset = <263>; /* HCLK */
+ mask = <0xf>;
+ ratios = <16 0x1f 8 0x17>;
+ };
+
+ hclkbmh: hclkbmh {
+ compatible = "socionext,milbeaut-m10v-clk-div";
+ #clock-cells = <0>;
+ clocks = <&pll1_div_1_2>;
+ offset = <268>; /* HCLKBMH */
+ mask = <0x7>;
+ ratios = <8 0xf 4 0xb>;
+ };
+
+ pclk: pclk {
+ compatible = "socionext,milbeaut-m10v-clk-div";
+ #clock-cells = <0>;
+ clocks = <&pll1_div_1_2>;
+ offset = <256>; /* PCLK */
+ mask = <0x3f>;
+ ratios = <32 0x5f 16 0x4f>;
+ };
+
+ pclkca7wd: pclkca7wd {
+ compatible = "fixed-factor-clock";
+ #clock-cells = <0>;
+ clocks = <&pll1_div_1_2>;
+ clock-div = <16>;
+ clock-mult = <1>;
+ };
+
+ rclk: rclk {
+ compatible = "socionext,milbeaut-m10v-clk-div";
+ #clock-cells = <0>;
+ clocks = <&pll10_div_1_2>;
+ offset = <0>; /* RCLK */
+ mask = <0x3>;
+ ratios = <64 0x7 48 0x6 32 0x5 16 0x4>;
+ };
+
+ uhs1clk0: uhs1clk0 {
+ compatible = "socionext,milbeaut-m10v-clk-div";
+ #clock-cells = <0>;
+ clocks = <&pll7>;
+ offset = <3>; /* UHS1CLK0 */
+ mask = <0xf>;
+ ratios = <16 0x14 8 0x13 4 0x12 3 0x11 2 0x10>;
+ };
+
+ uhs1clk1_div1: uhs1clk1_div1 {
+ compatible = "socionext,milbeaut-m10v-clk-div";
+ #clock-cells = <0>;
+ clocks = <&pll7>;
+ offset = <8>; /* UHS1CLK1 */
+ mask = <0xf>;
+ ratios = <16 0x14 8 0x13>;
+ };
+
+ uhs1clk1_div2: uhs1clk1_div2 {
+ compatible = "socionext,milbeaut-m10v-clk-div";
+ #clock-cells = <0>;
+ clocks = <&pll6_div_1_2>;
+ offset = <8>; /* UHS1CLK1 */
+ mask = <0xf>;
+ ratios = <1 0x18>;
+ };
+
+ uhs1clk1: uhs1clk1 {
+ compatible = "socionext,milbeaut-m10v-clk-mux";
+ #clock-cells = <0>;
+ clocks = <&uhs1clk1_div1>, <&uhs1clk1_div2>;
+ };
+
+ uhs1clk2_div1: uhs1clk2_div1 {
+ compatible = "socionext,milbeaut-m10v-clk-div";
+ #clock-cells = <0>;
+ clocks = <&pll7>;
+ offset = <13>; /* UHS1CLK2 */
+ mask = <0xf>;
+ ratios = <16 0x14 8 0x13 4 0x12>;
+ };
+
+ uhs1clk2_div2: uhs1clk2_div2 {
+ compatible = "socionext,milbeaut-m10v-clk-div";
+ #clock-cells = <0>;
+ clocks = <&pll6_div_1_2>;
+ offset = <13>; /* UHS1CLK2 */
+ mask = <0xf>;
+ ratios = <1 0x18>;
+ };
+
+ uhs1clk2: uhs1clk2 {
+ compatible = "socionext,milbeaut-m10v-clk-mux";
+ #clock-cells = <0>;
+ clocks = <&uhs1clk2_div1>, <&uhs1clk2_div2>;
+ };
+
+ uhs2clk: uhs2clk {
+ compatible = "socionext,milbeaut-m10v-clk-div";
+ #clock-cells = <0>;
+ clocks = <&pll6_div_1_3>;
+ offset = <18>; /* UHS2CLK */
+ mask = <0x7>;
+ ratios = <18 0xf 16 0xe 14 0xd 13 0xc
+ 12 0xb 11 0xa 10 0x9 9 0x8>;
+ };
+
+ nfclk_div1: nfclk_div1 {
+ compatible = "socionext,milbeaut-m10v-clk-div";
+ #clock-cells = <0>;
+ clocks = <&pll7_div_1_2>;
+ offset = <22>; /* NFCLK */
+ mask = <0x1f>;
+ ratios = <40 0x24 16 0x23 13 0x22 10 0x21
+ 8 0x20>;
+ };
+
+ nfclk_div2: nfclk_div2 {
+ compatible = "socionext,milbeaut-m10v-clk-div";
+ #clock-cells = <0>;
+ clocks = <&pll7_div_1_5>;
+ offset = <22>; /* NFCLK */
+ mask = <0x1f>;
+ ratios = <10 0x28>;
+ };
+
+ nfclk: nfclk {
+ compatible = "socionext,milbeaut-m10v-clk-mux";
+ #clock-cells = <0>;
+ clocks = <&nfclk_div1>, <&nfclk_div2>;
+ };
+
+ clk5: clk5 {
+ compatible = "socionext,milbeaut-m10v-clk-div";
+ #clock-cells = <0>;
+ clocks = <&pll10_div_1_2>;
+ offset = <239>; /* NETAUSEL */
+ mask = <0x3>;
+ ratios = <64 0x7 48 0x6 32 0x5 16 0x4>;
+ };
+ };
+ };
+
+ peri-timer@1e000000 { /* 32-bit Reload Timers */
+ compatible = "socionext,milbeaut-m10v-timer";
+ reg = <0x1e000050 0x10>, <0x1e000060 0x10>;
+ interrupts = <0 91 4>;
+ clocks = <&rclk>;
+ };
+
+ timer { /* The Generic Timer */
+ compatible = "arm,armv7-timer";
+ interrupts = <GIC_PPI 13
+ (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
+ <GIC_PPI 14
+ (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
+ <GIC_PPI 11
+ (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
+ <GIC_PPI 10
+ (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
+ clock-frequency = <40000000>;//40M
+ always-on;
+ arm,cpu-registers-not-fw-configured;
+ };
+
+ dummy_clk: dummy_clk {
+ compatible = "fixed-clock";
+ #clock-cells = <0>;
+ clock-frequency = <50000000>;
+ };
+
+ pinctrl: pinctrl@1d022000 {
+ compatible = "socionext,milbeaut-m10v-pinctrl";
+ reg = <0x1d022000 0x1000>,
+ <0x1c26f000 0x1000>;
+ reg-names = "pinctrl", "exiu";
+ gpio-controller;
+ #gpio-cells = <2>;
+ interrupt-controller;
+ #interrupt-cells = <2>;
+ clocks = <&dummy_clk>;
+ interrupts = <0 54 4>, <0 55 4>, <0 56 4>, <0 57 4>,
+ <0 58 4>, <0 59 4>, <0 60 4>, <0 61 4>,
+ <0 62 4>, <0 63 4>, <0 64 4>, <0 65 4>,
+ <0 66 4>, <0 67 4>, <0 68 4>, <0 69 4>;
+ interrupt-names = "pin-48", "pin-49", "pin-50", "pin-51",
+ "pin-52", "pin-53", "pin-54", "pin-55",
+ "pin-56", "pin-57", "pin-58", "pin-59",
+ "pin-60", "pin-61", "pin-62", "pin-63";
+
+ usio1_pins: usio1_pins {
+ pins = "PE4", "PE5", "P87";
+ function = "usio1";
+ };
+ };
+
+ usio1: usio_uart@1e700010 { /* PE4, PE5 */
+ /* Enable this as ttyUSI0 */
+ index = <0>;
+ compatible = "socionext,milbeaut-m10v-usio-uart";
+ reg = <0x1e700010 0x10>;
+ interrupts = <0 141 0x4>, <0 149 0x4>;
+ interrupt-names = "rx", "tx";
+ clocks = <&hclk>;
+ };
+};
Add devicetree for Milbeaut M10V SoC and M10V Evaluation board. Signed-off-by: Sugaya Taichi <sugaya.taichi@socionext.com> --- arch/arm/boot/dts/Makefile | 1 + arch/arm/boot/dts/milbeaut-m10v-evb.dts | 35 +++ arch/arm/boot/dts/milbeaut-m10v-evb.dtsi | 17 ++ arch/arm/boot/dts/milbeaut-m10v.dtsi | 510 +++++++++++++++++++++++++++++++ 4 files changed, 563 insertions(+) create mode 100644 arch/arm/boot/dts/milbeaut-m10v-evb.dts create mode 100644 arch/arm/boot/dts/milbeaut-m10v-evb.dtsi create mode 100644 arch/arm/boot/dts/milbeaut-m10v.dtsi