linux-brain/arch/arm/boot/dts/imx28-brain.dtsi

413 lines
9.5 KiB
Plaintext

// SPDX-License-Identifier: GPL-2.0+
//
// Copyright 2012 Freescale Semiconductor, Inc.
/dts-v1/;
#include "imx28.dtsi"
#include <dt-bindings/interrupt-controller/irq.h>
/ {
model = "SHARP Brain PW-SH1";
compatible = "sharp,pw-sh1", "fsl,imx28";
memory@40000000 {
device_type = "memory";
reg = <0x40000000 0x08000000>;
};
reg_3p3v: regulator-3p3v {
compatible = "regulator-fixed";
regulator-name = "3P3V";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-always-on;
};
reg_vddio_sd0: regulator-vddio-sd0 {
compatible = "regulator-fixed";
regulator-name = "vddio-sd0";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
gpio = <&gpio3 28 0>;
};
reg_fec_3v3: regulator-fec-3v3 {
compatible = "regulator-fixed";
regulator-name = "fec-3v3";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
gpio = <&gpio2 15 0>;
};
reg_usb0_vbus: regulator-usb0-vbus {
compatible = "regulator-fixed";
regulator-name = "usb0_vbus";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
gpio = <&gpio3 9 0>;
enable-active-high;
};
reg_lcd_3v3: regulator-lcd-3v3 {
compatible = "regulator-fixed";
regulator-name = "lcd-3v3";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
gpio = <&gpio3 30 0>;
enable-active-high;
};
reg_can_3v3: regulator-can-3v3 {
compatible = "regulator-fixed";
regulator-name = "can-3v3";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
gpio = <&gpio2 13 0>;
enable-active-high;
};
reg_lcd_5v: regulator-lcd-5v {
compatible = "regulator-fixed";
regulator-name = "lcd-5v";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
};
apb@80000000 {
apbh@80000000 {
ssp0: spi@80010000 {
compatible = "fsl,imx28-mmc";
pinctrl-names = "default";
pinctrl-0 = <&mmc0_8bit_pins_a
&mmc0_cd_cfg &mmc0_sck_cfg>;
bus-width = <8>;
wp-gpios = <&gpio2 12 0>;
vmmc-supply = <&reg_vddio_sd0>;
status = "okay";
};
ssp1: spi@80012000 {
compatible = "fsl,imx28-mmc";
pinctrl-names = "default";
pinctrl-0 = <&mmc1_4bit_pins_a
&mmc1_cd_cfg &mmc1_sck_cfg>;
bus-width = <4>;
status = "okay";
};
ssp2: spi@80014000 {
compatible = "fsl,imx28-spi";
pinctrl-names = "default";
pinctrl-0 = <&slcd_pins>;
clock-frequency = <16000000>;
status = "disabled";
slcd: slcd@0 {
reg = <0>;
status = "okay";
compatible = "brain,st7586";
spi-max-frequency = <16000000>;
reset-gpios = <&gpio2 18 GPIO_ACTIVE_HIGH>;
rotation = <180>;
};
};
pinctrl@80018000 {
pinctrl-names = "default";
pinctrl-0 = <&hog_pins_3v3_pullup &hog_pins_3v3_nopull &hog_pins_1v8_nopull>;
hog_pins_3v3_pullup: hog@0 {
reg = <0>;
fsl,pinmux-ids = <
MX28_PAD_GPMI_CLE__GPIO_0_27
>;
fsl,drive-strength = <MXS_DRIVE_4mA>;
fsl,voltage = <MXS_VOLTAGE_HIGH>;
fsl,pull-up = <MXS_PULL_ENABLE>;
};
hog_pins_3v3_nopull: hog@1 {
reg = <1>;
fsl,pinmux-ids = <
MX28_PAD_SSP1_CMD__GPIO_2_13
MX28_PAD_SSP1_DATA3__GPIO_2_15
MX28_PAD_ENET0_RX_CLK__GPIO_4_13
MX28_PAD_SSP1_SCK__GPIO_2_12
MX28_PAD_PWM3__GPIO_3_28
MX28_PAD_AUART2_RX__GPIO_3_8
MX28_PAD_AUART2_TX__GPIO_3_9
>;
fsl,drive-strength = <MXS_DRIVE_4mA>;
fsl,voltage = <MXS_VOLTAGE_HIGH>;
fsl,pull-up = <MXS_PULL_DISABLE>;
};
hog_pins_1v8_nopull: hog@2 {
reg = <2>;
fsl,pinmux-ids = <
MX28_PAD_GPMI_ALE__GPIO_0_26
>;
fsl,drive-strength = <MXS_DRIVE_4mA>;
fsl,voltage = <MXS_VOLTAGE_LOW>;
fsl,pull-up = <MXS_PULL_DISABLE>;
};
lcd_backlight_pins: pwm@0 {
reg = <0>;
fsl,pinmux-ids = <
MX28_PAD_AUART1_RX__PWM_0
MX28_PAD_AUART1_TX__PWM_1
>;
fsl,drive-strength = <MXS_DRIVE_4mA>;
fsl,voltage = <MXS_VOLTAGE_HIGH>;
fsl,pull-up = <MXS_PULL_DISABLE>;
};
slcd_backlight_pin: pwm@1 {
reg = <1>;
fsl,pinmux-ids = <
MX28_PAD_PWM2__PWM_2
>;
fsl,drive-strength = <MXS_DRIVE_4mA>;
fsl,voltage = <MXS_VOLTAGE_HIGH>;
fsl,pull-up = <MXS_PULL_DISABLE>;
};
buzzer_pins: pwm@2 {
reg = <2>;
fsl,pinmux-ids = <
MX28_PAD_PWM4__PWM_4
MX28_PAD_SAIF1_SDATA0__GPIO_3_26
>;
fsl,drive-strength = <MXS_DRIVE_4mA>;
fsl,voltage = <MXS_VOLTAGE_HIGH>;
fsl,pull-up = <MXS_PULL_DISABLE>;
};
lcdif_pins: lcdif@0 {
reg = <0>;
fsl,pinmux-ids = <
MX28_PAD_LCD_D00__LCD_D0
MX28_PAD_LCD_D01__LCD_D1
MX28_PAD_LCD_D02__LCD_D2
MX28_PAD_LCD_D03__LCD_D3
MX28_PAD_LCD_D04__LCD_D4
MX28_PAD_LCD_D05__LCD_D5
MX28_PAD_LCD_D06__LCD_D6
MX28_PAD_LCD_D07__LCD_D7
MX28_PAD_LCD_D08__LCD_D8
MX28_PAD_LCD_D09__LCD_D9
MX28_PAD_LCD_D10__LCD_D10
MX28_PAD_LCD_D11__LCD_D11
MX28_PAD_LCD_D12__LCD_D12
MX28_PAD_LCD_D13__LCD_D13
MX28_PAD_LCD_D14__LCD_D14
MX28_PAD_LCD_D15__LCD_D15
MX28_PAD_LCD_RD_E__LCD_RD_E
MX28_PAD_LCD_WR_RWN__LCD_WR_RWN
MX28_PAD_LCD_RS__LCD_RS
MX28_PAD_LCD_CS__LCD_CS
>;
fsl,drive-strength = <MXS_DRIVE_4mA>;
fsl,voltage = <MXS_VOLTAGE_LOW>;
fsl,pull-up = <MXS_PULL_DISABLE>;
};
lcdif_vsync_pin: lcdif@1 {
reg = <1>;
fsl,pinmux-ids = <
MX28_PAD_LCD_RESET__LCD_VSYNC
>;
fsl,driver-strength = <MXS_DRIVE_4mA>;
fsl,voltage = <MXS_VOLTAGE_LOW>;
fsl,pull-up = <MXS_PULL_DISABLE>;
};
lcdif_reset_pin: lcdif@2 {
reg = <2>;
fsl,pinmux-ids = <
MX28_PAD_LCD_RESET__LCD_RESET
>;
fsl,driver-strength = <MXS_DRIVE_4mA>;
fsl,voltage = <MXS_VOLTAGE_LOW>;
fsl,pull-up = <MXS_PULL_DISABLE>;
};
slcd_pins: spi2@0 {
reg = <0>;
fsl,pinmux-ids = <
MX28_PAD_SSP2_SCK__SSP2_SCK
MX28_PAD_SSP2_MOSI__SSP2_CMD
MX28_PAD_SSP2_MISO__GPIO_2_18
MX28_PAD_SSP2_SS0__SSP2_D3
>;
fsl,drive-strength = <MXS_DRIVE_4mA>;
fsl,voltage = <MXS_VOLTAGE_HIGH>;
fsl,pull-up = <MXS_PULL_DISABLE>;
};
};
brainlcd: lcdif@80030000 {
compatible = "sharp,brainlcd";
pinctrl-names = "default";
pinctrl-0 = <&lcdif_pins &lcdif_vsync_pin>;
status = "disabled";
};
};
apbx@80040000 {
saif0: saif@80042000 {
pinctrl-names = "default";
pinctrl-0 = <&saif0_pins_a>;
status = "okay";
};
power: power@80044000 {
poweroff: poweroff {
status = "okay";
};
};
saif1: saif@80046000 {
pinctrl-names = "default";
pinctrl-0 = <&saif1_pins_a>;
fsl,saif-master = <&saif0>;
status = "okay";
};
lradc@80050000 {
status = "okay";
fsl,lradc-touchscreen-wires = <4>;
fsl,ave-ctrl = <4>;
fsl,ave-delay = <2>;
fsl,settling = <10>;
};
mxs_rtc: rtc@80056000 {
status = "disabled";
};
i2c0: i2c@80058000 {
pinctrl-names = "default";
pinctrl-0 = <&i2c0_pins_a>;
status = "okay";
sgtl5000: codec@a {
compatible = "fsl,sgtl5000";
reg = <0x0a>;
#sound-dai-cells = <0>;
VDDA-supply = <&reg_3p3v>;
VDDIO-supply = <&reg_3p3v>;
clocks = <&saif0>;
};
keyboard_i2c_2g: keyboard_i2c_2g@28 {
status = "disabled";
compatible = "sharp,brain-kbd-i2c";
reg = <0x28>;
interrupt-parent = <&gpio4>;
interrupts = <2 IRQ_TYPE_LEVEL_HIGH>;
};
lcd_touchscreen_i2c: sx8650@48 {
status = "disabled";
compatible = "semtech,sx8650";
reg = <0x48>;
interrupt-parent = <&gpio3>;
interrupts = <1 IRQ_TYPE_EDGE_FALLING>;
};
};
i2c1: i2c@8005a000 {
pinctrl-names = "default";
pinctrl-0 = <&i2c1_pins_a>;
status = "okay";
keyboard_i2c: keyboard_i2c@28 {
status = "disabled";
compatible = "sharp,brain-kbd-i2c";
reg = <0x28>;
interrupt-parent = <&gpio4>;
interrupts = <2 IRQ_TYPE_LEVEL_HIGH>;
};
};
pwm: pwm@80064000 {
pinctrl-names = "default";
pinctrl-0 = <&lcd_backlight_pins>;
status = "okay";
};
duart: serial@80074000 {
pinctrl-names = "default";
pinctrl-0 = <&duart_pins_b>;
status = "okay";
};
usbphy0: usbphy@8007c000 {
status = "okay";
};
usbphy1: usbphy@8007e000 {
status = "okay";
};
};
};
ahb@80080000 {
usb0: usb@80080000 {
pinctrl-names = "default";
pinctrl-0 = <&usb0_id_pins_a>;
vbus-supply = <&reg_usb0_vbus>;
dr_mode = "host";
status = "okay";
};
};
sound {
compatible = "fsl,imx28-evk-sgtl5000",
"fsl,mxs-audio-sgtl5000";
model = "imx28-evk-sgtl5000";
saif-controllers = <&saif0 &saif1>;
audio-codec = <&sgtl5000>;
};
backlight_display: backlight@0 {
compatible = "pwm-backlight";
pwms = <&pwm 0 50000>, <&pwm 1 50000>;
brightness-levels = <0 4 8 16 32 64 128 255>;
default-brightness-level = <7>;
};
slcd_backlight: backlight@1 {
status = "disabled";
compatible = "pwm-backlight";
pwms = <&pwm 2 50000>;
brightness-levels = <0 63 127 255>;
default-brightness-level = <3>;
};
keyboard_gpio: keyboard_gpio {
status = "disabled";
compatible = "sharp,brain-kbd-gpio";
};
buzzer_cold: buzzer_cold {
status = "disabled";
compatible = "regulator-fixed";
regulator-name = "fixed-supply";
regulator-max-microvolt = <3300000>;
regulator-min-microvolt = <3300000>;
gpios = <&gpio3 26 GPIO_ACTIVE_LOW>;
regulator-always-on;
};
buzzer: buzzer {
status = "disabled";
compatible = "pwm-beeper";
pwms = <&pwm 4 50000>;
amp-supply = <&buzzer_cold>;
};
};