mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-12-22 03:03:05 +00:00
3a125806f1
Add support for DH electronics i.MX8M Plus DHCOM SoM on PDK3 carrier board. Currently supported are serial console, EQoS and FEC ethernets, eMMC, SD, SPI NOR and USB 3.0 host. Signed-off-by: Marek Vasut <marex@denx.de>
321 lines
6.4 KiB
Text
321 lines
6.4 KiB
Text
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
|
/*
|
|
* Copyright (C) 2023 Marek Vasut <marex@denx.de>
|
|
*
|
|
* DHCOM iMX8MP variant:
|
|
* DHCM-iMX8ML8-C160-R409-F1638-SPI16-GE-CAN2-SD-RTC-WBTA-ADC-T-RGB-CSI2-HS-I-01D2
|
|
* DHCOM PCB number: 660-100 or newer
|
|
* PDK3 PCB number: 669-100 or newer
|
|
*/
|
|
|
|
/dts-v1/;
|
|
|
|
#include <dt-bindings/leds/common.h>
|
|
#include <dt-bindings/phy/phy-imx8-pcie.h>
|
|
#include "imx8mp-dhcom-som.dtsi"
|
|
|
|
/ {
|
|
model = "DH electronics i.MX8M Plus DHCOM Premium Developer Kit (3)";
|
|
compatible = "dh,imx8mp-dhcom-pdk3", "dh,imx8mp-dhcom-som",
|
|
"fsl,imx8mp";
|
|
|
|
chosen {
|
|
stdout-path = &uart1;
|
|
};
|
|
|
|
clk_ext_audio_codec: clock-codec {
|
|
#clock-cells = <0>;
|
|
clock-frequency = <24000000>;
|
|
compatible = "fixed-clock";
|
|
};
|
|
|
|
clk_xtal25: clk-xtal25 {
|
|
compatible = "fixed-clock";
|
|
#clock-cells = <0>;
|
|
clock-frequency = <25000000>;
|
|
};
|
|
|
|
connector {
|
|
compatible = "usb-c-connector";
|
|
label = "USB-C";
|
|
data-role = "dual";
|
|
|
|
ports {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
port@0 {
|
|
reg = <0>;
|
|
|
|
usb_c_0_hs_ep: endpoint {
|
|
remote-endpoint = <&dwc3_0_hs_ep>;
|
|
};
|
|
};
|
|
|
|
port@1 {
|
|
reg = <1>;
|
|
|
|
usb_c_0_ss_ep: endpoint {
|
|
remote-endpoint = <&ptn5150_in_ep>;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
gpio-keys {
|
|
compatible = "gpio-keys";
|
|
|
|
button-0 {
|
|
gpios = <&gpio1 9 GPIO_ACTIVE_LOW>; /* GPIO A */
|
|
label = "TA1-GPIO-A";
|
|
linux,code = <KEY_A>;
|
|
pinctrl-0 = <&pinctrl_dhcom_a>;
|
|
pinctrl-names = "default";
|
|
wakeup-source;
|
|
};
|
|
|
|
button-1 {
|
|
gpios = <&gpio1 8 GPIO_ACTIVE_LOW>; /* GPIO B */
|
|
label = "TA2-GPIO-B";
|
|
linux,code = <KEY_B>;
|
|
pinctrl-0 = <&pinctrl_dhcom_b>;
|
|
pinctrl-names = "default";
|
|
wakeup-source;
|
|
};
|
|
|
|
button-2 {
|
|
gpios = <&gpio5 2 GPIO_ACTIVE_LOW>; /* GPIO C */
|
|
label = "TA3-GPIO-C";
|
|
linux,code = <KEY_C>;
|
|
pinctrl-0 = <&pinctrl_dhcom_c>;
|
|
pinctrl-names = "default";
|
|
wakeup-source;
|
|
};
|
|
|
|
button-3 {
|
|
gpios = <&gpio5 22 GPIO_ACTIVE_LOW>; /* GPIO E */
|
|
label = "TA4-GPIO-E";
|
|
linux,code = <KEY_E>;
|
|
pinctrl-0 = <&pinctrl_dhcom_e>;
|
|
pinctrl-names = "default";
|
|
wakeup-source;
|
|
};
|
|
};
|
|
|
|
led {
|
|
compatible = "gpio-leds";
|
|
|
|
led-0 {
|
|
color = <LED_COLOR_ID_GREEN>;
|
|
default-state = "off";
|
|
function = LED_FUNCTION_INDICATOR;
|
|
function-enumerator = <0>;
|
|
gpios = <&gpio4 27 GPIO_ACTIVE_HIGH>; /* GPIO D */
|
|
pinctrl-0 = <&pinctrl_dhcom_d>;
|
|
pinctrl-names = "default";
|
|
};
|
|
|
|
led-1 {
|
|
color = <LED_COLOR_ID_GREEN>;
|
|
default-state = "off";
|
|
function = LED_FUNCTION_INDICATOR;
|
|
function-enumerator = <1>;
|
|
gpios = <&gpio5 23 GPIO_ACTIVE_HIGH>; /* GPIO F */
|
|
pinctrl-0 = <&pinctrl_dhcom_f>;
|
|
pinctrl-names = "default";
|
|
};
|
|
|
|
led-2 {
|
|
color = <LED_COLOR_ID_GREEN>;
|
|
default-state = "off";
|
|
function = LED_FUNCTION_INDICATOR;
|
|
function-enumerator = <2>;
|
|
gpios = <&gpio1 0 GPIO_ACTIVE_HIGH>; /* GPIO G */
|
|
pinctrl-0 = <&pinctrl_dhcom_g>;
|
|
pinctrl-names = "default";
|
|
};
|
|
|
|
led-3 {
|
|
color = <LED_COLOR_ID_GREEN>;
|
|
default-state = "off";
|
|
function = LED_FUNCTION_INDICATOR;
|
|
function-enumerator = <3>;
|
|
gpios = <&gpio1 5 GPIO_ACTIVE_HIGH>; /* GPIO I */
|
|
pinctrl-0 = <&pinctrl_dhcom_i>;
|
|
pinctrl-names = "default";
|
|
};
|
|
};
|
|
|
|
reg_avdd: regulator-avdd { /* AUDIO_VDD */
|
|
compatible = "regulator-fixed";
|
|
regulator-always-on;
|
|
regulator-min-microvolt = <3300000>;
|
|
regulator-max-microvolt = <3300000>;
|
|
regulator-name = "AUDIO_VDD";
|
|
};
|
|
};
|
|
|
|
&i2c5 {
|
|
i2cmux@70 {
|
|
compatible = "nxp,pca9540";
|
|
reg = <0x70>;
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
i2cmuxed0: i2c@0 {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
reg = <0>;
|
|
|
|
typec@3d {
|
|
compatible = "nxp,ptn5150";
|
|
reg = <0x3d>;
|
|
interrupt-parent = <&gpio4>;
|
|
interrupts = <25 IRQ_TYPE_EDGE_FALLING>;
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&pinctrl_ptn5150>;
|
|
status = "okay";
|
|
|
|
ports {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
port@0 {
|
|
reg = <0>;
|
|
|
|
ptn5150_in_ep: endpoint {
|
|
remote-endpoint = <&usb_c_0_ss_ep>;
|
|
};
|
|
};
|
|
|
|
port@1 {
|
|
reg = <1>;
|
|
|
|
ptn5150_out_ep: endpoint {
|
|
remote-endpoint = <&dwc3_0_ss_ep>;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
power-sensor@40 {
|
|
compatible = "ti,ina238";
|
|
reg = <0x40>;
|
|
shunt-resistor = <20000>; /* 0.02 R */
|
|
ti,shunt-gain = <1>; /* Drop cca. 40mV */
|
|
};
|
|
|
|
eeprom_board: eeprom@54 {
|
|
compatible = "atmel,24c04";
|
|
pagesize = <16>;
|
|
reg = <0x54>;
|
|
};
|
|
|
|
pcieclk: clk@6b {
|
|
compatible = "skyworks,si52144";
|
|
reg = <0x6b>;
|
|
clocks = <&clk_xtal25>;
|
|
#clock-cells = <1>;
|
|
};
|
|
};
|
|
|
|
i2cmuxed1: i2c@1 { /* HDMI DDC I2C */
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
reg = <1>;
|
|
};
|
|
};
|
|
};
|
|
|
|
ðphy0g {
|
|
reg = <7>;
|
|
};
|
|
|
|
&fec { /* Second ethernet */
|
|
pinctrl-0 = <&pinctrl_fec_rgmii>;
|
|
phy-handle = <ðphypdk>;
|
|
phy-mode = "rgmii-id";
|
|
|
|
mdio {
|
|
ethphypdk: ethernet-phy@7 { /* Micrel KSZ9131RNXI */
|
|
compatible = "ethernet-phy-id0022.1642",
|
|
"ethernet-phy-ieee802.3-c22";
|
|
interrupt-parent = <&gpio4>;
|
|
interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
|
|
pinctrl-0 = <&pinctrl_ethphy1>;
|
|
pinctrl-names = "default";
|
|
reg = <7>;
|
|
reset-assert-us = <1000>;
|
|
/* RESET_N signal rise time ~100ms */
|
|
reset-deassert-us = <120000>;
|
|
reset-gpios = <&gpio4 2 GPIO_ACTIVE_LOW>;
|
|
status = "okay";
|
|
};
|
|
};
|
|
};
|
|
|
|
&flexcan1 {
|
|
status = "okay";
|
|
};
|
|
|
|
&pcie_phy {
|
|
clocks = <&pcieclk 1>;
|
|
clock-names = "ref";
|
|
fsl,refclk-pad-mode = <IMX8_PCIE_REFCLK_PAD_INPUT>;
|
|
status = "okay";
|
|
};
|
|
|
|
&pcie {
|
|
fsl,max-link-speed = <3>;
|
|
reset-gpio = <&gpio1 6 GPIO_ACTIVE_LOW>;
|
|
status = "okay";
|
|
};
|
|
|
|
&usb_dwc3_0 {
|
|
usb-role-switch;
|
|
|
|
port {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
dwc3_0_hs_ep: endpoint@0 {
|
|
reg = <0>;
|
|
remote-endpoint = <&usb_c_0_hs_ep>;
|
|
};
|
|
|
|
dwc3_0_ss_ep: endpoint@1 {
|
|
reg = <1>;
|
|
remote-endpoint = <&ptn5150_out_ep>;
|
|
};
|
|
};
|
|
};
|
|
|
|
&usb3_1 {
|
|
fsl,disable-port-power-control;
|
|
fsl,permanently-attached;
|
|
};
|
|
|
|
&usb_dwc3_1 {
|
|
/* This port has USB5734 Hub connected to it, PWR/OC pins are unused */
|
|
/delete-property/ pinctrl-names;
|
|
/delete-property/ pinctrl-0;
|
|
};
|
|
|
|
&iomuxc {
|
|
/*
|
|
* GPIO_A,B,C,E are connected to buttons.
|
|
* GPIO_D,F,G,I are connected to LEDs.
|
|
* GPIO_H is connected to USB Hub RESET_N.
|
|
* GPIO_M is connected to CLKOUT2.
|
|
*/
|
|
pinctrl-0 = <&pinctrl_hog_base
|
|
&pinctrl_dhcom_h &pinctrl_dhcom_j &pinctrl_dhcom_k
|
|
&pinctrl_dhcom_l
|
|
&pinctrl_dhcom_int>;
|
|
|
|
pinctrl_ptn5150: ptn5150grp {
|
|
fsl,pins = <
|
|
MX8MP_IOMUXC_SAI2_TXC__GPIO4_IO25 0x40000000
|
|
>;
|
|
};
|
|
};
|