| /* |
| * Copyright (C) 2016 Nest Labs, Inc. |
| * |
| * This program is free software; you can redistribute it and/or modify |
| * it under the terms of the GNU General Public License version 2 as |
| * published by the Free Software Foundation. |
| */ |
| |
| /dts-v1/; |
| |
| #include <dt-bindings/gpio/gpio.h> |
| #include <dt-bindings/input/input.h> |
| #include <dt-bindings/interrupt-controller/irq.h> |
| #include "imx6ul.dtsi" |
| |
| #define PAD_CONFIG__DEFAULT 0x00001008 |
| #define PAD_CONFIG__ADC 0x00000008 |
| #define PAD_CONFIG__GPIO 0x40001008 |
| #define PAD_CONFIG__I2C 0x40001808 |
| |
| / { |
| memory { |
| reg = <0 0>; /* Determined and Populated by Bootloader */ |
| }; |
| |
| soc { |
| busfreq { |
| status = "disabled"; |
| }; |
| }; |
| |
| aliases { |
| serial-ble0 = &uart3; |
| serial-sensormcu0 = &uart2; |
| }; |
| |
| gpio-keys { |
| compatible = "gpio-keys"; |
| reg = <0 0>; |
| |
| hu_button: HU-button { |
| pinctrl-names = "default"; |
| pinctrl-0 = <&pinctrl_hu_button>; |
| label = "HU Button"; |
| linux,code = <KEY_ENTER>; |
| gpio-key,wakeup; |
| }; |
| }; |
| |
| gpio-wakeups { |
| compatible = "gpio-keys"; |
| reg = <0 0>; |
| pinctrl-names = "default"; |
| pinctrl-0 = <&pinctrl_gpio_wakeup>; |
| |
| sensor_mcu_wakeup: sensor-mcu-wakeup { |
| label = "Sensor MCU Wakeup"; |
| linux,code = <KEY_WAKEUP>; |
| gpio-key,wakeup; |
| }; |
| |
| }; |
| |
| brcm_wlan: brcm-wlan { |
| compatible = "brcm,bcmdhd_wlan"; |
| reg = <0 0>; |
| pinctrl-names = "default"; |
| pinctrl-0 = <&pinctrl_brcm_wlan>; |
| }; |
| |
| ble-rfkill { |
| compatible = "rfkill-gpio"; |
| reg = <0 0>; |
| rfkill-name = "BLE"; |
| rfkill-type = <2>; |
| reset-gpios = <&gpio2 1 GPIO_ACTIVE_HIGH>; |
| }; |
| |
| wifi_gpios: brcm_wifi { |
| compatible = "nestlabs,gpio-exporter"; |
| reg = <0 0>; |
| pinctrl-names = "default"; |
| pinctrl-0 = <&pinctrl_wifi_gpios>; |
| output-names = "reset"; |
| }; |
| |
| em35x_gpios: em35x-gpios { |
| compatible = "nestlabs,gpio-exporter"; |
| reg = <0 0>; |
| pinctrl-names = "default"; |
| pinctrl-0 = <&pinctrl_em35x_gpios>; |
| output-names = "reset", "wake"; |
| output-gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>, |
| <&gpio1 9 GPIO_ACTIVE_HIGH>; |
| input-names = "irq"; |
| input-gpios = <&gpio1 6 GPIO_ACTIVE_HIGH>; |
| }; |
| |
| sensor_mcu_gpios: sensor-mcu-gpios { |
| compatible = "nestlabs,gpio-exporter"; |
| reg = <0 0>; |
| pinctrl-names = "default"; |
| pinctrl-0 = <&pinctrl_sensor_mcu_gpios>; |
| }; |
| |
| adc_ref: fixedregulator@0 { |
| compatible = "regulator-fixed"; |
| reg = <0 0>; |
| regulator-name = "fixed-supply"; |
| regulator-always-on; |
| }; |
| |
| battery: battery@0 { |
| compatible = "adc-div-battery"; |
| status = "okay"; |
| }; |
| }; |
| |
| /* Zigbee SPI */ |
| &ecspi4 { |
| fsl,spi-num-chipselects = <1>; |
| cs-gpios = <&gpio2 15 GPIO_ACTIVE_LOW>; |
| pinctrl-names = "default"; |
| pinctrl-0 = <&pinctrl_ecspi4_1>; |
| status = "okay"; |
| |
| spidev_em35x@0 { |
| compatible = "silabs,em35x"; |
| spi-max-frequency = <20000000>; |
| reg = <0>; |
| }; |
| }; |
| |
| &gpc { |
| fsl,cpu_pupscr_sw2iso = <0x1>; |
| fsl,cpu_pupscr_sw = <0x0>; |
| fsl,cpu_pdnscr_iso2sw = <0x1>; |
| fsl,cpu_pdnscr_iso = <0x1>; |
| fsl,ldo-bypass = <0>; /* DCDC, ldo-enable */ |
| }; |
| |
| /* PWM8 for Piezo */ |
| &pwm8 { |
| pinctrl-names = "default"; |
| pinctrl-0 = <&pinctrl_pwm8_0>; |
| clocks = <&clks IMX6UL_CLK_PWM8>, |
| <&clks IMX6UL_CLK_PWM8>; |
| status = "okay"; |
| }; |
| |
| /* I2C2 */ |
| &i2c2 { |
| clock-frequency = <100000>; |
| pinctrl-names = "default"; |
| pinctrl-0 = <&pinctrl_i2c2_1>; |
| status = "okay"; |
| /* LM3530 (LED Driver) @ 0x63 */ |
| backlight: lm3695@63 { |
| compatible= "national,lm3695"; |
| reg = <0x63>; |
| pinctrl-names = "default"; |
| pinctrl-0 = <&pinctrl_backlight>; |
| max-brightness = <2047>; |
| default-brightness = <1800>; |
| single-string; |
| boost-freq; |
| high-voltage; |
| ramp-rise-time = <2000>; |
| ramp-fall-time = <2000>; |
| fb-device = "mxsfb"; |
| }; |
| }; |
| |
| /*lcd driver spi */ |
| &ecspi2 { |
| pinctrl-0 = <&pinctrl_ecspi2_1>; |
| pinctrl-names = "default"; |
| status = "okay"; |
| }; |
| |
| &lcdif { |
| pinctrl-names = "default"; |
| pinctrl-0 = <&pinctrl_lcdif_dat_1 &pinctrl_lcdif_ctrl_1>; |
| status = "okay"; |
| }; |
| |
| /* Pinmux Controller */ |
| &iomuxc { |
| pinctrl-names = "default"; |
| pinctrl-0 = <&pinctrl_hog>, <&pinctrl_hog_extra>; |
| |
| i2c2 { |
| pinctrl_i2c2_1: i2c2grp-1 { |
| fsl,pins = < |
| MX6UL_PAD_GPIO1_IO00__I2C2_SCL PAD_CONFIG__I2C /* I2C_AP_PIN_LCD_SCK */ |
| MX6UL_PAD_GPIO1_IO01__I2C2_SDA PAD_CONFIG__I2C /* I2C_AP_PIN_LCD_SDA */ |
| >; |
| }; |
| }; |
| |
| pwm8 { // Piezo pwm |
| pinctrl_pwm8_0: pwm8grp-0 { |
| fsl,pins = < |
| MX6UL_PAD_ENET1_RX_ER__PWM8_OUT PAD_CONFIG__DEFAULT /* PWM_PIEZO_DRIVE */ |
| >; |
| }; |
| }; |
| |
| |
| uart3 { /* serial BLE */ |
| pinctrl_uart3_1: uart3grp-1 { |
| fsl,pins = < |
| MX6UL_PAD_UART3_TX_DATA__UART3_DCE_TX PAD_CONFIG__DEFAULT /* UART_AP_TO_BLE */ |
| MX6UL_PAD_UART3_RX_DATA__UART3_DCE_RX PAD_CONFIG__DEFAULT /* UART_BLE_TO_AP */ |
| MX6UL_PAD_UART3_RTS_B__UART3_DCE_RTS PAD_CONFIG__DEFAULT /* UART_FLOW_BLE_TO_AP */ |
| MX6UL_PAD_UART3_CTS_B__UART3_DCE_CTS PAD_CONFIG__DEFAULT /* UART_FLOW_AP_TO_BLE */ |
| >; |
| }; |
| }; |
| |
| uart2 { //BP_UART |
| pinctrl_uart2_1: uart2grp-1 { |
| fsl,pins = < |
| MX6UL_PAD_UART2_RX_DATA__UART2_DCE_RX PAD_CONFIG__DEFAULT /* UART_MCU_TO_AP */ |
| MX6UL_PAD_UART2_TX_DATA__UART2_DCE_TX PAD_CONFIG__DEFAULT /* UART_AP_TO_MCU */ |
| MX6UL_PAD_UART2_CTS_B__UART2_DCE_CTS PAD_CONFIG__DEFAULT /* UART_FLOW_AP_TO_MCU */ |
| MX6UL_PAD_UART2_RTS_B__UART2_DCE_RTS PAD_CONFIG__DEFAULT /* UART_FLOW_MCU_TO_AP */ |
| >; |
| }; |
| }; |
| |
| usdhc2 { /* WIFI SDIO */ |
| pinctrl_usdhc2_1: usdhc2grp { |
| fsl,pins = < |
| MX6UL_PAD_CSI_VSYNC__USDHC2_CLK PAD_CONFIG__DEFAULT /* AP_SDIO_WIFI_CLK */ |
| MX6UL_PAD_CSI_HSYNC__USDHC2_CMD PAD_CONFIG__DEFAULT /* AP_SDIO_WIFI_CMD */ |
| MX6UL_PAD_CSI_DATA00__USDHC2_DATA0 PAD_CONFIG__DEFAULT /* AP_SDIO_WIFI_DATA0 */ |
| MX6UL_PAD_CSI_DATA01__USDHC2_DATA1 PAD_CONFIG__DEFAULT /* AP_SDIO_WIFI_DATA1 */ |
| MX6UL_PAD_CSI_DATA02__USDHC2_DATA2 PAD_CONFIG__DEFAULT /* AP_SDIO_WIFI_DATA2 */ |
| MX6UL_PAD_CSI_DATA03__USDHC2_DATA3 PAD_CONFIG__DEFAULT /* AP_SDIO_WIFI_DATA3 */ |
| >; |
| }; |
| }; |
| |
| lcdif1 { |
| /* Set Hi-Z on all LCD data pins, as there are external pulls */ |
| pinctrl_lcdif_dat_1: lcdifdatgrp-1 { |
| fsl,pins = < |
| MX6UL_PAD_LCD_DATA00__LCDIF_DATA00 PAD_CONFIG__DEFAULT /* LCD_DATA0 */ |
| MX6UL_PAD_LCD_DATA01__LCDIF_DATA01 PAD_CONFIG__DEFAULT /* LCD_DATA1 */ |
| MX6UL_PAD_LCD_DATA02__LCDIF_DATA02 PAD_CONFIG__DEFAULT /* LCD_DATA2 */ |
| MX6UL_PAD_LCD_DATA03__LCDIF_DATA03 PAD_CONFIG__DEFAULT /* LCD_DATA3 */ |
| MX6UL_PAD_LCD_DATA04__LCDIF_DATA04 PAD_CONFIG__DEFAULT /* LCD_DATA4 */ |
| MX6UL_PAD_LCD_DATA05__LCDIF_DATA05 PAD_CONFIG__DEFAULT /* LCD_DATA5 */ |
| MX6UL_PAD_LCD_DATA06__LCDIF_DATA06 PAD_CONFIG__DEFAULT /* LCD_DATA6 */ |
| MX6UL_PAD_LCD_DATA07__LCDIF_DATA07 PAD_CONFIG__DEFAULT /* LCD_DATA7 */ |
| MX6UL_PAD_LCD_DATA08__LCDIF_DATA08 PAD_CONFIG__DEFAULT /* LCD_DATA8 */ |
| MX6UL_PAD_LCD_DATA09__LCDIF_DATA09 PAD_CONFIG__DEFAULT /* LCD_DATA9 */ |
| MX6UL_PAD_LCD_DATA10__LCDIF_DATA10 PAD_CONFIG__DEFAULT /* LCD_DATA10 */ |
| MX6UL_PAD_LCD_DATA11__LCDIF_DATA11 PAD_CONFIG__DEFAULT /* LCD_DATA11 */ |
| MX6UL_PAD_LCD_DATA12__LCDIF_DATA12 PAD_CONFIG__DEFAULT /* LCD_DATA12 */ |
| MX6UL_PAD_LCD_DATA13__LCDIF_DATA13 PAD_CONFIG__DEFAULT /* LCD_DATA13 */ |
| MX6UL_PAD_LCD_DATA14__LCDIF_DATA14 PAD_CONFIG__DEFAULT /* LCD_DATA14 */ |
| MX6UL_PAD_LCD_DATA15__LCDIF_DATA15 PAD_CONFIG__DEFAULT /* LCD_DATA15 */ |
| MX6UL_PAD_LCD_DATA16__LCDIF_DATA16 PAD_CONFIG__DEFAULT /* LCD_DATA16 */ |
| MX6UL_PAD_LCD_DATA17__LCDIF_DATA17 PAD_CONFIG__DEFAULT /* LCD_DATA17 */ |
| MX6UL_PAD_LCD_DATA18__LCDIF_DATA18 PAD_CONFIG__DEFAULT /* LCD_DATA18 */ |
| MX6UL_PAD_LCD_DATA19__LCDIF_DATA19 PAD_CONFIG__DEFAULT /* LCD_DATA19 */ |
| MX6UL_PAD_LCD_DATA20__LCDIF_DATA20 PAD_CONFIG__DEFAULT /* LCD_DATA20 */ |
| MX6UL_PAD_LCD_DATA21__LCDIF_DATA21 PAD_CONFIG__DEFAULT /* LCD_DATA21 */ |
| MX6UL_PAD_LCD_DATA22__LCDIF_DATA22 PAD_CONFIG__DEFAULT /* LCD_DATA22 */ |
| MX6UL_PAD_LCD_DATA23__LCDIF_DATA23 PAD_CONFIG__DEFAULT /* LCD_DATA23 */ |
| >; |
| }; |
| |
| /* Set weak pullups on all LCD control pins */ |
| pinctrl_lcdif_ctrl_1: lcdifctrlgrp-1 { |
| fsl,pins = < |
| MX6UL_PAD_LCD_CLK__LCDIF_CLK PAD_CONFIG__DEFAULT /* LCD_CLK */ |
| MX6UL_PAD_LCD_ENABLE__LCDIF_ENABLE PAD_CONFIG__DEFAULT /* LCD_ENABLE */ |
| MX6UL_PAD_LCD_VSYNC__LCDIF_VSYNC PAD_CONFIG__DEFAULT /* LCD_VSYNC */ |
| MX6UL_PAD_LCD_HSYNC__LCDIF_HSYNC PAD_CONFIG__DEFAULT /* LCD_HSYNC */ |
| MX6UL_PAD_LCD_RESET__GPIO3_IO04 PAD_CONFIG__GPIO /* LCD_RESET */ |
| >; |
| }; |
| }; |
| |
| HU-button { |
| pinctrl_hu_button: hu-button-grp { |
| /* Board Specific */ |
| }; |
| }; |
| |
| gpio-wakeup { |
| pinctrl_gpio_wakeup: gpio-wakeup-grp { |
| /* Board Specific */ |
| }; |
| }; |
| |
| brcm-wlan { |
| pinctrl_brcm_wlan: brcm-wlan-grp { |
| /* Board Specific */ |
| }; |
| }; |
| |
| wifi-gpios { |
| pinctrl_wifi_gpios: wifi-gpios-grp { |
| /* Board Specific */ |
| }; |
| }; |
| |
| sensor-mcu-gpios { |
| pinctrl_sensor_mcu_gpios: sensor-mcu-gpios-grp { |
| /* Board Specific */ |
| }; |
| }; |
| |
| backlight { |
| pinctrl_backlight: backlight-grp { |
| /* Board Specific */ |
| }; |
| }; |
| |
| hog { |
| pinctrl_hog: hoggrp { |
| fsl,pins = < |
| MX6UL_PAD_UART4_RX_DATA__GPIO1_IO29 PAD_CONFIG__GPIO /* SPI2_LCD_CS_L*/ |
| MX6UL_PAD_ENET2_RX_ER__GPIO2_IO15 PAD_CONFIG__GPIO /* SPI_6LO_CS */ |
| MX6UL_PAD_ENET1_RX_DATA1__GPIO2_IO01 PAD_CONFIG__GPIO /* BLE_RST_L */ |
| MX6UL_PAD_ENET1_TX_DATA1__GPIO2_IO04 PAD_CONFIG__GPIO /* SAMPLE_VBAT_AP */ |
| MX6UL_PAD_ENET1_TX_CLK__GPIO2_IO06 PAD_CONFIG__GPIO /* PIEZO_EN_L */ |
| >; |
| }; |
| |
| pinctrl_hog_extra: hog-extra-grp { |
| /* Board Specific */ |
| }; |
| }; |
| |
| ecspi2 { /*LCD SPI*/ |
| pinctrl_ecspi2_1: ecspi2grp-1 { |
| fsl,pins = < |
| MX6UL_PAD_UART5_RX_DATA__ECSPI2_MISO PAD_CONFIG__DEFAULT /* SPI_AP_LCD_MISO */ |
| MX6UL_PAD_UART5_TX_DATA__ECSPI2_MOSI PAD_CONFIG__DEFAULT /* SPI_AP_LCD_MOSI */ |
| MX6UL_PAD_UART4_TX_DATA__ECSPI2_SCLK PAD_CONFIG__DEFAULT /* SPI_AP_LCD_CLK */ |
| >; |
| }; |
| }; |
| ecspi4 { /*6lowpan SPI*/ |
| pinctrl_ecspi4_1: ecspi4grp-1 { |
| fsl,pins = < |
| MX6UL_PAD_ENET2_TX_CLK__ECSPI4_MISO PAD_CONFIG__DEFAULT /* SPI_6LO_MISO */ |
| MX6UL_PAD_ENET2_TX_EN__ECSPI4_MOSI PAD_CONFIG__DEFAULT /* SPI_6LO_MOSI */ |
| MX6UL_PAD_ENET2_TX_DATA1__ECSPI4_SCLK PAD_CONFIG__DEFAULT /* SPI_6LO_SCLK */ |
| >; |
| }; |
| }; |
| |
| em35x-gpios { |
| pinctrl_em35x_gpios: em35x-gpios-grp { |
| fsl,pins = < |
| MX6UL_PAD_GPIO1_IO07__GPIO1_IO07 PAD_CONFIG__GPIO /* 6LO_RESET_L */ |
| MX6UL_PAD_GPIO1_IO06__GPIO1_IO06 PAD_CONFIG__GPIO /* INT_6LO_TO_AP */ |
| MX6UL_PAD_GPIO1_IO09__GPIO1_IO09 PAD_CONFIG__GPIO /* INT_AP_TO_6LO */ |
| >; |
| }; |
| }; |
| }; |
| |
| /* Bluetooth UART */ |
| &uart3 { |
| pinctrl-names = "default"; |
| pinctrl-0 = <&pinctrl_uart3_1>; |
| fsl,uart-has-rtscts; |
| status = "okay"; |
| }; |
| |
| /* BP UART */ |
| &uart2 { |
| pinctrl-names = "default"; |
| pinctrl-0 = <&pinctrl_uart2_1>; |
| fsl,uart-has-rtscts; |
| status = "okay"; |
| }; |
| |
| /* Debug USB (Device) */ |
| &usbotg1 { |
| pinctrl-names = "default"; |
| dr_mode = "peripheral"; |
| imx-usb-charger-detection; |
| status = "okay"; |
| }; |
| |
| /* WIFI SDIO */ |
| &usdhc2 { |
| pinctrl-names = "default"; |
| pinctrl-0 = <&pinctrl_usdhc2_1>; |
| non-removable; |
| keep-power-in-suspend; |
| enable-sdio-wakeup; |
| status = "okay"; |
| }; |
| |
| /* GPMI NAND */ |
| &gpmi { |
| status = "okay"; |
| nand-on-flash-bbt; /* Need to reserve NAND_BBT_SCAN_MAXBLOCKS at end of NAND */ |
| |
| partition@0-a { |
| label = "nand0"; |
| reg = <0x0 0x20000000>; |
| }; |
| |
| partition@0-b { |
| label = "u-boot"; |
| reg = <0x0 0x00400000>; |
| }; |
| partition@00400000 { |
| label = "ubipart"; |
| reg = <0x00400000 0x1F400000>; |
| }; |
| |
| partition@1F800000 { |
| label = "oopsdata"; |
| reg = <0x1F800000 0x780000>; |
| }; |
| }; |
| |