// SPDX-License-Identifier: GPL-2.0+ OR MIT /* * Copyright 2018-2020 Toradex */ #include / { chosen { bootargs = "console=ttymxc0,115200"; }; gpio-keys { compatible = "gpio-keys"; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_gpiokeys>; power { label = "Wake-Up"; gpios = <&gpio1 1 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>; linux,code = ; debounce-interval = <10>; gpio-key,wakeup; }; }; reg_3v3_vmmc: regulator-3v3-vmmc { compatible = "regulator-fixed"; regulator-name = "3v3_vmmc"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; gpio = <&gpio5 16 GPIO_ACTIVE_HIGH>; startup-delay-us = <100>; enable-active-high; }; extcon_usbc_det: usbc_det { compatible = "linux,extcon-usb-gpio"; debounce = <25>; id-gpio = <&gpio7 14 GPIO_ACTIVE_HIGH>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_usbc_det>; }; reg_usbh_vbus: regulator-usbh-vbus { compatible = "regulator-fixed"; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_usbh_reg>; regulator-name = "VCC_USB[1-4]"; regulator-min-microvolt = <5000000>; regulator-max-microvolt = <5000000>; gpio = <&gpio4 7 GPIO_ACTIVE_LOW>; vin-supply = <®_5v0>; }; reg_5v0: regulator-5v0 { compatible = "regulator-fixed"; regulator-name = "5V"; regulator-min-microvolt = <5000000>; regulator-max-microvolt = <5000000>; }; }; &adc1 { status = "okay"; }; &adc2 { status = "okay"; }; &epxp { status = "okay"; }; &fec1 { status = "okay"; }; &i2c4 { status = "okay"; /* M41T0M6 real time clock on carrier board */ rtc: m41t0m6@68 { compatible = "st,m41t0"; reg = <0x68>; }; }; &pwm1 { status = "okay"; }; &pwm2 { status = "okay"; }; &pwm3 { status = "okay"; }; &pwm4 { status = "okay"; }; &uart1 { status = "okay"; }; &uart2 { status = "okay"; }; &uart3 { status = "okay"; }; &usbotg1 { extcon = <&extcon_usbc_det>, <&extcon_usbc_det>; vbus-supply = <®_usbh_vbus>; status = "okay"; }; &gpio2 { /* * uart25 turns the UART transceiver for UART2 and 5 on. If one wants to * turn the transceiver off, that property has to be deleted and the * gpio handled in userspace. * The same applies to uart1_tx_on and lvds_tx_on, where the UART / LVDS * transceiver is turned on. */ uart25_tx_on { gpio-hog; gpios = <27 0>; /* SODIMM 104 */ output-high; }; }; &gpio5 { uart1_tx_on { gpio-hog; gpios = <17 0>; /* SODIMM 102 */ output-high; }; }; /* The define SD_1_8 allows to use the SD interface at a higher speed mode * if the card supports it. For this the signaling voltage is switched from * 3.3V to 1.8V under the usdhc1's drivers control. * All pins supplied with NVCC_SD1 must be able to cope with this * and must (MUST!!!) not be driven with a voltage higher than 1.8V or * the interface will not work. */ #define SD_1_8 &usdhc1 { #ifdef SD_1_8 pinctrl-names = "default", "state_100mhz", "state_200mhz", "sleep"; pinctrl-0 = <&pinctrl_usdhc1 &pinctrl_cd_usdhc1>; pinctrl-1 = <&pinctrl_usdhc1_100mhz &pinctrl_cd_usdhc1>; pinctrl-2 = <&pinctrl_usdhc1_200mhz &pinctrl_cd_usdhc1>; pinctrl-3 = <&pinctrl_usdhc1_sleep &pinctrl_cd_usdhc1_sleep>; vqmmc-supply = <®_LDO2>; sd-uhs-sdr12; sd-uhs-sdr25; sd-uhs-sdr50; sd-uhs-sdr104; #else pinctrl-names = "default", "sleep"; pinctrl-0 = <&pinctrl_usdhc1 &pinctrl_cd_usdhc1>; pinctrl-1 = <&pinctrl_usdhc1_sleep &pinctrl_cd_usdhc1_sleep>; no-1-8-v; #endif cd-gpios = <&gpio1 0 GPIO_ACTIVE_LOW>; disable-wp; enable-sdio-wakeup; cap-power-off-card; wakeup-source; vmmc-supply = <®_3v3_vmmc>; status = "okay"; }; &iomuxc { pinctrl_usdhc1_sleep: usdhc1-slp-grp { fsl,pins = < MX7D_PAD_SD1_CMD__SD1_CMD 0x10 MX7D_PAD_SD1_CLK__SD1_CLK 0x10 MX7D_PAD_SD1_DATA0__SD1_DATA0 0x10 MX7D_PAD_SD1_DATA1__SD1_DATA1 0x10 MX7D_PAD_SD1_DATA2__SD1_DATA2 0x10 MX7D_PAD_SD1_DATA3__SD1_DATA3 0x10 >; }; pinctrl_cd_usdhc1_sleep: usdhc1-cd-slp-grp { fsl,pins = < MX7D_PAD_LPSR_GPIO1_IO00__GPIO1_IO0 0x0 /* CD */ >; }; };