mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-29 01:59:02 +00:00
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>;
|
||
|
+};
|