blob: e855156e52670dec762bb2461327894cf929c2be [file] [log] [blame]
/*
* Copyright (C) 2015 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.
*/
/dts-v1/;
#include "pistachio.dtsi"
#include <dt-bindings/sound/pistachio-audio.h>
#include "pistachio_board_uboot.dtsi"
/ {
model = "IMG Marduk";
compatible = "img,pistachio-marduk", "img,pistachio";
aliases {
serial0 = &uart0;
serial1 = &uart1;
ethernet0 = &enet;
spi0 = &spfi0;
spi1 = &spfi1;
};
chosen {
bootargs = "console=ttyS1,115200n8 earlycon=uart8250,mmio32,0x18101500,115200 root=/dev/sda1 rootwait ro";
};
memory {
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;
};
pistachio_audio_card {
compatible = "img,pistachio-audio";
clocks = <&clk_core CLK_AUDIO_PLL>,
<&clk_core CLK_I2S>,
<&clk_core CLK_AUDIO>;
clock-names = "audio_pll", "i2s_mclk", "dac_clk";
img,cr-periph = <&cr_periph>;
img,event-timer = <&event_timer>;
pinctrl-names = "default";
pinctrl-0 = <&dac_clk_pin>, <&i2s_mclk_pin>;
spdif-out {
cpu-dai = <&spdif_out>;
};
spdif-in {
cpu-dai = <&spdif_in>;
};
parallel-out {
cpu-dai = <&parallel_out>;
sound-dai = <&internal_dac>;
};
i2s-out {
cpu-dai = <&i2s_out>;
format = "i2s";
};
i2s-in {
cpu-dai = <&i2s_in>;
format = "i2s";
ak5720vt {
mclk = <PISTACHIO_MCLK_I2S>;
mclk-fs = <256>;
mclk-min-freq = <8192000>;
mclk-max-freq = <24576000>;
};
};
};
gpio_keys {
compatible = "gpio-keys";
switch@1 {
label = "SWITCH 1";
linux,code = <0x101>; /* BTN_1 */
gpios = <&gpio2 13 GPIO_ACTIVE_LOW>;
};
switch@2 {
label = "SWITCH 2";
linux,code = <0x102>; /* BTN_2 */
gpios = <&gpio2 14 GPIO_ACTIVE_LOW>;
};
};
gpio_leds {
compatible = "gpio-leds";
user1 {
label = "marduk:red:user1";
gpios = <&sc16is752 0 GPIO_ACTIVE_LOW>;
};
user2 {
label = "marduk:red:user2";
gpios = <&sc16is752 1 GPIO_ACTIVE_LOW>;
};
user3 {
label = "marduk:red:user3";
gpios = <&sc16is752 2 GPIO_ACTIVE_LOW>;
};
user4 {
label = "marduk:red:user4";
gpios = <&sc16is752 3 GPIO_ACTIVE_LOW>;
};
user5 {
label = "marduk:red:user5";
gpios = <&sc16is752 4 GPIO_ACTIVE_LOW>;
};
user6 {
label = "marduk:red:user6";
gpios = <&sc16is752 5 GPIO_ACTIVE_LOW>;
};
user7 {
label = "marduk:red:user7";
gpios = <&sc16is752 6 GPIO_ACTIVE_LOW>;
};
heartbeat {
label = "marduk:red:heartbeat";
gpios = <&gpio4 12 GPIO_ACTIVE_HIGH>;
linux,default-trigger = "heartbeat";
};
};
};
&spim0_clk {
drive-strength = <2>;
};
&spfi0 {
status = "okay";
pinctrl-0 = <&spim0_pins>;
pinctrl-names = "default";
cs-gpios = <&gpio1 14 GPIO_ACTIVE_HIGH>, <&gpio0 2 GPIO_ACTIVE_HIGH>,
<&gpio1 12 GPIO_ACTIVE_HIGH>, <&gpio1 13 GPIO_ACTIVE_HIGH>;
cc2520: cc2520@0 {
compatible = "ti,cc2520";
reg = <0>;
spi-max-frequency = <4000000>;
fifo-gpio = <&gpio3 4 GPIO_ACTIVE_HIGH>;
fifop-gpio = <&gpio3 5 GPIO_ACTIVE_HIGH>;
sfd-gpio = <&gpio4 15 GPIO_ACTIVE_HIGH>;
cca-gpio = <&gpio3 6 GPIO_ACTIVE_HIGH>;
vreg-gpio = <&gpio2 12 GPIO_ACTIVE_HIGH>;
reset-gpio = <&gpio0 12 GPIO_ACTIVE_HIGH>;
#clock-cells = <0>;
extclock-freq = <16000000>;
};
sc16is752: sc16is752@1 {
compatible = "nxp,sc16is752";
reg = <1>;
clocks = <&cc2520 0>;
spi-max-frequency = <4000000>;
interrupt-parent = <&gpio0>;
interrupts = <11 IRQ_TYPE_EDGE_FALLING>;
gpio-controller;
#gpio-cells = <2>;
};
spidev@2 {
compatible = "img,click-interface";
reg = <2>;
spi-max-frequency = <2000000>;
};
spidev@3 {
compatible = "img,click-interface";
reg = <3>;
spi-max-frequency = <2000000>;
};
};
&spfi1 {
status = "okay";
pinctrl-0 = <&spim1_pins>, <&spim1_quad_pins>;
pinctrl-names = "default";
cs-gpios = <&gpio0 0 GPIO_ACTIVE_HIGH>, <&gpio0 1 GPIO_ACTIVE_HIGH>;
flash@0 {
compatible = "jedec,spi-nor";
reg = <0>;
spi-max-frequency = <50000000>;
linux,mtd-name = "spi-nor";
};
flash@1 {
compatible = "gigadevice,gd5f";
reg = <1>;
spi-max-frequency = <50000000>;
nand-on-flash-bbt;
spi-rx-bus-width = <2>;
#address-cells = <1>;
#size-cells = <1>;
linux,mtd-name = "spi-nand";
};
};
&uccphostport {
status = "okay";
};
&uccpdummyhp {
status = "okay";
};
&uart0 {
status = "okay";
assigned-clock-rates = <114278400>, <1843200>;
};
&uart1 {
status = "okay";
};
&usb {
status = "okay";
};
&usb_phy {
pinctrl-names = "default";
pinctrl-0 = <&usb_pwr_on_pins>;
enable-vbus-drive;
};
&enet {
status = "okay";
mac-address = [0019f5ffff00];
};
&pin_enet_phy_clk {
drive-strength = <2>;
};
&sdhost {
status = "okay";
bus-width = <4>;
disable-wp;
};
&ir {
status = "okay";
};
&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>;
};
&i2c3 {
status = "okay";
clock-frequency = <400000>;
};
&wifi {
status = "okay";
mac-address0 = [0019f5ffff01];
mac-address1 = [0019f5ffff02];
rf-params = [1A1c1f24292e33383c4045484d5157595d6165686d712023263d3135393c41454a4d505356595c5f6164672023282c3135393d4145494d53565a5e626567696c1c20252b3134373c4144484d52555a5e62666a6f742023282c31363a3e4245494e51575b5f63666b71761c1f24292e33383c4045494d5155585b5e62666a6f1e22262d3135393d42464b4e52575a5c6064676b702023282c3135393d4145494d5356595b5e606366692023272a31363b3f44484c5054575a5e6165696d711f2225292f33383c4043474c5054595d6165696d730B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B];
num_streams = [02];
};
&i2s_out {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&i2s_out_pins>;
};
&i2s_in {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&i2s_in_pins>;
};
&i2s_out_pins {
i2s-out {
pins = "mfio37", "mfio38", "mfio39",
"mfio40", "mfio41";
function = "i2s_out";
};
};
&i2s_in_pins {
i2s-in {
pins = "mfio47", "mfio48", "mfio49",
"mfio50", "mfio51";
function = "i2s_in";
};
};
&spdif_out {
status = "okay";
};
&spdif_in {
status = "okay";
};
&parallel_out {
status = "okay";
};