231 lines
		
	
	
		
			5.1 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			231 lines
		
	
	
		
			5.1 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
From a189771546b304250cf18b26748edfefb857adbf Mon Sep 17 00:00:00 2001
 | 
						|
From: Rahul Bedarkar <rahul.bedarkar@imgtec.com>
 | 
						|
Date: Fri, 14 Oct 2016 11:25:55 +0530
 | 
						|
Subject: MIPS: DTS: img: add device tree for Marduk board
 | 
						|
 | 
						|
Add support for Imagination Technologies' Marduk board which is based
 | 
						|
on Pistachio SoC. It is also known as Creator Ci40. Marduk is legacy
 | 
						|
name and will be there for decades.
 | 
						|
 | 
						|
Documentation for this board can be found on
 | 
						|
https://docs.creatordev.io/ci40/
 | 
						|
 | 
						|
This patch adds initial support for board with following peripherals:
 | 
						|
 | 
						|
* PWM based heartbeat LED
 | 
						|
* GPIO based buttons
 | 
						|
* SPI NOR flash on SPI1
 | 
						|
* UART0 and UART1
 | 
						|
* SD card
 | 
						|
* Ethernet
 | 
						|
* USB
 | 
						|
* PWM
 | 
						|
* ADC
 | 
						|
* I2C
 | 
						|
 | 
						|
(apply from https://patchwork.linux-mips.org/project/linux-mips/list/?submitter=7165)
 | 
						|
 | 
						|
Signed-off-by: Rahul Bedarkar <rahul.bedarkar@imgtec.com>
 | 
						|
Acked-by: Rob Herring <robh@kernel.org>
 | 
						|
Acked-by: James Hartley <james.hartley@imgtec.com>
 | 
						|
---
 | 
						|
 .../bindings/mips/img/pistachio-marduk.txt         |  10 ++
 | 
						|
 arch/mips/boot/dts/img/Makefile                    |   9 ++
 | 
						|
 arch/mips/boot/dts/img/pistachio_marduk.dts        | 163 +++++++++++++++++++++
 | 
						|
 3 files changed, 182 insertions(+)
 | 
						|
 create mode 100644 Documentation/devicetree/bindings/mips/img/pistachio-marduk.txt
 | 
						|
 create mode 100644 arch/mips/boot/dts/img/Makefile
 | 
						|
 create mode 100644 arch/mips/boot/dts/img/pistachio_marduk.dts
 | 
						|
 | 
						|
--- /dev/null
 | 
						|
+++ b/Documentation/devicetree/bindings/mips/img/pistachio-marduk.txt
 | 
						|
@@ -0,0 +1,10 @@
 | 
						|
+Imagination Technologies' Pistachio SoC based Marduk Board
 | 
						|
+==========================================================
 | 
						|
+
 | 
						|
+Compatible string must be "img,pistachio-marduk", "img,pistachio"
 | 
						|
+
 | 
						|
+Hardware and other related documentation is available at
 | 
						|
+https://docs.creatordev.io/ci40/
 | 
						|
+
 | 
						|
+It is also known as Creator Ci40. Marduk is legacy name and will
 | 
						|
+be there for decades.
 | 
						|
--- /dev/null
 | 
						|
+++ b/arch/mips/boot/dts/img/Makefile
 | 
						|
@@ -0,0 +1,9 @@
 | 
						|
+dtb-$(CONFIG_MACH_PISTACHIO)	+= pistachio_marduk.dtb
 | 
						|
+
 | 
						|
+obj-y				+= $(patsubst %.dtb, %.dtb.o, $(dtb-y))
 | 
						|
+
 | 
						|
+# Force kbuild to make empty built-in.o if necessary
 | 
						|
+obj-				+= dummy.o
 | 
						|
+
 | 
						|
+always				:= $(dtb-y)
 | 
						|
+clean-files			:= *.dtb *.dtb.S
 | 
						|
--- /dev/null
 | 
						|
+++ b/arch/mips/boot/dts/img/pistachio_marduk.dts
 | 
						|
@@ -0,0 +1,163 @@
 | 
						|
+/*
 | 
						|
+ * Copyright (C) 2015, 2016 Imagination Technologies Ltd.
 | 
						|
+ *
 | 
						|
+ * 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.
 | 
						|
+ *
 | 
						|
+ * IMG Marduk board is also known as Creator Ci40.
 | 
						|
+ */
 | 
						|
+
 | 
						|
+/dts-v1/;
 | 
						|
+
 | 
						|
+#include "pistachio.dtsi"
 | 
						|
+
 | 
						|
+/ {
 | 
						|
+	model = "IMG Marduk (Creator Ci40)";
 | 
						|
+	compatible = "img,pistachio-marduk", "img,pistachio";
 | 
						|
+
 | 
						|
+	aliases {
 | 
						|
+		serial0 = &uart0;
 | 
						|
+		serial1 = &uart1;
 | 
						|
+		ethernet0 = &enet;
 | 
						|
+		spi0 = &spfi0;
 | 
						|
+		spi1 = &spfi1;
 | 
						|
+	};
 | 
						|
+
 | 
						|
+	chosen {
 | 
						|
+		bootargs = "root=/dev/sda1 rootwait ro lpj=723968";
 | 
						|
+		stdout-path = "serial1:115200";
 | 
						|
+	};
 | 
						|
+
 | 
						|
+	memory {
 | 
						|
+		device_type = "memory";
 | 
						|
+		reg =  <0x00000000 0x10000000>;
 | 
						|
+	};
 | 
						|
+
 | 
						|
+	reg_1v8: fixed-regulator {
 | 
						|
+		compatible = "regulator-fixed";
 | 
						|
+		regulator-name = "aux_adc_vref";
 | 
						|
+		regulator-min-microvolt = <1800000>;
 | 
						|
+		regulator-max-microvolt = <1800000>;
 | 
						|
+		regulator-boot-on;
 | 
						|
+	};
 | 
						|
+
 | 
						|
+	internal_dac_supply: internal-dac-supply {
 | 
						|
+		compatible = "regulator-fixed";
 | 
						|
+		regulator-name = "internal_dac_supply";
 | 
						|
+		regulator-min-microvolt = <1800000>;
 | 
						|
+		regulator-max-microvolt = <1800000>;
 | 
						|
+	};
 | 
						|
+
 | 
						|
+	leds {
 | 
						|
+		compatible = "pwm-leds";
 | 
						|
+		heartbeat {
 | 
						|
+			label = "marduk:red:heartbeat";
 | 
						|
+			pwms = <&pwm 3 300000>;
 | 
						|
+			max-brightness = <255>;
 | 
						|
+			linux,default-trigger = "heartbeat";
 | 
						|
+		};
 | 
						|
+	};
 | 
						|
+
 | 
						|
+	keys {
 | 
						|
+		compatible = "gpio-keys";
 | 
						|
+		button@1 {
 | 
						|
+			label = "Button 1";
 | 
						|
+			linux,code = <0x101>; /* BTN_1 */
 | 
						|
+			gpios = <&gpio3 6 GPIO_ACTIVE_LOW>;
 | 
						|
+		};
 | 
						|
+		button@2 {
 | 
						|
+			label = "Button 2";
 | 
						|
+			linux,code = <0x102>; /* BTN_2 */
 | 
						|
+			gpios = <&gpio2 14 GPIO_ACTIVE_LOW>;
 | 
						|
+		};
 | 
						|
+	};
 | 
						|
+};
 | 
						|
+
 | 
						|
+&internal_dac {
 | 
						|
+	VDD-supply = <&internal_dac_supply>;
 | 
						|
+};
 | 
						|
+
 | 
						|
+&spfi1 {
 | 
						|
+	status = "okay";
 | 
						|
+
 | 
						|
+	pinctrl-0 = <&spim1_pins>, <&spim1_quad_pins>, <&spim1_cs0_pin>,
 | 
						|
+		    <&spim1_cs1_pin>;
 | 
						|
+	pinctrl-names = "default";
 | 
						|
+	cs-gpios = <&gpio0 0 GPIO_ACTIVE_HIGH>, <&gpio0 1 GPIO_ACTIVE_HIGH>;
 | 
						|
+
 | 
						|
+	flash@0 {
 | 
						|
+		compatible = "spansion,s25fl016k", "jedec,spi-nor";
 | 
						|
+		reg = <0>;
 | 
						|
+		spi-max-frequency = <50000000>;
 | 
						|
+	};
 | 
						|
+};
 | 
						|
+
 | 
						|
+&uart0 {
 | 
						|
+	status = "okay";
 | 
						|
+	assigned-clock-rates = <114278400>, <1843200>;
 | 
						|
+};
 | 
						|
+
 | 
						|
+&uart1 {
 | 
						|
+	status = "okay";
 | 
						|
+};
 | 
						|
+
 | 
						|
+&usb {
 | 
						|
+	status = "okay";
 | 
						|
+};
 | 
						|
+
 | 
						|
+&enet {
 | 
						|
+	status = "okay";
 | 
						|
+};
 | 
						|
+
 | 
						|
+&pin_enet {
 | 
						|
+	drive-strength = <2>;
 | 
						|
+};
 | 
						|
+
 | 
						|
+&pin_enet_phy_clk {
 | 
						|
+	drive-strength = <2>;
 | 
						|
+};
 | 
						|
+
 | 
						|
+&sdhost {
 | 
						|
+	status = "okay";
 | 
						|
+	bus-width = <4>;
 | 
						|
+	disable-wp;
 | 
						|
+};
 | 
						|
+
 | 
						|
+&pin_sdhost_cmd {
 | 
						|
+	drive-strength = <2>;
 | 
						|
+};
 | 
						|
+
 | 
						|
+&pin_sdhost_data {
 | 
						|
+	drive-strength = <2>;
 | 
						|
+};
 | 
						|
+
 | 
						|
+&pwm {
 | 
						|
+	status = "okay";
 | 
						|
+
 | 
						|
+	pinctrl-0 = <&pwmpdm0_pin>, <&pwmpdm1_pin>, <&pwmpdm2_pin>,
 | 
						|
+		    <&pwmpdm3_pin>;
 | 
						|
+	pinctrl-names = "default";
 | 
						|
+};
 | 
						|
+
 | 
						|
+&adc {
 | 
						|
+	status = "okay";
 | 
						|
+	vref-supply = <®_1v8>;
 | 
						|
+	adc-reserved-channels = <0x10>;
 | 
						|
+};
 | 
						|
+
 | 
						|
+&i2c2 {
 | 
						|
+	status = "okay";
 | 
						|
+	clock-frequency = <400000>;
 | 
						|
+
 | 
						|
+	tpm@20 {
 | 
						|
+		compatible = "infineon,slb9645tt";
 | 
						|
+		reg = <0x20>;
 | 
						|
+	};
 | 
						|
+
 | 
						|
+};
 | 
						|
+
 | 
						|
+&i2c3 {
 | 
						|
+	status = "okay";
 | 
						|
+	clock-frequency = <400000>;
 | 
						|
+};
 |