CCCPaste

ts7600 device tree

/*
* Copyright (C) 2012 Marek Vasut <[email protected]>
*
* The code contained herein is licensed under the GNU General Public
* License. You may obtain a copy of the GNU General Public License
* Version 2 or later at the following locations:
*
* http://www.opensource.org/licenses/gpl-license.html
* http://www.gnu.org/copyleft/gpl.html
*/

/dts-v1/;
#include "imx28.dtsi"
#include "dt-bindings/gpio/gpio.h"
#include <dt-bindings/interrupt-controller/irq.h>

/ {

model = "embeddedTS i.MX28 TS-7600 (Default Device Tree)";
compatible = "fsl,imx28-ts7600", "fsl,imx28";

aliases {
mmc0 = &ssp0;
mmc1 = &ssp2;
i2c0 = &i2c0;
};

memory {
reg = <0x40000000 0x10000000>; /* 256MB */
};

apb@80000000 {
apbh@80000000 {

ssp0: ssp@80010000 {
compatible = "fsl,imx28-mmc";
pinctrl-names = "default";
pinctrl-0 = <&mmc0_4bit_pins_ts
&en_sd_pwr>;
broken-cd = <1>;
bus-width = <4>;
vmmc-supply = <&reg_vddio_sd0>;
status = "okay";
};

ssp2: ssp@80014000 {
compatible = "fsl,imx28-mmc";
pinctrl-names = "default";
pinctrl-0 = <&mmc2_4bit_pins_ts>;
broken-cd = <1>;
bus-width = <4>;
vmmc-supply = <&reg_vddio_sd0>;
status = "okay";
};


pinctrl@80018000 {
pinctrl-names = "default";

en_sd_pwr: en_sd_pwr {
fsl,pinmux-ids = <
MX28_PAD_PWM3__GPIO_3_28
>;
fsl,drive-strength = <MXS_DRIVE_4mA>;
fsl,voltage = <MXS_VOLTAGE_HIGH>;
fsl,pull-up = <MXS_PULL_DISABLE>;
};

mmc0_4bit_pins_ts: mmc0-4bit@0 {
reg = <0>;
fsl,pinmux-ids = <
MX28_PAD_SSP0_DATA0__SSP0_D0
MX28_PAD_SSP0_DATA1__SSP0_D1
MX28_PAD_SSP0_DATA2__SSP0_D2
MX28_PAD_SSP0_DATA3__SSP0_D3
MX28_PAD_SSP0_CMD__SSP0_CMD
MX28_PAD_SSP0_SCK__SSP0_SCK
>;
fsl,drive-strength = <MXS_DRIVE_8mA>;
fsl,voltage = <MXS_VOLTAGE_HIGH>;
fsl,pull-up = <MXS_PULL_ENABLE>;
};

mmc2_4bit_pins_ts: mmc1-4bit@0 {
reg = <0>;
fsl,pinmux-ids = <
MX28_PAD_SSP0_DATA4__SSP2_D0
MX28_PAD_SSP2_SS1__SSP2_D1
MX28_PAD_SSP2_SS2__SSP2_D2
MX28_PAD_SSP0_DATA5__SSP2_D3
MX28_PAD_SSP0_DATA6__SSP2_CMD
MX28_PAD_SSP0_DATA7__SSP2_SCK

MX28_PAD_SSP2_SCK__GPIO_2_16
MX28_PAD_SSP2_MOSI__GPIO_2_17
MX28_PAD_SSP2_MISO__GPIO_2_18
MX28_PAD_SSP2_SS0__GPIO_2_19
>;
fsl,drive-strength = <MXS_DRIVE_8mA>;
fsl,voltage = <MXS_VOLTAGE_HIGH>;
fsl,pull-up = <MXS_PULL_ENABLE>;
};


mac0_pins_ts7600: mac0@0 {
reg = <0>;
fsl,pinmux-ids = <
MX28_PAD_ENET0_MDC__ENET0_MDC
MX28_PAD_ENET0_MDIO__ENET0_MDIO
MX28_PAD_ENET0_RX_EN__ENET0_RX_EN
MX28_PAD_ENET0_RXD0__ENET0_RXD0
MX28_PAD_ENET0_RXD1__ENET0_RXD1
MX28_PAD_ENET0_TX_EN__ENET0_TX_EN
MX28_PAD_ENET0_TXD0__ENET0_TXD0
MX28_PAD_ENET0_TXD1__ENET0_TXD1
MX28_PAD_ENET_CLK__CLKCTRL_ENET
// ETH_RESET#
MX28_PAD_SSP0_DETECT__GPIO_2_9
>;
fsl,drive-strength = <MXS_DRIVE_8mA>;
fsl,voltage = <MXS_VOLTAGE_HIGH>;
fsl,pull-up = <MXS_PULL_ENABLE>;
};

};

can0: can@80032000 {
pinctrl-names = "default";
pinctrl-0 = <&can0_pins_a>;
status = "okay";
};

can1: can@80034000 {
pinctrl-names = "default";
pinctrl-0 = <&can1_pins_a>;
status = "okay";
};

};

apbx@80040000 {
saif0: saif@80042000 {
pinctrl-names = "default";
pinctrl-0 = <&saif0_pins_a>;
status = "disabled";
};

saif1: saif@80046000 {
pinctrl-names = "default";
pinctrl-0 = <&saif1_pins_a>;
fsl,saif-master = <&saif0>;
status = "disabled";
};


i2c0: i2c@80058000 {
pinctrl-names = "default";
pinctrl-0 = <&i2c0_pins_a>;
clock-frequency = <100000>;
status = "okay";

rtc: isl12020@68 {
compatible = "isl,isl12020";
reg = <0x6f>;
};
};

duart: serial@80074000 {
pinctrl-names = "default";
pinctrl-0 = <&duart_pins_a>;
status = "okay";
};

usbphy0: usbphy@8007c000 {
status = "okay";

};

usbphy1: usbphy@8007e000 {
status = "okay";
};

pwm: pwm@80064000 {
pinctrl-names = "default";
pinctrl-0 = <&pwm2_pins_a>;
status = "okay";
};
};
};

ahb@80080000 {

usb0: usb@80080000 {
status = "okay";
};

usb1: usb@80090000 {
vbus-supply = <&reg_usb1_vbus>;
disable-over-current;
dr_mode = "host";
status = "okay";
};

mac0: ethernet@800f0000 {
phy-mode = "rmii";
pinctrl-names = "default";
pinctrl-0 = <&mac0_pins_ts7600>;
clocks = <&clks 57>, <&clks 57>, <&clks 64>;
clock-names = "ipg", "ahb", "enet_out";
phy-supply = <&reg_phy_vbus>;
phy-reset-gpios = <&gpio2 9 GPIO_ACTIVE_LOW>;
phy-reset-duration = <1000>;
status = "okay";

phy: ethernet@0 {
device_type = "network";
fixed-link = <0 1 100 0 0>;
};
};
};

regulators {
compatible = "simple-bus";

reg_3p3v: 3p3v {
compatible = "regulator-fixed";
regulator-name = "3P3V";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-always-on;
};

reg_vddio_sd0: vddio-sd0 {
compatible = "regulator-fixed";
regulator-name = "vddio-sd0";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-boot-on;
enable-active-low;
gpio = <&gpio3 28 0>; // EN_SD_PWR#
};

reg_usb1_vbus: usb1_vbus {
compatible = "regulator-fixed";
regulator-name = "usb1_vbus";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
enable-active-high;
regulator-always-on;
};

reg_phy_vbus: phy_vbus {
compatible = "regulator-fixed";
regulator-name = "phy-3v3";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
enable-active-low;
regulator-boot-on;
};
};

fpga_clock {
compatible = "pwm-clock";
#clock-cells = <0>;
clock-frequency = <12000000>;
clock-output-names = "fpga_12mhz";
pwms = <&pwm 2 83>; // 1 / 84 ns = 12ish MHz
};


};