Back to home page

OSCL-LXR

 
 

    


0001 // SPDX-License-Identifier: GPL-2.0-or-later
0002 /*
0003  * Copyright 2013 Eukréa Electromatique <eric@eukrea.com>
0004  * Copyright 2013 Eukréa Electromatique <denis@eukrea.com>
0005  */
0006 
0007 #include <dt-bindings/input/input.h>
0008 #include <dt-bindings/gpio/gpio.h>
0009 #include "imx28.dtsi"
0010 
0011 / {
0012         model = "Eukrea Electromatique MBMX28LC";
0013         compatible = "eukrea,mbmx28lc", "fsl,imx28";
0014 
0015         backlight {
0016                 compatible = "pwm-backlight";
0017                 pwms = <&pwm 4 1000000>;
0018                 brightness-levels = <0 25 50 75 100 125 150 175 200 225 255>;
0019                 default-brightness-level = <10>;
0020         };
0021 
0022         button-sw3 {
0023                 compatible = "gpio-keys";
0024                 pinctrl-names = "default";
0025                 pinctrl-0 = <&gpio_button_sw3_pins_mbmx28lc>;
0026 
0027                 sw3 {
0028                         label = "SW3";
0029                         gpios = <&gpio1 21 GPIO_ACTIVE_LOW>;
0030                         linux,code = <BTN_MISC>;
0031                         wakeup-source;
0032                 };
0033         };
0034 
0035         button-sw4 {
0036                 compatible = "gpio-keys";
0037                 pinctrl-names = "default";
0038                 pinctrl-0 = <&gpio_button_sw4_pins_mbmx28lc>;
0039 
0040                 sw4 {
0041                         label = "SW4";
0042                         gpios = <&gpio1 20 GPIO_ACTIVE_LOW>;
0043                         linux,code = <BTN_MISC>;
0044                         wakeup-source;
0045                 };
0046         };
0047 
0048         led-d6 {
0049                 compatible = "gpio-leds";
0050                 pinctrl-names = "default";
0051                 pinctrl-0 = <&led_d6_pins_mbmx28lc>;
0052 
0053                 led1 {
0054                         label = "d6";
0055                         gpios = <&gpio1 23 GPIO_ACTIVE_LOW>;
0056                         linux,default-trigger = "heartbeat";
0057                 };
0058         };
0059 
0060         led-d7 {
0061                 compatible = "gpio-leds";
0062                 pinctrl-names = "default";
0063                 pinctrl-0 = <&led_d7_pins_mbmx28lc>;
0064 
0065                 led1 {
0066                         label = "d7";
0067                         gpios = <&gpio1 22 GPIO_ACTIVE_LOW>;
0068                         linux,default-trigger = "default-on";
0069                 };
0070         };
0071 
0072         regulators {
0073                 compatible = "simple-bus";
0074                 #address-cells = <1>;
0075                 #size-cells = <0>;
0076 
0077                 reg_3p3v: regulator@0 {
0078                         compatible = "regulator-fixed";
0079                         reg = <0>;
0080                         regulator-name = "3P3V";
0081                         regulator-min-microvolt = <3300000>;
0082                         regulator-max-microvolt = <3300000>;
0083                         regulator-always-on;
0084                 };
0085 
0086                 reg_lcd_3v3: regulator@1 {
0087                         compatible = "regulator-fixed";
0088                         reg = <1>;
0089                         pinctrl-names = "default";
0090                         pinctrl-0 = <&reg_lcd_3v3_pins_mbmx28lc>;
0091                         regulator-name = "lcd-3v3";
0092                         regulator-min-microvolt = <3300000>;
0093                         regulator-max-microvolt = <3300000>;
0094                         gpio = <&gpio3 30 GPIO_ACTIVE_HIGH>;
0095                         enable-active-high;
0096                 };
0097 
0098                 reg_usb0_vbus: regulator@2 {
0099                         compatible = "regulator-fixed";
0100                         reg = <2>;
0101                         pinctrl-names = "default";
0102                         pinctrl-0 = <&reg_usb0_vbus_pins_mbmx28lc>;
0103                         regulator-name = "usb0_vbus";
0104                         regulator-min-microvolt = <5000000>;
0105                         regulator-max-microvolt = <5000000>;
0106                         gpio = <&gpio1 18 GPIO_ACTIVE_HIGH>;
0107                         enable-active-high;
0108                 };
0109 
0110                 reg_usb1_vbus: regulator@3 {
0111                         compatible = "regulator-fixed";
0112                         reg = <3>;
0113                         pinctrl-names = "default";
0114                         pinctrl-0 = <&reg_usb1_vbus_pins_mbmx28lc>;
0115                         regulator-name = "usb1_vbus";
0116                         regulator-min-microvolt = <5000000>;
0117                         regulator-max-microvolt = <5000000>;
0118                         gpio = <&gpio1 19 GPIO_ACTIVE_HIGH>;
0119                         enable-active-high;
0120                 };
0121         };
0122 
0123         sound {
0124                 compatible = "fsl,imx28-mbmx28lc-sgtl5000",
0125                              "fsl,mxs-audio-sgtl5000";
0126                 model = "imx28-mbmx28lc-sgtl5000";
0127                 saif-controllers = <&saif0 &saif1>;
0128                 audio-codec = <&sgtl5000>;
0129         };
0130 };
0131 
0132 &duart {
0133         pinctrl-names = "default";
0134         pinctrl-0 = <&duart_4pins_a>;
0135         status = "okay";
0136 };
0137 
0138 &i2c0 {
0139         pinctrl-names = "default";
0140         pinctrl-0 = <&i2c0_pins_a>;
0141         status = "okay";
0142 
0143         sgtl5000: codec@a {
0144                 compatible = "fsl,sgtl5000";
0145                 reg = <0x0a>;
0146                 #sound-dai-cells = <0>;
0147                 VDDA-supply = <&reg_3p3v>;
0148                 VDDIO-supply = <&reg_3p3v>;
0149                 clocks = <&saif0>;
0150         };
0151 };
0152 
0153 &lcdif {
0154         pinctrl-names = "default";
0155         pinctrl-0 = <&lcdif_18bit_pins_a &lcdif_pins_mbmx28lc>;
0156         lcd-supply = <&reg_lcd_3v3>;
0157         display = <&display0>;
0158         status = "okay";
0159 
0160         display0: display0 {
0161                 model = "43WVF1G-0";
0162                 bits-per-pixel = <16>;
0163                 bus-width = <18>;
0164 
0165                 display-timings {
0166                         native-mode = <&timing0>;
0167                         timing0: timing0 {
0168                                 clock-frequency = <9072000>;
0169                                 hactive = <480>;
0170                                 vactive = <272>;
0171                                 hback-porch = <10>;
0172                                 hfront-porch = <5>;
0173                                 vback-porch = <8>;
0174                                 vfront-porch = <8>;
0175                                 hsync-len = <40>;
0176                                 vsync-len = <10>;
0177                                 hsync-active = <0>;
0178                                 vsync-active = <0>;
0179                                 de-active = <1>;
0180                                 pixelclk-active = <1>;
0181                         };
0182                 };
0183         };
0184 };
0185 
0186 &lradc {
0187         fsl,lradc-touchscreen-wires = <4>;
0188         status = "okay";
0189 };
0190 
0191 &pinctrl {
0192         gpio_button_sw3_pins_mbmx28lc: gpio-button-sw3-mbmx28lc@0 {
0193                 reg = <0>;
0194                 fsl,pinmux-ids = <
0195                         MX28_PAD_LCD_D21__GPIO_1_21
0196                 >;
0197                 fsl,drive-strength = <MXS_DRIVE_4mA>;
0198                 fsl,voltage = <MXS_VOLTAGE_HIGH>;
0199                 fsl,pull-up = <MXS_PULL_DISABLE>;
0200         };
0201 
0202         gpio_button_sw4_pins_mbmx28lc: gpio-button-sw4-mbmx28lc@0 {
0203                 reg = <0>;
0204                 fsl,pinmux-ids = <
0205                         MX28_PAD_LCD_D20__GPIO_1_20
0206                 >;
0207                 fsl,drive-strength = <MXS_DRIVE_4mA>;
0208                 fsl,voltage = <MXS_VOLTAGE_HIGH>;
0209                 fsl,pull-up = <MXS_PULL_DISABLE>;
0210         };
0211 
0212         lcdif_pins_mbmx28lc: lcdif-mbmx28lc@0 {
0213                 reg = <0>;
0214                 fsl,pinmux-ids = <
0215                         MX28_PAD_LCD_VSYNC__LCD_VSYNC
0216                         MX28_PAD_LCD_HSYNC__LCD_HSYNC
0217                         MX28_PAD_LCD_DOTCLK__LCD_DOTCLK
0218                         MX28_PAD_LCD_ENABLE__LCD_ENABLE
0219                 >;
0220                 fsl,drive-strength = <MXS_DRIVE_4mA>;
0221                 fsl,voltage = <MXS_VOLTAGE_HIGH>;
0222                 fsl,pull-up = <MXS_PULL_DISABLE>;
0223         };
0224 
0225         led_d6_pins_mbmx28lc: led-d6-mbmx28lc@0 {
0226                 reg = <0>;
0227                 fsl,pinmux-ids = <
0228                         MX28_PAD_LCD_D23__GPIO_1_23
0229                 >;
0230                 fsl,drive-strength = <MXS_DRIVE_4mA>;
0231                 fsl,voltage = <MXS_VOLTAGE_HIGH>;
0232                 fsl,pull-up = <MXS_PULL_DISABLE>;
0233         };
0234 
0235         led_d7_pins_mbmx28lc: led-d7-mbmx28lc@0 {
0236                 reg = <0>;
0237                 fsl,pinmux-ids = <
0238                         MX28_PAD_LCD_D22__GPIO_1_22
0239                 >;
0240                 fsl,drive-strength = <MXS_DRIVE_4mA>;
0241                 fsl,voltage = <MXS_VOLTAGE_HIGH>;
0242                 fsl,pull-up = <MXS_PULL_DISABLE>;
0243         };
0244 
0245         reg_lcd_3v3_pins_mbmx28lc: lcd-3v3-mbmx28lc@0 {
0246                 reg = <0>;
0247                 fsl,pinmux-ids = <
0248                         MX28_PAD_LCD_RESET__GPIO_3_30
0249                 >;
0250                 fsl,drive-strength = <MXS_DRIVE_4mA>;
0251                 fsl,voltage = <MXS_VOLTAGE_HIGH>;
0252                 fsl,pull-up = <MXS_PULL_DISABLE>;
0253         };
0254 
0255         reg_usb0_vbus_pins_mbmx28lc: reg-usb0-vbus-mbmx28lc@0 {
0256                 reg = <0>;
0257                 fsl,pinmux-ids = <
0258                         MX28_PAD_LCD_D18__GPIO_1_18
0259                 >;
0260                 fsl,drive-strength = <MXS_DRIVE_4mA>;
0261                 fsl,voltage = <MXS_VOLTAGE_HIGH>;
0262                 fsl,pull-up = <MXS_PULL_DISABLE>;
0263         };
0264 
0265         reg_usb1_vbus_pins_mbmx28lc: reg-usb1-vbus-mbmx28lc@0 {
0266                 reg = <0>;
0267                 fsl,pinmux-ids = <
0268                         MX28_PAD_LCD_D19__GPIO_1_19
0269                 >;
0270                 fsl,drive-strength = <MXS_DRIVE_4mA>;
0271                 fsl,voltage = <MXS_VOLTAGE_HIGH>;
0272                 fsl,pull-up = <MXS_PULL_DISABLE>;
0273         };
0274 };
0275 
0276 &pwm {
0277         pinctrl-names = "default";
0278         pinctrl-0 = <&pwm4_pins_a>;
0279         status = "okay";
0280 };
0281 
0282 &saif0 {
0283         pinctrl-names = "default";
0284         pinctrl-0 = <&saif0_pins_a>;
0285         status = "okay";
0286 };
0287 
0288 &saif1 {
0289         pinctrl-names = "default";
0290         pinctrl-0 = <&saif1_pins_a>;
0291         fsl,saif-master = <&saif0>;
0292         status = "okay";
0293 };
0294 
0295 &ssp0 {
0296         compatible = "fsl,imx28-mmc";
0297         pinctrl-names = "default";
0298         pinctrl-0 = <&mmc0_4bit_pins_a &mmc0_cd_cfg &mmc0_sck_cfg>;
0299         bus-width = <4>;
0300         cd-inverted;
0301         status = "okay";
0302 };
0303 
0304 &usb0 {
0305         disable-over-current;
0306         vbus-supply = <&reg_usb0_vbus>;
0307         status = "okay";
0308         pinctrl-names = "default";
0309         pinctrl-0 = <&usb0_id_pins_b>;
0310 };
0311 
0312 &usb1 {
0313         vbus-supply = <&reg_usb1_vbus>;
0314         status = "okay";
0315 };
0316 
0317 &usbphy0 {
0318         status = "okay";
0319 };
0320 
0321 &usbphy1 {
0322         status = "okay";
0323 };