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.bedar...@imgtec.com>
> ---
>  .../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-...@vger.kernel.org
>  S:   Maintained
>  
> +MARDUK (CREATOR CI40) DEVICE TREE SUPPORT
> +M:   Rahul Bedarkar <rahul.bedar...@imgtec.com>
> +L:   linux-m...@linux-mips.org
> +S:   Maintained
> +F:   arch/mips/boot/dts/img/pistachio_marduk.dts
> +
>  MARVELL 88E6XXX ETHERNET SWITCH FABRIC DRIVER
>  M:   Andrew Lunn <and...@lunn.ch>
>  M:   Vivien Didelot <vivien.dide...@savoirfairelinux.com>
> 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 = <&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>;
> +};
> -- 
> 2.6.2
> 
> --
> To unsubscribe from this list: send the line "unsubscribe devicetree" in
> the body of a message to majord...@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to