// SPDX-License-Identifier: GPL-2.0+ // // Copyright 2012 Freescale Semiconductor, Inc. /dts-v1/; #include "imx28.dtsi" #include / { 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 = <®_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 = ; fsl,voltage = ; fsl,pull-up = ; }; 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 = ; fsl,voltage = ; fsl,pull-up = ; }; hog_pins_1v8_nopull: hog@2 { reg = <2>; fsl,pinmux-ids = < MX28_PAD_GPMI_ALE__GPIO_0_26 >; fsl,drive-strength = ; fsl,voltage = ; fsl,pull-up = ; }; 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 = ; fsl,voltage = ; fsl,pull-up = ; }; slcd_backlight_pin: pwm@1 { reg = <1>; fsl,pinmux-ids = < MX28_PAD_PWM2__PWM_2 >; fsl,drive-strength = ; fsl,voltage = ; fsl,pull-up = ; }; buzzer_pins: pwm@2 { reg = <2>; fsl,pinmux-ids = < MX28_PAD_PWM4__PWM_4 MX28_PAD_SAIF1_SDATA0__GPIO_3_26 >; fsl,drive-strength = ; fsl,voltage = ; fsl,pull-up = ; }; 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 = ; fsl,voltage = ; fsl,pull-up = ; }; lcdif_vsync_pin: lcdif@1 { reg = <1>; fsl,pinmux-ids = < MX28_PAD_LCD_RESET__LCD_VSYNC >; fsl,driver-strength = ; fsl,voltage = ; fsl,pull-up = ; }; lcdif_reset_pin: lcdif@2 { reg = <2>; fsl,pinmux-ids = < MX28_PAD_LCD_RESET__LCD_RESET >; fsl,driver-strength = ; fsl,voltage = ; fsl,pull-up = ; }; 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 = ; fsl,voltage = ; fsl,pull-up = ; }; }; 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 = <®_3p3v>; VDDIO-supply = <®_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 = <®_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>; }; };