Back to home page

OSCL-LXR

 
 

    


0001 // SPDX-License-Identifier: GPL-2.0-or-later OR MIT
0002 /*
0003  * Copyright (c) 2014 Protonic Holland
0004  * Copyright (c) 2020 Oleksij Rempel <kernel@pengutronix.de>, Pengutronix
0005  */
0006 
0007 /dts-v1/;
0008 #include <dt-bindings/gpio/gpio.h>
0009 #include <dt-bindings/leds/common.h>
0010 #include "imx6dl.dtsi"
0011 
0012 / {
0013         model = "Plymovent M2M board";
0014         compatible = "ply,plym2m", "fsl,imx6dl";
0015 
0016         chosen {
0017                 stdout-path = &uart4;
0018         };
0019 
0020         backlight: backlight {
0021                 compatible = "pwm-backlight";
0022                 pwms = <&pwm1 0 5000000 0>;
0023                 brightness-levels = <0 1000>;
0024                 num-interpolated-steps = <20>;
0025                 default-brightness-level = <19>;
0026                 power-supply = <&reg_12v0>;
0027         };
0028 
0029         display {
0030                 compatible = "fsl,imx-parallel-display";
0031                 pinctrl-0 = <&pinctrl_ipu1_disp>;
0032                 pinctrl-names = "default";
0033                 #address-cells = <1>;
0034                 #size-cells = <0>;
0035 
0036                 port@0 {
0037                         reg = <0>;
0038 
0039                         display_in: endpoint {
0040                                 remote-endpoint = <&ipu1_di0_disp0>;
0041                         };
0042                 };
0043 
0044                 port@1 {
0045                         reg = <1>;
0046 
0047                         display_out: endpoint {
0048                                 remote-endpoint = <&panel_in>;
0049                         };
0050                 };
0051         };
0052 
0053         iio-hwmon {
0054                 compatible = "iio-hwmon";
0055                 io-channels = <&vdiv_vaccu>;
0056         };
0057 
0058         leds {
0059                 compatible = "gpio-leds";
0060                 pinctrl-names = "default";
0061                 pinctrl-0 = <&pinctrl_leds>;
0062 
0063                 led-0 {
0064                         label = "debug0";
0065                         function = LED_FUNCTION_STATUS;
0066                         gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>;
0067                         linux,default-trigger = "heartbeat";
0068                 };
0069         };
0070 
0071         panel {
0072                 compatible = "edt,etm0700g0bdh6";
0073                 backlight = <&backlight>;
0074                 power-supply = <&reg_3v3>;
0075 
0076                 port {
0077                         panel_in: endpoint {
0078                                 remote-endpoint = <&display_out>;
0079                         };
0080                 };
0081         };
0082 
0083         clk50m_phy: phy-clock {
0084                 compatible = "fixed-clock";
0085                 #clock-cells = <0>;
0086                 clock-frequency = <50000000>;
0087         };
0088 
0089         reg_3v3: regulator-3v3 {
0090                 compatible = "regulator-fixed";
0091                 regulator-name = "3v3";
0092                 regulator-min-microvolt = <3300000>;
0093                 regulator-max-microvolt = <3300000>;
0094         };
0095 
0096         reg_5v0: regulator-5v0 {
0097                 compatible = "regulator-fixed";
0098                 regulator-name = "5v0";
0099                 regulator-min-microvolt = <5000000>;
0100                 regulator-max-microvolt = <5000000>;
0101         };
0102 
0103         reg_12v0: regulator-12v0 {
0104                 compatible = "regulator-fixed";
0105                 regulator-name = "12v0";
0106                 regulator-min-microvolt = <12000000>;
0107                 regulator-max-microvolt = <12000000>;
0108         };
0109 
0110         thermal-zones {
0111                 chassis-thermal {
0112                         polling-delay = <20000>;
0113                         polling-delay-passive = <0>;
0114                         thermal-sensors = <&tsens0>;
0115                 };
0116 
0117                 touch-thermal0 {
0118                         polling-delay = <20000>;
0119                         polling-delay-passive = <0>;
0120                         thermal-sensors = <&touch_temp0>;
0121                 };
0122 
0123                 touch-thermal1 {
0124                         polling-delay = <20000>;
0125                         polling-delay-passive = <0>;
0126                         thermal-sensors = <&touch_temp1>;
0127                 };
0128         };
0129 
0130         touchscreen {
0131                 compatible = "resistive-adc-touch";
0132                 io-channels = <&adc_ts 1>, <&adc_ts 3>, <&adc_ts 4>,
0133                               <&adc_ts 5>;
0134                 io-channel-names = "y", "z1", "z2", "x";
0135                 touchscreen-min-pressure = <64687>;
0136                 touchscreen-inverted-x;
0137                 touchscreen-inverted-y;
0138                 touchscreen-x-plate-ohms = <300>;
0139                 touchscreen-y-plate-ohms = <800>;
0140         };
0141 
0142         touch_temp0: touch-temperature-sensor0 {
0143                 compatible = "generic-adc-thermal";
0144                 #thermal-sensor-cells = <0>;
0145                 io-channels = <&adc_ts 0>;
0146                 io-channel-names = "sensor-channel";
0147                 temperature-lookup-table = <    (-40000) 736
0148                                                 85000 474>;
0149         };
0150 
0151         touch_temp1: touch-temperature-sensor1 {
0152                 compatible = "generic-adc-thermal";
0153                 #thermal-sensor-cells = <0>;
0154                 io-channels = <&adc_ts 7>;
0155                 io-channel-names = "sensor-channel";
0156                 temperature-lookup-table = <    (-40000) 826
0157                                                 85000 609>;
0158         };
0159 
0160         vdiv_vaccu: voltage-divider-vaccu {
0161                 compatible = "voltage-divider";
0162                 io-channels = <&adc_ts 2>;
0163                 output-ohms = <2500>;
0164                 full-ohms = <64000>;
0165                 #io-channel-cells = <0>;
0166         };
0167 };
0168 
0169 &can1 {
0170         pinctrl-names = "default";
0171         pinctrl-0 = <&pinctrl_can1>;
0172         xceiver-supply = <&reg_5v0>;
0173         status = "okay";
0174 };
0175 
0176 &ecspi1 {
0177         cs-gpios = <&gpio3 19 GPIO_ACTIVE_LOW>;
0178         pinctrl-names = "default";
0179         pinctrl-0 = <&pinctrl_ecspi1>;
0180         status = "okay";
0181 
0182         flash@0 {
0183                 compatible = "jedec,spi-nor";
0184                 reg = <0>;
0185                 spi-max-frequency = <20000000>;
0186         };
0187 };
0188 
0189 &ecspi2 {
0190         cs-gpios = <&gpio2 26 GPIO_ACTIVE_LOW>;
0191         pinctrl-names = "default";
0192         pinctrl-0 = <&pinctrl_ecspi2>;
0193         status = "okay";
0194 
0195         adc_ts: adc@0 {
0196                 compatible = "ti,tsc2046e-adc";
0197                 reg = <0>;
0198                 pinctrl-0 = <&pinctrl_tsc2046>;
0199                 pinctrl-names = "default";
0200                 spi-max-frequency = <1000000>;
0201                 interrupts-extended = <&gpio3 20 IRQ_TYPE_LEVEL_LOW>;
0202                 #io-channel-cells = <1>;
0203 
0204                 #address-cells = <1>;
0205                 #size-cells = <0>;
0206 
0207                 channel@0 {
0208                         reg = <0>;
0209                         settling-time-us = <300>;
0210                         oversampling-ratio = <5>;
0211                 };
0212 
0213                 channel@1 {
0214                         reg = <1>;
0215                         settling-time-us = <700>;
0216                         oversampling-ratio = <5>;
0217                 };
0218 
0219                 channel@2 {
0220                         reg = <2>;
0221                         settling-time-us = <300>;
0222                         oversampling-ratio = <5>;
0223                 };
0224 
0225                 channel@3 {
0226                         reg = <3>;
0227                         settling-time-us = <700>;
0228                         oversampling-ratio = <5>;
0229                 };
0230 
0231                 channel@4 {
0232                         reg = <4>;
0233                         settling-time-us = <700>;
0234                         oversampling-ratio = <5>;
0235                 };
0236 
0237                 channel@5 {
0238                         reg = <5>;
0239                         settling-time-us = <700>;
0240                         oversampling-ratio = <5>;
0241                 };
0242 
0243                 /* channel 6 is not connected */
0244 
0245                 channel@7 {
0246                         reg = <7>;
0247                         settling-time-us = <300>;
0248                         oversampling-ratio = <5>;
0249                 };
0250         };
0251 };
0252 
0253 &fec {
0254         pinctrl-names = "default";
0255         pinctrl-0 = <&pinctrl_enet>;
0256         phy-mode = "rmii";
0257         clocks = <&clks IMX6QDL_CLK_ENET>,
0258                  <&clks IMX6QDL_CLK_ENET>,
0259                  <&clk50m_phy>;
0260         clock-names = "ipg", "ahb", "ptp";
0261         phy-handle = <&rgmii_phy>;
0262         status = "okay";
0263 
0264         mdio {
0265                 #address-cells = <1>;
0266                 #size-cells = <0>;
0267 
0268                 /* Microchip KSZ8081RNA PHY */
0269                 rgmii_phy: ethernet-phy@0 {
0270                         reg = <0>;
0271                         interrupts-extended = <&gpio5 23 IRQ_TYPE_LEVEL_LOW>;
0272                         reset-gpios = <&gpio5 22 GPIO_ACTIVE_LOW>;
0273                         reset-assert-us = <10000>;
0274                         reset-deassert-us = <300>;
0275                 };
0276         };
0277 };
0278 
0279 &gpio1 {
0280         gpio-line-names =
0281                 "CAN1_TERM", "SD1_CD", "", "", "", "", "", "",
0282                 "DEBUG_0", "", "", "", "", "", "", "",
0283                 "", "", "", "", "", "", "", "",
0284                 "", "", "", "", "", "", "", "";
0285 };
0286 
0287 &gpio2 {
0288         gpio-line-names =
0289                 "", "", "", "", "", "", "", "",
0290                 "", "", "", "", "", "", "", "",
0291                 "", "", "", "", "", "", "", "",
0292                 "", "", "ECSPI2_SS0", "", "", "", "TSC_BUSY", "";
0293 };
0294 
0295 &gpio3 {
0296         gpio-line-names =
0297                 "", "", "", "", "", "", "", "",
0298                 "", "", "", "", "", "", "", "",
0299                 "", "", "", "ECSPI1_SS1", "TSC_PENIRQ", "", "", "",
0300                 "", "", "", "", "", "", "", "";
0301 };
0302 
0303 &gpio4 {
0304         gpio-line-names =
0305                 "", "", "", "", "", "", "", "",
0306                 "", "", "", "", "CAN1_SR", "", "", "",
0307                 "", "", "", "", "", "", "", "",
0308                 "", "", "", "", "", "", "", "";
0309 };
0310 
0311 &gpio5 {
0312         gpio-line-names =
0313                 "", "", "", "", "", "", "", "",
0314                 "", "", "", "", "", "", "", "",
0315                 "", "", "", "", "", "", "ETH_RESET", "ETH_INTRP",
0316                 "", "", "", "", "", "", "", "";
0317 };
0318 
0319 &i2c1 {
0320         clock-frequency = <100000>;
0321         pinctrl-names = "default";
0322         pinctrl-0 = <&pinctrl_i2c1>;
0323         status = "okay";
0324 
0325         /* additional i2c devices are added automatically by the boot loader */
0326 };
0327 
0328 &i2c3 {
0329         clock-frequency = <100000>;
0330         pinctrl-names = "default";
0331         pinctrl-0 = <&pinctrl_i2c3>;
0332         status = "okay";
0333 
0334         tsens0: temperature-sensor@70 {
0335                 compatible = "ti,tmp103";
0336                 reg = <0x70>;
0337                 #thermal-sensor-cells = <0>;
0338         };
0339 };
0340 
0341 &ipu1_di0_disp0 {
0342         remote-endpoint = <&display_in>;
0343 };
0344 
0345 &pwm1 {
0346         pinctrl-names = "default";
0347         pinctrl-0 = <&pinctrl_pwm1>;
0348         status = "okay";
0349 };
0350 
0351 &uart4 {
0352         pinctrl-names = "default";
0353         pinctrl-0 = <&pinctrl_uart4>;
0354         status = "okay";
0355 };
0356 
0357 &usbphynop1 {
0358         status = "disabled";
0359 };
0360 
0361 &usbphynop2 {
0362         status = "disabled";
0363 };
0364 
0365 &usbotg {
0366         phy_type = "utmi";
0367         dr_mode = "host";
0368         disable-over-current;
0369         status = "okay";
0370 };
0371 
0372 &usdhc1 {
0373         pinctrl-names = "default";
0374         pinctrl-0 = <&pinctrl_usdhc1>;
0375         cd-gpios = <&gpio1 1 GPIO_ACTIVE_LOW>;
0376         no-1-8-v;
0377         disable-wp;
0378         cap-sd-highspeed;
0379         no-mmc;
0380         no-sdio;
0381         status = "okay";
0382 };
0383 
0384 &usdhc3 {
0385         pinctrl-names = "default";
0386         pinctrl-0 = <&pinctrl_usdhc3>;
0387         bus-width = <8>;
0388         no-1-8-v;
0389         non-removable;
0390         no-sd;
0391         no-sdio;
0392         status = "okay";
0393 };
0394 
0395 &iomuxc {
0396         pinctrl_can1: can1grp {
0397                 fsl,pins = <
0398                         MX6QDL_PAD_KEY_ROW2__FLEXCAN1_RX                0x1b000
0399                         MX6QDL_PAD_KEY_COL2__FLEXCAN1_TX                0x3008
0400                         /* CAN1_SR */
0401                         MX6QDL_PAD_KEY_COL3__GPIO4_IO12                 0x13008
0402                         /* CAN1_TERM */
0403                         MX6QDL_PAD_GPIO_0__GPIO1_IO00                   0x1b088
0404                 >;
0405         };
0406 
0407         pinctrl_ecspi1: ecspi1grp {
0408                 fsl,pins = <
0409                         MX6QDL_PAD_EIM_D17__ECSPI1_MISO                 0x1b000
0410                         MX6QDL_PAD_EIM_D18__ECSPI1_MOSI                 0x3008
0411                         MX6QDL_PAD_EIM_D16__ECSPI1_SCLK                 0x3008
0412                         /* CS */
0413                         MX6QDL_PAD_EIM_D19__GPIO3_IO19                  0x3008
0414                 >;
0415         };
0416 
0417         pinctrl_ecspi2: ecspi2grp {
0418                 fsl,pins = <
0419                         MX6QDL_PAD_EIM_OE__ECSPI2_MISO                  0x10000
0420                         MX6QDL_PAD_EIM_CS0__ECSPI2_SCLK                 0x3008
0421                         MX6QDL_PAD_EIM_CS1__ECSPI2_MOSI                 0x3008
0422                         /* CS */
0423                         MX6QDL_PAD_EIM_RW__GPIO2_IO26                   0x3008
0424                 >;
0425         };
0426 
0427         pinctrl_enet: enetgrp {
0428                 fsl,pins = <
0429                         /* MX6QDL_ENET_PINGRP4 */
0430                         MX6QDL_PAD_ENET_MDC__ENET_MDC                   0x1b0b0
0431                         MX6QDL_PAD_ENET_MDIO__ENET_MDIO                 0x1b0b0
0432                         MX6QDL_PAD_ENET_RXD0__ENET_RX_DATA0             0x1b0b0
0433                         MX6QDL_PAD_ENET_RXD1__ENET_RX_DATA1             0x1b0b0
0434                         MX6QDL_PAD_ENET_RX_ER__ENET_RX_ER               0x1b0b0
0435                         MX6QDL_PAD_ENET_TX_EN__ENET_TX_EN               0x1b0b0
0436                         MX6QDL_PAD_ENET_TXD0__ENET_TX_DATA0             0x1b0b0
0437                         MX6QDL_PAD_ENET_TXD1__ENET_TX_DATA1             0x1b0b0
0438                         MX6QDL_PAD_ENET_CRS_DV__ENET_RX_EN              0x1b0b0
0439 
0440                         MX6QDL_PAD_GPIO_16__ENET_REF_CLK                0x1b0b0
0441                         /* Phy reset */
0442                         MX6QDL_PAD_CSI0_DAT4__GPIO5_IO22                0x1b0b0
0443                         /* nINTRP */
0444                         MX6QDL_PAD_CSI0_DAT5__GPIO5_IO23                0x1b0b0
0445                 >;
0446         };
0447 
0448         pinctrl_i2c1: i2c1grp {
0449                 fsl,pins = <
0450                         MX6QDL_PAD_CSI0_DAT8__I2C1_SDA                  0x4001f8b1
0451                         MX6QDL_PAD_CSI0_DAT9__I2C1_SCL                  0x4001f8b1
0452                 >;
0453         };
0454 
0455         pinctrl_i2c3: i2c3grp {
0456                 fsl,pins = <
0457                         MX6QDL_PAD_GPIO_5__I2C3_SCL                     0x4001b8b1
0458                         MX6QDL_PAD_GPIO_6__I2C3_SDA                     0x4001b8b1
0459                 >;
0460         };
0461 
0462         pinctrl_ipu1_disp: ipudisp1grp {
0463                 fsl,pins = <
0464                         /* DSE 0x30 => 25 Ohm, 0x20 => 37 Ohm, 0x10 => 75 Ohm */
0465                         MX6QDL_PAD_DI0_DISP_CLK__IPU1_DI0_DISP_CLK      0x30
0466                         MX6QDL_PAD_DI0_PIN15__IPU1_DI0_PIN15            0x30
0467                         MX6QDL_PAD_DI0_PIN2__IPU1_DI0_PIN02             0x30
0468                         MX6QDL_PAD_DI0_PIN3__IPU1_DI0_PIN03             0x30
0469                         MX6QDL_PAD_DISP0_DAT0__IPU1_DISP0_DATA00        0x30
0470                         MX6QDL_PAD_DISP0_DAT1__IPU1_DISP0_DATA01        0x30
0471                         MX6QDL_PAD_DISP0_DAT2__IPU1_DISP0_DATA02        0x30
0472                         MX6QDL_PAD_DISP0_DAT3__IPU1_DISP0_DATA03        0x30
0473                         MX6QDL_PAD_DISP0_DAT4__IPU1_DISP0_DATA04        0x30
0474                         MX6QDL_PAD_DISP0_DAT5__IPU1_DISP0_DATA05        0x30
0475                         MX6QDL_PAD_DISP0_DAT6__IPU1_DISP0_DATA06        0x30
0476                         MX6QDL_PAD_DISP0_DAT7__IPU1_DISP0_DATA07        0x30
0477                         MX6QDL_PAD_DISP0_DAT8__IPU1_DISP0_DATA08        0x30
0478                         MX6QDL_PAD_DISP0_DAT9__IPU1_DISP0_DATA09        0x30
0479                         MX6QDL_PAD_DISP0_DAT10__IPU1_DISP0_DATA10       0x30
0480                         MX6QDL_PAD_DISP0_DAT11__IPU1_DISP0_DATA11       0x30
0481                         MX6QDL_PAD_DISP0_DAT12__IPU1_DISP0_DATA12       0x30
0482                         MX6QDL_PAD_DISP0_DAT13__IPU1_DISP0_DATA13       0x30
0483                         MX6QDL_PAD_DISP0_DAT14__IPU1_DISP0_DATA14       0x30
0484                         MX6QDL_PAD_DISP0_DAT15__IPU1_DISP0_DATA15       0x30
0485                         MX6QDL_PAD_DISP0_DAT16__IPU1_DISP0_DATA16       0x30
0486                         MX6QDL_PAD_DISP0_DAT17__IPU1_DISP0_DATA17       0x30
0487                 >;
0488         };
0489 
0490         pinctrl_leds: ledsgrp {
0491                 fsl,pins = <
0492                         MX6QDL_PAD_GPIO_8__GPIO1_IO08                   0x1b0b0
0493                 >;
0494         };
0495 
0496         pinctrl_pwm1: pwm1grp {
0497                 fsl,pins = <
0498                         MX6QDL_PAD_GPIO_9__PWM1_OUT                     0x8
0499                 >;
0500         };
0501 
0502         pinctrl_tsc2046: tsc2046grp {
0503                 fsl,pins = <
0504                         /* TSC_PENIRQ */
0505                         MX6QDL_PAD_EIM_D20__GPIO3_IO20                  0x1b0b1
0506                         /* TSC_BUSY */
0507                         MX6QDL_PAD_EIM_EB2__GPIO2_IO30                  0x1b0b0
0508                 >;
0509         };
0510 
0511         pinctrl_uart4: uart4grp {
0512                 fsl,pins = <
0513                         MX6QDL_PAD_KEY_COL0__UART4_TX_DATA              0x1b0b1
0514                         MX6QDL_PAD_KEY_ROW0__UART4_RX_DATA              0x1b0b1
0515                 >;
0516         };
0517 
0518         pinctrl_usdhc1: usdhc1grp {
0519                 fsl,pins = <
0520                         MX6QDL_PAD_SD1_CMD__SD1_CMD                     0x170f9
0521                         MX6QDL_PAD_SD1_CLK__SD1_CLK                     0x100f9
0522                         MX6QDL_PAD_SD1_DAT0__SD1_DATA0                  0x170f9
0523                         MX6QDL_PAD_SD1_DAT1__SD1_DATA1                  0x170f9
0524                         MX6QDL_PAD_SD1_DAT2__SD1_DATA2                  0x170f9
0525                         MX6QDL_PAD_SD1_DAT3__SD1_DATA3                  0x170f9
0526                         MX6QDL_PAD_GPIO_1__GPIO1_IO01                   0x1b0b0
0527                 >;
0528         };
0529 
0530         pinctrl_usdhc3: usdhc3grp {
0531                 fsl,pins = <
0532                         MX6QDL_PAD_SD3_CMD__SD3_CMD                     0x17099
0533                         MX6QDL_PAD_SD3_CLK__SD3_CLK                     0x10099
0534                         MX6QDL_PAD_SD3_DAT0__SD3_DATA0                  0x17099
0535                         MX6QDL_PAD_SD3_DAT1__SD3_DATA1                  0x17099
0536                         MX6QDL_PAD_SD3_DAT2__SD3_DATA2                  0x17099
0537                         MX6QDL_PAD_SD3_DAT3__SD3_DATA3                  0x17099
0538                         MX6QDL_PAD_SD3_DAT4__SD3_DATA4                  0x17099
0539                         MX6QDL_PAD_SD3_DAT5__SD3_DATA5                  0x17099
0540                         MX6QDL_PAD_SD3_DAT6__SD3_DATA6                  0x17099
0541                         MX6QDL_PAD_SD3_DAT7__SD3_DATA7                  0x17099
0542                         MX6QDL_PAD_SD3_RST__SD3_RESET                   0x1b0b1
0543                 >;
0544         };
0545 };