blob: 51e2b0d439bd0c76fd816f3f7f8f809e041352de [file] [log] [blame]
/*
* Copyright (C) 2014 Freescale Semiconductor, Inc.
*
* 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 "imx6sx.dtsi"
/ {
model = "Freescale i.MX6 SoloX 17x17 ARM2 Board";
compatible = "fsl,imx6sx-17x17-arm2", "fsl,imx6sx";
backlight {
compatible = "pwm-backlight";
pwms = <&pwm3 0 5000000>;
brightness-levels = <0 4 8 16 32 64 128 255>;
default-brightness-level = <6>;
};
clocks {
codec_osc: codec_osc {
#clock-cells = <0>;
compatible = "fixed-clock";
clock-frequency = <12000000>;
};
};
max7322_reset: max7322-reset {
compatible = "gpio-reset";
reset-gpios = <&gpio4 22 GPIO_ACTIVE_LOW>;
reset-delay-us = <1>;
#reset-cells = <0>;
};
pxp_v4l2_out {
compatible = "fsl,imx6sx-pxp-v4l2", "fsl,imx6sl-pxp-v4l2";
status = "okay";
};
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_sdb_vmmc: sdb_vmmc{
compatible = "regulator-fixed";
regulator-name = "SD2_SPWR";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
gpio = <&gpio2 11 GPIO_ACTIVE_LOW>;
};
reg_usb_otg1_vbus: usb_otg1_vbus {
compatible = "regulator-fixed";
regulator-name = "usb_otg1_vbus";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
gpio = <&gpio1 9 0>;
enable-active-high;
};
reg_usb_otg2_vbus: usb_otg2_vbus {
compatible = "regulator-fixed";
regulator-name = "usb_otg2_vbus";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
gpio = <&gpio1 12 0>;
enable-active-high;
};
reg_vref_3v3: regulator@0 {
compatible = "regulator-fixed";
regulator-name = "vref-3v3";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
};
};
memory {
reg = <0x80000000 0x40000000>;
};
sound {
compatible = "fsl,imx6sx-arm2-sgtl5000",
"fsl,imx-audio-sgtl5000";
model = "imx6sx-arm2-sgtl5000";
cpu-dai = <&ssi1>;
audio-codec = <&codec>;
audio-routing =
"LINE_IN", "Line In Jack",
"Headphone Jack", "HP_OUT";
mux-int-port = <1>;
mux-ext-port = <4>;
};
};
&adc1 {
vref-supply = <&reg_vref_3v3>;
status = "okay";
};
&adc2 {
vref-supply = <&reg_vref_3v3>;
status = "okay";
};
&audmux {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_audmux_2>;
status = "okay";
};
&cpu0 {
arm-supply = <&sw1a_reg>;
soc-supply = <&sw1c_reg>;
pu-supply = <&pu_dummy>;
};
&ecspi4 {
fsl,spi-num-chipselects = <1>;
cs-gpios = <&gpio7 4 0>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_ecspi4_1 &pinctrl_ecspi4_cs_1>;
status = "disabled"; /* pin conflict with USDHC3 */
flash: m25p80@0 {
#address-cells = <1>;
#size-cells = <1>;
compatible = "st,m25p32";
spi-max-frequency = <20000000>;
reg = <0>;
};
};
&fec1 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_enet1_1>;
phy-mode = "rgmii";
phy-id = <1>;
fsl,num_tx_queues=<3>;
fsl,num_rx_queues=<3>;
pinctrl-assert-gpios = <&max7322_1 0 GPIO_ACTIVE_HIGH>;
fsl,magic-packet;
status = "okay";
};
&fec2 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_enet2_1>;
phy-mode = "rgmii";
phy-id = <0>;
fsl,num_tx_queues=<3>;
fsl,num_rx_queues=<3>;
pinctrl-assert-gpios = <&max7322_2 0 GPIO_ACTIVE_HIGH>;
fsl,magic-packet;
status = "okay";
};
&flexcan1 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_flexcan1_1>;
trx-en-gpio = <&gpio4 25 GPIO_ACTIVE_HIGH>;
trx-stby-gpio = <&gpio4 27 GPIO_ACTIVE_HIGH>;
trx-err-gpio = <&gpio4 24 GPIO_ACTIVE_HIGH>;
status = "okay";
};
&flexcan2 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_flexcan2_1>;
trx-en-gpio = <&gpio4 25 GPIO_ACTIVE_HIGH>;
trx-stby-gpio = <&gpio4 27 GPIO_ACTIVE_HIGH>;
trx-err-gpio = <&gpio4 30 GPIO_ACTIVE_HIGH>;
status = "okay";
};
&gpc {
fsl,cpu_pupscr_sw2iso = <0x2>;
fsl,cpu_pupscr_sw = <0x1>;
fsl,cpu_pdnscr_iso2sw = <0x1>;
fsl,cpu_pdnscr_iso = <0x1>;
fsl,wdog-reset = <1>; /* watchdog select of reset source */
fsl,ldo-bypass = <1>; /* use ldo-bypass, u-boot will check it and configure */
};
&gpmi {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_gpmi_nand_1>;
status = "disabled"; /* pin conflict with qspi*/
nand-on-flash-bbt;
};
&i2c1 {
clock-frequency = <100000>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c1_1>;
status = "okay";
pmic: pfuze100@08 {
compatible = "fsl,pfuze100";
reg = <0x08>;
regulators {
sw1a_reg: sw1ab {
regulator-min-microvolt = <300000>;
regulator-max-microvolt = <1875000>;
regulator-boot-on;
regulator-always-on;
regulator-ramp-delay = <6250>;
};
sw1c_reg: sw1c {
regulator-min-microvolt = <300000>;
regulator-max-microvolt = <1875000>;
regulator-boot-on;
regulator-always-on;
regulator-ramp-delay = <6250>;
};
sw2_reg: sw2 {
regulator-min-microvolt = <800000>;
regulator-max-microvolt = <3300000>;
regulator-boot-on;
regulator-always-on;
};
sw3a_reg: sw3a {
regulator-min-microvolt = <400000>;
regulator-max-microvolt = <1975000>;
regulator-boot-on;
regulator-always-on;
};
sw3b_reg: sw3b {
regulator-min-microvolt = <400000>;
regulator-max-microvolt = <1975000>;
regulator-boot-on;
regulator-always-on;
};
sw4_reg: sw4 {
regulator-min-microvolt = <800000>;
regulator-max-microvolt = <3300000>;
};
swbst_reg: swbst {
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5150000>;
};
snvs_reg: vsnvs {
regulator-min-microvolt = <1000000>;
regulator-max-microvolt = <3000000>;
regulator-boot-on;
regulator-always-on;
};
vref_reg: vrefddr {
regulator-boot-on;
regulator-always-on;
};
vgen1_reg: vgen1 {
regulator-min-microvolt = <800000>;
regulator-max-microvolt = <1550000>;
};
vgen2_reg: vgen2 {
regulator-min-microvolt = <800000>;
regulator-max-microvolt = <1550000>;
};
vgen3_reg: vgen3 {
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <3300000>;
regulator-always-on;
};
vgen4_reg: vgen4 {
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <3300000>;
regulator-always-on;
};
vgen5_reg: vgen5 {
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <3300000>;
regulator-always-on;
};
vgen6_reg: vgen6 {
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <3300000>;
regulator-always-on;
};
};
};
};
&i2c2 {
clock-frequency = <100000>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c2_1>;
status = "okay";
max7322_1: gpio@68 {
compatible = "maxim,max7322";
reg = <0x68>;
gpio-controller;
#gpio-cells = <2>;
resets = <&max7322_reset>;
};
max7322_2: gpio@69 {
compatible = "maxim,max7322";
reg = <0x69>;
gpio-controller;
#gpio-cells = <2>;
resets = <&max7322_reset>;
};
codec: sgtl5000@0a {
compatible = "fsl,sgtl5000";
reg = <0x0a>;
clocks = <&codec_osc>;
VDDA-supply = <&vgen4_reg>;
VDDIO-supply = <&reg_3p3v>;
};
};
&i2c3 {
clock-frequency = <100000>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c3_1>;
status = "okay";
};
&i2c4 {
clock-frequency = <100000>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c4_1>;
status = "okay";
};
&iomuxc {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_hog_1>;
hog {
pinctrl_hog_1: hoggrp-1 {
fsl,pins = <
MX6SX_PAD_KEY_COL0__GPIO2_IO_10 0x1f059
MX6SX_PAD_KEY_ROW0__GPIO2_IO_15 0x1f059
MX6SX_PAD_QSPI1A_SS0_B__GPIO4_IO_22 0x80000000
/* CAN1_2_EN */
MX6SX_PAD_QSPI1B_DATA1__GPIO4_IO_25 0x17059
/* CAN1_2_STBY_B */
MX6SX_PAD_QSPI1B_DATA3__GPIO4_IO_27 0x17059
/* CAN1_ERR_B */
MX6SX_PAD_QSPI1B_DATA0__GPIO4_IO_24 0x17059
/* CAN2_ERR_B */
MX6SX_PAD_QSPI1B_SS0_B__GPIO4_IO_30 0x17059
/* SD2_PWROFF */
MX6SX_PAD_KEY_COL1__GPIO2_IO_11 0x17059
/* WDOG_B reset */
MX6SX_PAD_GPIO1_IO13__WDOG1_WDOG_ANY 0x10b0
>;
};
};
};
&lcdif1 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_lcdif_dat_0
&pinctrl_lcdif_ctrl_0>;
display = <&display>;
status = "okay";
display: display {
bits-per-pixel = <16>;
bus-width = <24>;
display-timings {
native-mode = <&timing0>;
timing0: timing0 {
clock-frequency = <33500000>;
hactive = <800>;
vactive = <480>;
hback-porch = <89>;
hfront-porch = <164>;
vback-porch = <23>;
vfront-porch = <10>;
hsync-len = <10>;
vsync-len = <10>;
hsync-active = <0>;
vsync-active = <0>;
de-active = <1>;
pixelclk-active = <0>;
};
};
};
};
&mlb {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_mlb_1>;
status = "disabled";/* pin conflict with usdhc2*/
};
&pwm3 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_pwm3_0>;
status = "okay";
};
&pxp {
status = "okay";
};
&qspi2 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_qspi2_1>;
status = "okay";
ddrsmp=<2>;
flash0: n25q256a@0 {
#address-cells = <1>;
#size-cells = <1>;
compatible = "micron,n25q256a";
spi-max-frequency = <29000000>;
reg = <0>;
};
flash1: n25q256a@1 {
#address-cells = <1>;
#size-cells = <1>;
compatible = "micron,n25q256a";
spi-max-frequency = <29000000>;
reg = <1>;
};
};
&sai2 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_sai2_1>;
status = "disabled";
};
&spdif {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_spdif_1>;
status = "disabled";
};
&ssi1 {
fsl,mode = "i2s-slave";
status = "okay";
};
&uart1 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_uart1_1>;
status = "okay";
};
&uart2 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_uart2_1>;
status = "okay";
};
&usbh {
pinctrl-names = "idle", "active";
pinctrl-0 = <&pinctrl_usbh_1>;
pinctrl-1 = <&pinctrl_usbh_2>;
osc-clkgate-delay = <0x3>;
pad-supply = <&vgen1_reg>;
status = "okay";
};
&usbotg1 {
vbus-supply = <&reg_usb_otg1_vbus>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_usbotg1_1>;
disable-over-current;
status = "okay";
};
&usbotg2 {
/*
* Pin conflict with others, need to switch R580 & R579
* to B and disable pwm3 to enable it.
*/
vbus-supply = <&reg_usb_otg2_vbus>;
disable-over-current;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_usbotg2_1>;
status = "disabled";
};
&usdhc2 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_usdhc2_1>;
non-removable;
/* need hw rework to enable signal voltage switch */
no-1-8-v;
keep-power-in-suspend;
enable-sdio-wakeup;
status = "okay";
};
&usdhc3 {
pinctrl-names = "default", "state_100mhz", "state_200mhz";
pinctrl-0 = <&pinctrl_usdhc3_1>;
pinctrl-1 = <&pinctrl_usdhc3_1_100mhz>;
pinctrl-2 = <&pinctrl_usdhc3_1_200mhz>;
bus-width = <8>;
cd-gpios = <&gpio2 10 0>;
wp-gpios = <&gpio2 15 0>;
keep-power-in-suspend;
enable-sdio-wakeup;
vmmc-supply = <&reg_sdb_vmmc>;
status = "okay";
};
&usdhc4 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_usdhc4_1>;
bus-width = <8>;
non-removable;
/* need hw rework to enable signal voltage switch */
no-1-8-v;
status = "okay";
};