diff options
Diffstat (limited to 'arch/arm64/boot/dts/compulab/sb-mcm-imx8-rev1.dtsi')
-rw-r--r-- | arch/arm64/boot/dts/compulab/sb-mcm-imx8-rev1.dtsi | 285 |
1 files changed, 285 insertions, 0 deletions
diff --git a/arch/arm64/boot/dts/compulab/sb-mcm-imx8-rev1.dtsi b/arch/arm64/boot/dts/compulab/sb-mcm-imx8-rev1.dtsi new file mode 100644 index 000000000000..1a9db125ac85 --- /dev/null +++ b/arch/arm64/boot/dts/compulab/sb-mcm-imx8-rev1.dtsi @@ -0,0 +1,285 @@ +/* + * Copyright (C) 2018 CompuLab Ltd. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#include "../freescale/imx8mm-pinfunc.h" + +/ { + simple_sound: sound { + compatible = "simple-audio-card"; + simple-audio-card,name = "mcm-imx8m-mini"; + simple-audio-card,widgets = + "Headphone", "Headphone Jack", + "Line", "Line Out", + "Microphone", "Mic Jack", + "Line", "Line In"; + simple-audio-card,routing = + "Headphone Jack", "RHPOUT", + "Headphone Jack", "LHPOUT", + "MICIN", "Mic Bias", + "Mic Bias", "Mic Jack"; + simple-audio-card,format = "i2s"; + simple-audio-card,bitclock-master = <&sound_master>; + simple-audio-card,frame-master = <&sound_master>; + + sound_master: simple-audio-card,cpu { + sound-dai = <&sai2>; + system-clock-frequency = <0>; + system-clock-direction = "out"; + }; + + sound_codec: simple-audio-card,codec { + sound-dai = <&wm8731>; + system-clock-direction = "in"; + system-clock-type = "mclk"; + }; + }; + + clocks { + clk40m: clk@1 { + compatible = "fixed-clock"; + #reg = <1>; + #clock-cells = <0>; + clock-frequency = <40000000>; + clock-output-names = "clk40m"; + }; + }; + + regulator-can0term@0 { + compatible = "regulator-fixed"; + regulator-name = "can0_term0"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + gpio = <&gpio4 2 GPIO_ACTIVE_LOW>; + regulator-always-on; + enable-active-low; + }; + + regulator-can0term@1 { + compatible = "regulator-fixed"; + regulator-name = "can0_term1"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + gpio = <&gpio4 12 GPIO_ACTIVE_LOW>; + regulator-always-on; + enable-active-low; + }; + + uart4_sel: uart4sel { + compatible = "regulator-fixed"; + regulator-name = "uart4_sel"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + gpio = <&pca9555 14 GPIO_ACTIVE_LOW>; + regulator-always-on; + enable-active-low; + }; + + pcie0_refclk: pcie0-refclk { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <100000000>; + }; +}; + +&iomuxc { + sb-mcm-imx8 { + pinctrl_ecspi1: ecspi1grp { + fsl,pins = < + MX8MM_IOMUXC_ECSPI1_SCLK_ECSPI1_SCLK 0x02 + MX8MM_IOMUXC_ECSPI1_MOSI_ECSPI1_MOSI 0x02 + MX8MM_IOMUXC_ECSPI1_MISO_ECSPI1_MISO 0x102 + >; + }; + + pinctrl_ecspi1_cs: ecspi1_csgrp { + fsl,pins = < + MX8MM_IOMUXC_ECSPI1_SS0_GPIO5_IO9 0x40000 + >; + }; + + pinctrl_can0: can0grp { + fsl,pins = < + MX8MM_IOMUXC_SAI1_TXFS_GPIO4_IO10 0x00 + MX8MM_IOMUXC_SAI1_TXD0_GPIO4_IO12 0x00 + MX8MM_IOMUXC_SAI1_RXD0_GPIO4_IO2 0x00 + >; + }; + }; +}; + +&ecspi1 { + #address-cells = <1>; + #size-cells = <0>; + fsl,spi-num-chipselects = <1>; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_ecspi1 &pinctrl_ecspi1_cs>; + cs-gpios = <&gpio5 9 GPIO_ACTIVE_LOW>; + status = "okay"; + + can0: can@0 { + compatible = "microchip,mcp2518fd"; + reg = <0>; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_can0>; + interrupt-parent = <&gpio4>; + interrupts = <10 IRQ_TYPE_LEVEL_LOW>; + spi-max-frequency = <10000000>; + clocks = <&clk40m>; + }; +}; + +&pcie0 { + reset-gpio = <&pca9555 0 GPIO_ACTIVE_LOW>; + clocks = <&clk IMX8MM_CLK_PCIE1_ROOT>, + <&clk IMX8MM_CLK_PCIE1_AUX>, + <&clk IMX8MM_CLK_PCIE1_PHY>, + <&pcie0_refclk>; + clock-names = "pcie", "pcie_aux", "pcie_phy", "pcie_bus"; + ext_osc = <1>; + status = "okay"; +}; + +&i2c1 { + clock-frequency = <100000>; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_i2c1>; + status = "okay"; + + pca9555:pca9555@20 { + compatible = "nxp,pca9555"; + gpio-controller; + #gpio-cells = <2>; + reg = <0x20>; + }; + + eeprom@54 { + compatible = "atmel,24c08"; + reg = <0x54>; + pagesize = <16>; + }; +}; + +&i2c4 { + clock-frequency = <400000>; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_i2c4>; + status = "okay"; + + wm8731: wm8731@1a { + #sound-dai-cells = <0>; + compatible = "wlf,wm8731"; + reg = <0x1a>; + status = "okay"; + }; + + ov5640_mipi: ov5640_mipi@3c { + compatible = "ovti,ov5640_mipi"; + reg = <0x3c>; + status = "okay"; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_csi1>; + clocks = <&clk IMX8MM_CLK_CLKO1>; + clock-names = "csi_mclk"; + assigned-clocks = <&clk IMX8MM_CLK_CLKO1>; + assigned-clock-parents = <&clk IMX8MM_CLK_24M>; + assigned-clock-rates = <0>, <24000000>; + csi_id = <0>; + /* + To be looked into & fixed + As of now the device is alwas out of reset & under the power + */ + pwn-gpios = <&pca9555 8 GPIO_ACTIVE_LOW>; + rst-gpios = <&pca9555 3 GPIO_ACTIVE_HIGH>; + + mclk = <24000000>; + mclk_source = <0>; + port { + ov5640_mipi1_ep: endpoint { + remote-endpoint = <&mipi1_sensor_ep>; + }; + }; + }; + goodix_ts@5d { + compatible = "goodix,gt911"; + reg = <0x5d>; + + interrupt-parent = <&gpio1>; + interrupts = <1 IRQ_TYPE_LEVEL_HIGH>; + + pinctrl-names = "default"; + pinctrl-0 = <&touchscreen_pins>; + + irq-gpios = <&gpio1 1 GPIO_ACTIVE_HIGH>; + reset-gpios = <&pca9555 4 GPIO_ACTIVE_HIGH>; + status = "okay"; + }; + +}; + +&mipi_csi_1 { + #address-cells = <1>; + #size-cells = <0>; + status = "okay"; + port { + mipi1_sensor_ep: endpoint@1 { + remote-endpoint = <&ov5640_mipi1_ep>; + data-lanes = <2>; + csis-hs-settle = <13>; + csis-clk-settle = <2>; + csis-wclk; + }; + + csi1_mipi_ep: endpoint@2 { + remote-endpoint = <&csi1_ep>; + }; + }; +}; + +&csi1_bridge { + fsl,mipi-mode; + status = "okay"; + + port { + csi1_ep: endpoint { + remote-endpoint = <&csi1_mipi_ep>; + }; + }; +}; + +&mipi_dsi { + status = "okay"; + panel: panel@0 { + compatible = "startek,kd050hdfia020"; + reg = <0>; + reset-gpio = <&pca9555 6 GPIO_ACTIVE_LOW>; + dsi-lanes = <4>; + status = "okay"; + }; +}; + +&flexspi { + compatible = "fsl,imx8mm-flexspi"; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_flexspi0>; + status = "okay"; + + qspiflash0: qspiflash@0 { + reg = <0>; + #address-cells = <1>; + #size-cells = <1>; + compatible = "w25x16", "jedec,spi-nor"; + spi-max-frequency = <80000000>; + spi-nor,ddr-quad-read-dummy = <6>; + }; +}; |