mirror of
https://github.com/raspberrypi/linux.git
synced 2025-12-25 03:22:39 +00:00
Add support for Seed Stuidos NPi i.MX6ULL SoM equipped with 512MB RAM and 8GB eMMC or 512MB NAND flash. Development board comes with either eMMC or NAND based SoM with peripheral interfaces like 2 x ethernet, 2 x USB, LCD, CSI and more. Signed-off-by: Parthiban Nallathambi <parthiban@linumiz.com> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
425 lines
10 KiB
Plaintext
425 lines
10 KiB
Plaintext
// SPDX-License-Identifier: GPL-2.0
|
|
/*
|
|
* Copyright (c) 2024 Linumiz
|
|
* Author: Parthiban <parthiban@linumiz.com>
|
|
*/
|
|
|
|
#include <dt-bindings/gpio/gpio.h>
|
|
|
|
/ {
|
|
chosen {
|
|
stdout-path = &uart1;
|
|
};
|
|
|
|
gpio_buttons: gpio-keys {
|
|
compatible = "gpio-keys";
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&pinctrl_button>;
|
|
|
|
button-0 {
|
|
gpios = <&gpio5 1 GPIO_ACTIVE_LOW>;
|
|
label = "SW2";
|
|
linux,code = <KEY_A>;
|
|
wakeup-source;
|
|
};
|
|
};
|
|
|
|
gpio-leds {
|
|
compatible = "gpio-leds";
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&pinctrl_gpio_leds>;
|
|
|
|
led-blue {
|
|
gpios = <&gpio4 19 GPIO_ACTIVE_LOW>;
|
|
label = "LED_B";
|
|
linux,default-trigger = "heartbeat";
|
|
default-state = "on";
|
|
};
|
|
|
|
led-green {
|
|
gpios = <&gpio4 20 GPIO_ACTIVE_LOW>;
|
|
label = "LED_G";
|
|
linux,default-trigger = "heartbeat";
|
|
default-state = "on";
|
|
};
|
|
|
|
led-red {
|
|
gpios = <&gpio1 4 GPIO_ACTIVE_LOW>;
|
|
label = "LED_R";
|
|
linux,default-trigger = "heartbeat";
|
|
default-state = "on";
|
|
};
|
|
|
|
led-user {
|
|
gpios = <&gpio5 3 GPIO_ACTIVE_LOW>;
|
|
label = "User";
|
|
linux,default-trigger = "heartbeat";
|
|
default-state = "on";
|
|
};
|
|
};
|
|
|
|
reg_5v_sys: regulator-5v-sys {
|
|
compatible = "regulator-fixed";
|
|
regulator-name = "5V_SYS";
|
|
regulator-min-microvolt = <5000000>;
|
|
regulator-max-microvolt = <5000000>;
|
|
regulator-always-on;
|
|
};
|
|
|
|
reg_5v: regulator-5v {
|
|
compatible = "regulator-fixed";
|
|
regulator-name = "5V";
|
|
regulator-min-microvolt = <5000000>;
|
|
regulator-max-microvolt = <5000000>;
|
|
regulator-always-on;
|
|
vin-supply = <®_5v_sys>;
|
|
};
|
|
|
|
reg_3v3_in: regulator-3v3-in {
|
|
compatible = "regulator-fixed";
|
|
regulator-name = "3V3_IN";
|
|
regulator-min-microvolt = <3300000>;
|
|
regulator-max-microvolt = <3300000>;
|
|
regulator-always-on;
|
|
vin-supply = <®_5v_sys>;
|
|
};
|
|
|
|
reg_3v3: regulator-3v3 {
|
|
compatible = "regulator-fixed";
|
|
regulator-name = "3V3";
|
|
regulator-min-microvolt = <3300000>;
|
|
regulator-max-microvolt = <3300000>;
|
|
regulator-always-on;
|
|
vin-supply = <®_3v3_in>;
|
|
};
|
|
|
|
reg_sd1_vmmc: regulator-sd1-vmmc {
|
|
compatible = "regulator-fixed";
|
|
regulator-name = "3V3_SD";
|
|
regulator-min-microvolt = <3300000>;
|
|
regulator-max-microvolt = <3300000>;
|
|
gpios = <&gpio1 9 GPIO_ACTIVE_HIGH>;
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&pinctrl_reg_vmmc>;
|
|
enable-active-high;
|
|
regulator-always-on;
|
|
vin-supply = <®_3v3>;
|
|
};
|
|
};
|
|
|
|
&csi {
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&pinctrl_csi1>;
|
|
status = "disabled"; /* LED Blue & Green shared */
|
|
};
|
|
|
|
&fec1 {
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&pinctrl_enet1>;
|
|
phy-mode = "rmii";
|
|
phy-handle = <ðphy0>;
|
|
status = "okay";
|
|
};
|
|
|
|
&fec2 {
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&pinctrl_enet2>;
|
|
phy-mode = "rmii";
|
|
phy-handle = <ðphy1>;
|
|
status = "okay";
|
|
|
|
mdio {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
ethphy0: ethernet-phy@2 {
|
|
compatible = "ethernet-phy-ieee802.3-c22";
|
|
reg = <2>;
|
|
micrel,led-mode = <1>;
|
|
clocks = <&clks IMX6UL_CLK_ENET_REF>;
|
|
clock-names = "rmii-ref";
|
|
};
|
|
|
|
ethphy1: ethernet-phy@1 {
|
|
compatible = "ethernet-phy-ieee802.3-c22";
|
|
reg = <1>;
|
|
micrel,led-mode = <1>;
|
|
clocks = <&clks IMX6UL_CLK_ENET2_REF>;
|
|
clock-names = "rmii-ref";
|
|
};
|
|
};
|
|
};
|
|
|
|
&lcdif {
|
|
pinctrl-0 = <&pinctrl_lcdif>;
|
|
pinctrl-names = "default";
|
|
status = "disabled";
|
|
};
|
|
|
|
®_dcdc_3v3 {
|
|
vin-supply = <®_3v3_in>;
|
|
};
|
|
|
|
&sai2 {
|
|
assigned-clock-rates = <320000000>;
|
|
assigned-clocks = <&clks IMX6UL_CLK_PLL3_PFD2>;
|
|
pinctrl-0 = <&pinctrl_sai2>;
|
|
pinctrl-names = "default";
|
|
status = "okay";
|
|
};
|
|
|
|
&snvs_poweroff {
|
|
status = "okay";
|
|
};
|
|
|
|
&uart1 {
|
|
pinctrl-0 = <&pinctrl_uart1>;
|
|
status = "okay";
|
|
};
|
|
|
|
&uart2 {
|
|
pinctrl-0 = <&pinctrl_uart2>;
|
|
uart-has-rtscts;
|
|
status = "okay";
|
|
};
|
|
|
|
&uart3 {
|
|
pinctrl-0 = <&pinctrl_uart3>;
|
|
uart-has-rtscts;
|
|
status = "okay";
|
|
};
|
|
|
|
&uart4 {
|
|
pinctrl-0 = <&pinctrl_uart4>;
|
|
status = "okay";
|
|
};
|
|
|
|
&uart5 {
|
|
pinctrl-0 = <&pinctrl_uart5>;
|
|
status = "okay";
|
|
};
|
|
|
|
&usbotg1 {
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&pinctrl_usb_otg1_id>;
|
|
dr_mode = "otg";
|
|
srp-disable;
|
|
hnp-disable;
|
|
adp-disable;
|
|
status = "okay";
|
|
};
|
|
|
|
&usbotg2 {
|
|
dr_mode = "host";
|
|
disable-over-current;
|
|
status = "okay";
|
|
};
|
|
|
|
&usdhc1 {
|
|
pinctrl-names = "default", "state_100mhz", "state_200mhz";
|
|
pinctrl-0 = <&pinctrl_usdhc1 &pinctrl_usdhc1_cd>;
|
|
pinctrl-1 = <&pinctrl_usdhc1_100mhz &pinctrl_usdhc1_cd>;
|
|
pinctrl-2 = <&pinctrl_usdhc1_200mhz &pinctrl_usdhc1_cd>;
|
|
cd-gpios = <&gpio1 19 GPIO_ACTIVE_LOW>;
|
|
no-1-8-v;
|
|
keep-power-in-suspend;
|
|
wakeup-source;
|
|
vmmc-supply = <®_sd1_vmmc>;
|
|
status = "okay";
|
|
};
|
|
|
|
&iomuxc {
|
|
pinctrl_button: buttongrp {
|
|
fsl,pins = <
|
|
MX6ULL_PAD_SNVS_TAMPER1__GPIO5_IO01 0x0b0b0
|
|
>;
|
|
};
|
|
|
|
pinctrl_csi1: csi1grp {
|
|
fsl,pins = <
|
|
MX6UL_PAD_CSI_PIXCLK__CSI_PIXCLK 0x1b088
|
|
MX6UL_PAD_CSI_VSYNC__CSI_VSYNC 0x1b088
|
|
MX6UL_PAD_CSI_HSYNC__CSI_HSYNC 0x1b088
|
|
MX6UL_PAD_CSI_DATA00__CSI_DATA02 0x1b088
|
|
MX6UL_PAD_CSI_DATA01__CSI_DATA03 0x1b088
|
|
MX6UL_PAD_CSI_DATA02__CSI_DATA04 0x1b088
|
|
MX6UL_PAD_CSI_DATA03__CSI_DATA05 0x1b088
|
|
MX6UL_PAD_CSI_DATA04__CSI_DATA06 0x1b088
|
|
MX6UL_PAD_CSI_DATA05__CSI_DATA07 0x1b088
|
|
MX6UL_PAD_CSI_DATA06__CSI_DATA08 0x1b088
|
|
MX6UL_PAD_CSI_DATA07__CSI_DATA09 0x1b088
|
|
>;
|
|
};
|
|
|
|
pinctrl_enet1: enet1grp {
|
|
fsl,pins = <
|
|
MX6UL_PAD_ENET1_RX_EN__ENET1_RX_EN 0x1b0b0
|
|
MX6UL_PAD_ENET1_RX_ER__ENET1_RX_ER 0x1b0b0
|
|
MX6UL_PAD_ENET1_RX_DATA0__ENET1_RDATA00 0x1b0b0
|
|
MX6UL_PAD_ENET1_RX_DATA1__ENET1_RDATA01 0x1b0b0
|
|
MX6UL_PAD_ENET1_TX_EN__ENET1_TX_EN 0x1b0b0
|
|
MX6UL_PAD_ENET1_TX_DATA0__ENET1_TDATA00 0x1b0b0
|
|
MX6UL_PAD_ENET1_TX_DATA1__ENET1_TDATA01 0x1b0b0
|
|
MX6UL_PAD_ENET1_TX_CLK__ENET1_REF_CLK1 0x4001b031
|
|
>;
|
|
};
|
|
|
|
pinctrl_enet2: enet2grp {
|
|
fsl,pins = <
|
|
MX6UL_PAD_GPIO1_IO07__ENET2_MDC 0x1b0b0
|
|
MX6UL_PAD_GPIO1_IO06__ENET2_MDIO 0x1b0b0
|
|
MX6UL_PAD_ENET2_RX_EN__ENET2_RX_EN 0x1b0b0
|
|
MX6UL_PAD_ENET2_RX_ER__ENET2_RX_ER 0x1b0b0
|
|
MX6UL_PAD_ENET2_RX_DATA0__ENET2_RDATA00 0x1b0b0
|
|
MX6UL_PAD_ENET2_RX_DATA1__ENET2_RDATA01 0x1b0b0
|
|
MX6UL_PAD_ENET2_TX_EN__ENET2_TX_EN 0x1b0b0
|
|
MX6UL_PAD_ENET2_TX_DATA0__ENET2_TDATA00 0x1b0b0
|
|
MX6UL_PAD_ENET2_TX_DATA1__ENET2_TDATA01 0x1b0b0
|
|
MX6UL_PAD_ENET2_TX_CLK__ENET2_REF_CLK2 0x4001b031
|
|
>;
|
|
};
|
|
|
|
pinctrl_gpio_leds: ledgrp {
|
|
fsl,pins = <
|
|
MX6UL_PAD_GPIO1_IO04__GPIO1_IO04 0x0b0b0
|
|
MX6UL_PAD_CSI_VSYNC__GPIO4_IO19 0x0b0b0
|
|
MX6UL_PAD_CSI_HSYNC__GPIO4_IO20 0x0b0b0
|
|
MX6UL_PAD_SNVS_TAMPER3__GPIO5_IO03 0x0b0b0
|
|
>;
|
|
};
|
|
|
|
pinctrl_lcdif: lcdif-grp {
|
|
fsl,pins = <
|
|
MX6UL_PAD_LCD_CLK__LCDIF_CLK 0x79
|
|
MX6UL_PAD_LCD_ENABLE__LCDIF_ENABLE 0x79
|
|
MX6UL_PAD_LCD_HSYNC__LCDIF_HSYNC 0x79
|
|
MX6UL_PAD_LCD_VSYNC__LCDIF_VSYNC 0x79
|
|
MX6UL_PAD_LCD_RESET__LCDIF_RESET 0x79
|
|
MX6UL_PAD_LCD_DATA00__LCDIF_DATA00 0x79
|
|
MX6UL_PAD_LCD_DATA01__LCDIF_DATA01 0x79
|
|
MX6UL_PAD_LCD_DATA02__LCDIF_DATA02 0x79
|
|
MX6UL_PAD_LCD_DATA03__LCDIF_DATA03 0x79
|
|
MX6UL_PAD_LCD_DATA04__LCDIF_DATA04 0x79
|
|
MX6UL_PAD_LCD_DATA05__LCDIF_DATA05 0x79
|
|
MX6UL_PAD_LCD_DATA06__LCDIF_DATA06 0x79
|
|
MX6UL_PAD_LCD_DATA07__LCDIF_DATA07 0x79
|
|
MX6UL_PAD_LCD_DATA08__LCDIF_DATA08 0x79
|
|
MX6UL_PAD_LCD_DATA09__LCDIF_DATA09 0x79
|
|
MX6UL_PAD_LCD_DATA10__LCDIF_DATA10 0x79
|
|
MX6UL_PAD_LCD_DATA11__LCDIF_DATA11 0x79
|
|
MX6UL_PAD_LCD_DATA12__LCDIF_DATA12 0x79
|
|
MX6UL_PAD_LCD_DATA13__LCDIF_DATA13 0x79
|
|
MX6UL_PAD_LCD_DATA14__LCDIF_DATA14 0x79
|
|
MX6UL_PAD_LCD_DATA15__LCDIF_DATA15 0x79
|
|
MX6UL_PAD_LCD_DATA16__LCDIF_DATA16 0x79
|
|
MX6UL_PAD_LCD_DATA17__LCDIF_DATA17 0x79
|
|
MX6UL_PAD_LCD_DATA18__LCDIF_DATA18 0x79
|
|
MX6UL_PAD_LCD_DATA19__LCDIF_DATA19 0x79
|
|
MX6UL_PAD_LCD_DATA20__LCDIF_DATA20 0x79
|
|
MX6UL_PAD_LCD_DATA21__LCDIF_DATA21 0x79
|
|
MX6UL_PAD_LCD_DATA22__LCDIF_DATA22 0x79
|
|
MX6UL_PAD_LCD_DATA23__LCDIF_DATA23 0x79
|
|
MX6UL_PAD_GPIO1_IO08__GPIO1_IO08 0x79
|
|
>;
|
|
};
|
|
|
|
pinctrl_reg_vmmc: usdhc1regvmmc {
|
|
fsl,pins = <
|
|
MX6UL_PAD_GPIO1_IO09__GPIO1_IO09 0x17059
|
|
>;
|
|
};
|
|
|
|
pinctrl_sai2: sai2-grp {
|
|
fsl,pins = <
|
|
MX6UL_PAD_JTAG_TCK__SAI2_RX_DATA 0x130b0
|
|
MX6UL_PAD_JTAG_TDI__SAI2_TX_BCLK 0x17088
|
|
MX6UL_PAD_JTAG_TDO__SAI2_TX_SYNC 0x17088
|
|
MX6UL_PAD_JTAG_TRST_B__SAI2_TX_DATA 0x120b0
|
|
>;
|
|
};
|
|
|
|
pinctrl_uart1: uart1grp {
|
|
fsl,pin = <
|
|
MX6UL_PAD_UART1_TX_DATA__UART1_DCE_TX 0x1b0b1
|
|
MX6UL_PAD_UART1_RX_DATA__UART1_DCE_RX 0x1b0b1
|
|
>;
|
|
};
|
|
|
|
pinctrl_uart2: uart2grp {
|
|
fsl,pin = <
|
|
MX6UL_PAD_UART2_TX_DATA__UART2_DCE_TX 0x1b0b1
|
|
MX6UL_PAD_UART2_RX_DATA__UART2_DCE_RX 0x1b0b1
|
|
MX6UL_PAD_UART2_CTS_B__UART2_DCE_CTS 0x1b0b1
|
|
MX6UL_PAD_UART2_RTS_B__UART2_DCE_RTS 0x1b0b1
|
|
>;
|
|
};
|
|
|
|
pinctrl_uart3: uart3grp {
|
|
fsl,pin = <
|
|
MX6UL_PAD_UART3_TX_DATA__UART3_DCE_TX 0x1b0b1
|
|
MX6UL_PAD_UART3_RX_DATA__UART3_DCE_RX 0x1b0b1
|
|
MX6UL_PAD_UART3_CTS_B__UART3_DCE_CTS 0x1b0b1
|
|
MX6UL_PAD_UART3_RTS_B__UART3_DCE_RTS 0x1b0b1
|
|
>;
|
|
};
|
|
|
|
pinctrl_uart4: uart4grp {
|
|
fsl,pin = <
|
|
MX6UL_PAD_UART4_TX_DATA__UART4_DCE_TX 0x1b0b1
|
|
MX6UL_PAD_UART4_RX_DATA__UART4_DCE_RX 0x1b0b1
|
|
>;
|
|
};
|
|
|
|
pinctrl_uart5: uart5grp {
|
|
fsl,pin = <
|
|
MX6UL_PAD_UART5_TX_DATA__UART5_DCE_TX 0x1b0b1
|
|
MX6UL_PAD_UART5_RX_DATA__UART5_DCE_RX 0x1b0b1
|
|
>;
|
|
};
|
|
|
|
pinctrl_usb_otg1_id: usbotg1idgrp {
|
|
fsl,pin = <
|
|
MX6UL_PAD_GPIO1_IO00__ANATOP_OTG1_ID 0x17059
|
|
>;
|
|
};
|
|
|
|
pinctrl_usdhc1: usdhc1grp {
|
|
fsl,pins = <
|
|
MX6UL_PAD_SD1_CMD__USDHC1_CMD 0x17059
|
|
MX6UL_PAD_SD1_CLK__USDHC1_CLK 0x10059
|
|
MX6UL_PAD_SD1_DATA0__USDHC1_DATA0 0x17059
|
|
MX6UL_PAD_SD1_DATA1__USDHC1_DATA1 0x17059
|
|
MX6UL_PAD_SD1_DATA2__USDHC1_DATA2 0x17059
|
|
MX6UL_PAD_SD1_DATA3__USDHC1_DATA3 0x17059
|
|
>;
|
|
};
|
|
|
|
pinctrl_usdhc1_100mhz: usdhc1grp100mhz {
|
|
fsl,pins = <
|
|
MX6UL_PAD_SD1_CMD__USDHC1_CMD 0x170b9
|
|
MX6UL_PAD_SD1_CLK__USDHC1_CLK 0x100b9
|
|
MX6UL_PAD_SD1_DATA0__USDHC1_DATA0 0x170b9
|
|
MX6UL_PAD_SD1_DATA1__USDHC1_DATA1 0x170b9
|
|
MX6UL_PAD_SD1_DATA2__USDHC1_DATA2 0x170b9
|
|
MX6UL_PAD_SD1_DATA3__USDHC1_DATA3 0x170b9
|
|
>;
|
|
};
|
|
|
|
pinctrl_usdhc1_200mhz: usdhc1grp200mhz {
|
|
fsl,pins = <
|
|
MX6UL_PAD_SD1_CMD__USDHC1_CMD 0x170f9
|
|
MX6UL_PAD_SD1_CLK__USDHC1_CLK 0x100f9
|
|
MX6UL_PAD_SD1_DATA0__USDHC1_DATA0 0x170f9
|
|
MX6UL_PAD_SD1_DATA1__USDHC1_DATA1 0x170f9
|
|
MX6UL_PAD_SD1_DATA2__USDHC1_DATA2 0x170f9
|
|
MX6UL_PAD_SD1_DATA3__USDHC1_DATA3 0x170f9
|
|
>;
|
|
};
|
|
|
|
pinctrl_usdhc1_cd: usdhc1cd {
|
|
fsl,pins = <
|
|
MX6UL_PAD_UART1_RTS_B__GPIO1_IO19 0x17059
|
|
>;
|
|
};
|
|
};
|