Skip to content

Commit

Permalink
MIPS: DTS: img: add device tree for Marduk board
Browse files Browse the repository at this point in the history
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

Signed-off-by: Rahul Bedarkar <rahul.bedarkar@imgtec.com>
Acked-by: Rob Herring <robh@kernel.org>
Acked-by: James Hartley <james.hartley@imgtec.com>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: linux-mips@linux-mips.org
Cc: devicetree@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Patchwork: https://patchwork.linux-mips.org/patch/14394/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
  • Loading branch information
Rahul Bedarkar authored and Ralf Baechle committed Jan 3, 2017
1 parent d774a58 commit daa1017
Show file tree
Hide file tree
Showing 4 changed files with 188 additions and 0 deletions.
10 changes: 10 additions & 0 deletions Documentation/devicetree/bindings/mips/img/pistachio-marduk.txt
Original file line number Diff line number Diff line change
@@ -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.
6 changes: 6 additions & 0 deletions MAINTAINERS
Original file line number Diff line number Diff line change
Expand Up @@ -7692,6 +7692,12 @@ W: http://www.kernel.org/doc/man-pages
L: linux-man@vger.kernel.org
S: Maintained

MARDUK (CREATOR CI40) DEVICE TREE SUPPORT
M: Rahul Bedarkar <rahul.bedarkar@imgtec.com>
L: linux-mips@linux-mips.org
S: Maintained
F: arch/mips/boot/dts/img/pistachio_marduk.dts

MARVELL 88E6XXX ETHERNET SWITCH FABRIC DRIVER
M: Andrew Lunn <andrew@lunn.ch>
M: Vivien Didelot <vivien.didelot@savoirfairelinux.com>
Expand Down
9 changes: 9 additions & 0 deletions arch/mips/boot/dts/img/Makefile
Original file line number Diff line number Diff line change
@@ -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
163 changes: 163 additions & 0 deletions arch/mips/boot/dts/img/pistachio_marduk.dts
Original file line number Diff line number Diff line change
@@ -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 = <&reg_1v8>;
adc-reserved-channels = <0x10>;
};

&i2c2 {
status = "okay";
clock-frequency = <400000>;

tpm@20 {
compatible = "infineon,slb9645tt";
reg = <0x20>;
};

};

&i2c3 {
status = "okay";
clock-frequency = <400000>;
};

0 comments on commit daa1017

Please sign in to comment.