Skip to content

Commit

Permalink
ARM: dts: imx6ull-dhcom: Add DH electronics DHCOM i.MX6ULL SoM and PD…
Browse files Browse the repository at this point in the history
…K2 board

Add support for DH electronics DHCOM SoM and PDK2 rev. 400 carrier
board. This is an SoM with i.MX6ULL and an evaluation kit. The
baseboard provides Ethernet, UART, USB, CAN and optional display.

Signed-off-by: Christoph Niedermaier <cniedermaier@dh-electronics.com>
Reviewed-by: Marek Vasut <marex@denx.de>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
  • Loading branch information
Christoph Niedermaier authored and Shawn Guo committed Jan 30, 2023
1 parent 0e3e194 commit 611b6c8
Show file tree
Hide file tree
Showing 4 changed files with 1,111 additions and 0 deletions.
1 change: 1 addition & 0 deletions arch/arm/boot/dts/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -741,6 +741,7 @@ dtb-$(CONFIG_SOC_IMX6UL) += \
imx6ull-colibri-wifi-eval-v3.dtb \
imx6ull-colibri-wifi-iris.dtb \
imx6ull-colibri-wifi-iris-v2.dtb \
imx6ull-dhcom-pdk2.dtb \
imx6ull-jozacp.dtb \
imx6ull-kontron-bl.dtb \
imx6ull-myir-mys-6ulx-eval.dtb \
Expand Down
222 changes: 222 additions & 0 deletions arch/arm/boot/dts/imx6ull-dhcom-pdk2.dts
Original file line number Diff line number Diff line change
@@ -0,0 +1,222 @@
// SPDX-License-Identifier: GPL-2.0+ OR BSD-3-Clause
/*
* Copyright (C) 2023 DH electronics GmbH
*
* DHCOM iMX6ULL variant:
* DHCM-iMX6ULL-C080-R051-F0409-SPI-E2-CAN2-RTC-WBT-ADC-I-01D2
* DHCOR PCB number: 578-200 or newer
* DHCOM PCB number: 579-200 or newer
* PDK2 PCB number: 516-400 or newer
*/
/dts-v1/;

#include "imx6ull-dhcom-som.dtsi"

/ {
model = "DH electronics i.MX6ULL DHCOM on Premium Developer Kit (2)";
compatible = "dh,imx6ull-dhcom-pdk2", "dh,imx6ull-dhcom-som",
"dh,imx6ull-dhcor-som", "fsl,imx6ull";

clk_ext_audio_codec: clock-codec {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <24000000>;
};

display_bl: display-bl {
compatible = "pwm-backlight";
brightness-levels = <0 16 22 30 40 55 75 102 138 188 255>;
default-brightness-level = <8>;
enable-gpios = <&gpio5 8 GPIO_ACTIVE_HIGH>; /* GPIO G */
power-supply = <&reg_panel_3v3>;
pwms = <&pwm1 0 50000 PWM_POLARITY_INVERTED>;
};

gpio-keys {
compatible = "gpio-keys";

button-0 {
gpios = <&gpio5 0 GPIO_ACTIVE_LOW>; /* GPIO A */
label = "TA1-GPIO-A";
linux,code = <KEY_A>;
wakeup-source;
};

button-1 {
gpios = <&gpio5 1 GPIO_ACTIVE_LOW>; /* GPIO B */
label = "TA2-GPIO-B";
linux,code = <KEY_B>;
wakeup-source;
};

button-2 {
gpios = <&gpio5 2 GPIO_ACTIVE_LOW>; /* GPIO C */
label = "TA3-GPIO-C";
linux,code = <KEY_C>;
wakeup-source;
};

button-3 {
gpios = <&gpio5 3 GPIO_ACTIVE_LOW>; /* GPIO D */
label = "TA4-GPIO-D";
linux,code = <KEY_D>;
wakeup-source;
};
};

led: led {
compatible = "gpio-leds";

/*
* Disable PDK2 LED5, because GPIO E is
* already used as touch interrupt.
*/
led-0 {
color = <LED_COLOR_ID_GREEN>;
default-state = "off";
function = LED_FUNCTION_INDICATOR;
function-enumerator = <5>; /* PDK2 LED5 */
gpios = <&gpio5 4 GPIO_ACTIVE_HIGH>; /* GPIO E */
status = "disabled";
};

led-1 {
color = <LED_COLOR_ID_GREEN>;
default-state = "off";
function = LED_FUNCTION_INDICATOR;
function-enumerator = <6>; /* PDK2 LED6 */
gpios = <&gpio5 7 GPIO_ACTIVE_HIGH>; /* GPIO F */
};

/*
* Disable PDK2 LED7, because GPIO H is
* already used for WiFi pin WL_REG_ON.
*/
led-2 {
color = <LED_COLOR_ID_GREEN>;
default-state = "off";
function = LED_FUNCTION_INDICATOR;
function-enumerator = <7>; /* PDK2 LED7 */
gpios = <&gpio5 9 GPIO_ACTIVE_HIGH>; /* GPIO H */
status = "disabled";
};

/*
* Disable PDK2 LED8, because GPIO I is
* already used for BT pin BT_REG_ON.
*/
led-3 {
color = <LED_COLOR_ID_GREEN>;
default-state = "off";
function = LED_FUNCTION_INDICATOR;
function-enumerator = <8>; /* PDK2 LED8 */
gpios = <&gpio1 18 GPIO_ACTIVE_HIGH>; /* GPIO I */
status = "disabled";
};
};

panel {
compatible = "edt,etm0700g0edh6";
backlight = <&display_bl>;
power-supply = <&reg_panel_3v3>;

port {
lcd_panel_in: endpoint {
remote-endpoint = <&lcd_display_out>;
};
};
};

/* Filtered supply voltage */
reg_pdk2_24v: regulator-pdk2-24v {
compatible = "regulator-fixed";
regulator-always-on;
regulator-max-microvolt = <24000000>;
regulator-min-microvolt = <24000000>;
regulator-name = "24V_PDK2";
};

/* PDK2 U35 */
reg_pdk2_3v3: regulator-pdk2-3v3 {
compatible = "regulator-fixed";
regulator-always-on;
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-name = "3V3_PDK2";
vin-supply = <&reg_pdk2_24v>;
};

/* 560-200 U1 */
reg_panel_3v3: regulator-panel-3v3 {
compatible = "regulator-fixed";
regulator-always-on;
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-name = "3V3_PANEL";
vin-supply = <&reg_pdk2_24v>;
};

sound {
compatible = "simple-audio-card";
simple-audio-card,bitclock-master = <&dailink_master>;
simple-audio-card,format = "i2s";
simple-audio-card,frame-master = <&dailink_master>;
simple-audio-card,name = "sgtl5000";
simple-audio-card,routing =
"MIC_IN", "Mic Jack",
"Mic Jack", "Mic Bias",
"LINE_IN", "Line In Jack",
"Headphone Jack", "HP_OUT";
simple-audio-card,widgets =
"Microphone", "Mic Jack",
"Line", "Line In Jack",
"Headphone", "Headphone Jack";

simple-audio-card,cpu {
sound-dai = <&sai2>;
};

dailink_master: simple-audio-card,codec {
clocks = <&clk_ext_audio_codec>;
sound-dai = <&sgtl5000>;
};
};
};

/* DHCOM I2C1 */
&i2c2 {
sgtl5000: audio-codec@a {
compatible = "fsl,sgtl5000";
reg = <0x0a>;
#sound-dai-cells = <0>;
clocks = <&clk_ext_audio_codec>;
VDDA-supply = <&reg_pdk2_3v3>;
VDDIO-supply = <&reg_pdk2_3v3>;
};

touchscreen@38 {
compatible = "edt,edt-ft5406";
reg = <0x38>;
interrupt-parent = <&gpio5>;
interrupts = <4 IRQ_TYPE_EDGE_FALLING>; /* GPIO E */
power-supply = <&reg_panel_3v3>;
};
};

&lcdif {
status = "okay";

port {
lcd_display_out: endpoint {
remote-endpoint = <&lcd_panel_in>;
};
};
};

&pwm1 {
status = "okay";
};

&sai2 {
status = "okay";
};
Loading

0 comments on commit 611b6c8

Please sign in to comment.