On Thu, Oct 06, 2016 at 06:01:34PM +0530, Rahul Bedarkar wrote: > 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@xxxxxxxxxx> > --- > .../bindings/mips/img/pistachio-marduk.txt | 10 ++ > MAINTAINERS | 6 + > arch/mips/boot/dts/img/Makefile | 9 ++ > arch/mips/boot/dts/img/pistachio_marduk.dts | 163 +++++++++++++++++++++ > 4 files changed, 188 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 > > diff --git a/Documentation/devicetree/bindings/mips/img/pistachio-marduk.txt b/Documentation/devicetree/bindings/mips/img/pistachio-marduk.txt > new file mode 100644 > index 0000000..2d5126d > --- /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. > diff --git a/MAINTAINERS b/MAINTAINERS > index 98bcf06..8e6c962b 100644 > --- a/MAINTAINERS > +++ b/MAINTAINERS > @@ -7515,6 +7515,12 @@ W: http://www.kernel.org/doc/man-pages > L: linux-man@xxxxxxxxxxxxxxx > S: Maintained > > +MARDUK (CREATOR CI40) DEVICE TREE SUPPORT > +M: Rahul Bedarkar <rahul.bedarkar@xxxxxxxxxx> > +L: linux-mips@xxxxxxxxxxxxxx > +S: Maintained > +F: arch/mips/boot/dts/img/pistachio_marduk.dts > + > MARVELL 88E6XXX ETHERNET SWITCH FABRIC DRIVER > M: Andrew Lunn <andrew@xxxxxxx> > M: Vivien Didelot <vivien.didelot@xxxxxxxxxxxxxxxxxxxx> > diff --git a/arch/mips/boot/dts/img/Makefile b/arch/mips/boot/dts/img/Makefile > new file mode 100644 > index 0000000..69a65f0 > --- /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 > diff --git a/arch/mips/boot/dts/img/pistachio_marduk.dts b/arch/mips/boot/dts/img/pistachio_marduk.dts > new file mode 100644 > index 0000000..378381e > --- /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 { Is 0 the actual base, or that gets filled in by bootloader? If the formet, add unit address. > + device_type = "memory"; > + reg = <0x00000000 0x08000000>; > + }; > + > + 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 { Don't use '_' in node names. > + compatible = "regulator-fixed"; > + regulator-name = "internal_dac_supply"; > + regulator-min-microvolt = <1800000>; > + regulator-max-microvolt = <1800000>; > + }; > + > + pwm_leds { Just 'leds'. > + compatible = "pwm-leds"; > + heartbeat { > + label = "marduk:red:heartbeat"; > + pwms = <&pwm 3 300000>; > + max-brightness = <255>; > + linux,default-trigger = "heartbeat"; > + }; > + }; > + > + gpio_keys { 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 = "jedec,spi-nor"; This should have the specific part too. > + 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>; > +}; > -- > 2.6.2 > > -- > To unsubscribe from this list: send the line "unsubscribe devicetree" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html