mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-12-02 01:19:49 +00:00
68e0d92d33
In case the i.MX8MP DHCOM rev.100 has been populated on the PDK3 carrier board, the on-SoM PHY PHYAD1 signal has been pulled high by the carrier board and changed the PHY MDIO address from 5 to 7. This has been fixed on production rev.200 SoM by additional buffer on the SoM PHYAD/LED signals, remove the workaround. Signed-off-by: Marek Vasut <marex@denx.de>
317 lines
6.3 KiB
Text
317 lines
6.3 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>;
|
|
};
|
|
};
|
|
};
|
|
|
|
&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
|
|
>;
|
|
};
|
|
};
|