Training courses

Kernel and Embedded Linux

Bootlin training courses

Embedded Linux, kernel,
Yocto Project, Buildroot, real-time,
graphics, boot time, debugging...

Bootlin logo

Elixir Cross Referencer

/*
 * Copyright (C) 2015 Marek Vasut <marex@denx.de>
 *
 * The code contained herein is licensed under the GNU General Public
 * License. You may obtain a copy of the GNU General Public License
 * Version 2 or later at the following locations:
 *
 * http://www.opensource.org/licenses/gpl-license.html
 * http://www.gnu.org/copyleft/gpl.html
 */

#include "sama5d4.dtsi"

/ {
	model = "Aries/DENX MA5D4";
	compatible = "aries,ma5d4", "denx,ma5d4", "atmel,sama5d4", "atmel,sama5";

	memory {
		reg = <0x20000000 0x10000000>;
	};

	clocks {
		slow_xtal {
			clock-frequency = <32768>;
		};

		main_xtal {
			clock-frequency = <12000000>;
		};

		clk20m: clk20m {
			compatible = "fixed-clock";
			#clock-cells = <0>;
			clock-frequency = <20000000>;
			clock-output-names = "clk20m";
		};
	};

	ahb {
		apb {
			mmc0: mmc@f8000000 {
				pinctrl-names = "default";
				pinctrl-0 = <&pinctrl_mmc0_clk_cmd_dat0 &pinctrl_mmc0_dat1_3 &pinctrl_mmc0_dat4_7>;
				vmmc-supply = <&vcc_mmc0_reg>;
				vqmmc-supply = <&vcc_3v3_reg>;
				status = "okay";
				slot@0 {
					reg = <0>;
					bus-width = <8>;
					broken-cd;
				};
			};

			spi0: spi@f8010000 {
				cs-gpios = <&pioC 3 0>, <0>, <0>, <0>;
				status = "okay";

				m25p80@0 {
					compatible = "atmel,at25df321a";
					spi-max-frequency = <50000000>;
					reg = <0>;
				};
			};

			i2c0: i2c@f8014000 {
				status = "okay";
			};

			spi1: spi@fc018000 {
				cs-gpios = <&pioB 22 0>, <&pioB 23 0>, <0>, <0>;
				status = "okay";

				can0: can@0 {
					compatible = "microchip,mcp2515";
					reg = <0>;
					clocks = <&clk20m>;
					interrupt-parent = <&pioE>;
					interrupts = <6 IRQ_TYPE_EDGE_RISING>;
					spi-max-frequency = <10000000>;
				};

				can1: can@1 {
					compatible = "microchip,mcp2515";
					reg = <1>;
					clocks = <&clk20m>;
					interrupt-parent = <&pioE>;
					interrupts = <7 IRQ_TYPE_EDGE_RISING>;
					spi-max-frequency = <10000000>;
				};
			};

			tcb2: timer@fc024000 {
				timer@0 {
					compatible = "atmel,tcb-timer";
					reg = <0>;
				};

				timer@1 {
					compatible = "atmel,tcb-timer";
					reg = <1>;
				};
			};

			adc0: adc@fc034000 {
				pinctrl-names = "default";
				pinctrl-0 = <
					/* external trigger conflicts with USBA_VBUS */
					&pinctrl_adc0_ad0
					&pinctrl_adc0_ad1
					&pinctrl_adc0_ad2
					&pinctrl_adc0_ad3
					&pinctrl_adc0_ad4
					>;
				atmel,adc-vref = <3300>;
				status = "okay";
			};

			watchdog@fc068640 {
				status = "okay";
			};
		};
	};

	vcc_3v3_reg: fixedregulator_3v3 {
		compatible = "regulator-fixed";
		regulator-name = "VCC 3V3";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
		regulator-boot-on;
		regulator-always-on;
	};

	vcc_mmc0_reg: fixedregulator_mmc0 {
		compatible = "regulator-fixed";
		gpio = <&pioE 15 GPIO_ACTIVE_HIGH>;
		regulator-name = "RST_n MCI0";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
		vin-supply = <&vcc_3v3_reg>;
		regulator-boot-on;
	};
};