arch/arm/boot/dts/marvell/armada-370-synology-ds213j.dts

Source file repositories/reference/linux-study-clean/arch/arm/boot/dts/marvell/armada-370-synology-ds213j.dts

File Facts

System
Linux kernel
Corpus path
arch/arm/boot/dts/marvell/armada-370-synology-ds213j.dts
Extension
.dts
Size
7057 bytes
Lines
307
Domain
Architecture Layer
Bucket
arch/arm
Inferred role
Architecture Layer: configuration, schema, or hardware description
Status
atlas-only

Why This File Exists

CPU and platform-specific kernel glue: boot entry, traps, syscall entry, interrupts, page tables, context switch, and low-level barriers.

Dependency Surface

Detected Declarations

Annotated Snippet

// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
 * Device Tree file for Synology DS213j
 *
 * Copyright (C) 2014, Arnaud EBALARD <arno@natisbad.org>
 *
 * Note: this Device Tree assumes that the bootloader has remapped the
 * internal registers to 0xf1000000 (instead of the old 0xd0000000).
 * The 0xf1000000 is the default used by the recent, DT-capable, U-Boot
 * bootloaders provided by Marvell. It is used in recent versions of
 * DSM software provided by Synology. Nonetheless, some earlier boards
 * were delivered with an older version of u-boot that left internal
 * registers mapped at 0xd0000000. If you have such a device you will
 * not be able to directly boot a kernel based on this Device Tree. In
 * that case, the preferred solution is to update your bootloader (e.g.
 * by upgrading to latest version of DSM, or building a new one and
 * installing it from u-boot prompt) or adjust the Devive Tree
 * (s/0xf1000000/0xd0000000/ in 'ranges' below).
 */

/dts-v1/;

#include <dt-bindings/input/input.h>
#include <dt-bindings/gpio/gpio.h>
#include "armada-370.dtsi"

/ {
	model = "Synology DS213j";
	compatible = "synology,ds213j", "marvell,armada370",
		     "marvell,armada-370-xp";

	chosen {
		stdout-path = "serial0:115200n8";
	};

	memory@0 {
		device_type = "memory";
		reg = <0x00000000 0x20000000>; /* 512 MB */
	};

	soc {
		ranges = <MBUS_ID(0xf0, 0x01) 0 0xf1000000 0x100000
			  MBUS_ID(0x01, 0xe0) 0 0xfff00000 0x100000
			  MBUS_ID(0x09, 0x01) 0 0xf1100000 0x10000>;

		internal-regs {

			/* RTC provided by Seiko S-35390A I2C RTC chip below */
			rtc@10300 {
				status = "disabled";
			};

			i2c@11000 {
				compatible = "marvell,mv64xxx-i2c";
				pinctrl-0 = <&i2c0_pins>;
				pinctrl-names = "default";
				clock-frequency = <400000>;
				status = "okay";

				/* Main device RTC chip */
				s35390a: s35390a@30 {
					 compatible = "sii,s35390a";
					 reg = <0x30>;
				};
			};

			/* Connected to a header on device's PCB */
			serial@12000 {
				status = "okay";
			};

Annotation

Implementation Notes