diff --git a/arch/arm64/boot/dts/seconorth/Makefile b/arch/arm64/boot/dts/seconorth/Makefile index ed7bee276f469e16cf49c05bd4ec6d7f9af73e80..a5719e766ef5307f68777016db23ebbcbdc7aa43 100644 --- a/arch/arm64/boot/dts/seconorth/Makefile +++ b/arch/arm64/boot/dts/seconorth/Makefile @@ -1,9 +1,13 @@ # SPDX-License-Identifier: GPL-2.0 dtb-y += \ - seco-tanaro-atm0700l61ct.dtb \ - seco-tanaro-fg0700w0dsswagl1.dtb \ - seco-tanaro-qp_070wsvgamlli1d.dtb \ + seconorth-tanaro-atm0700l61ct.dts \ + seconorth-tanaro-fg0700w0dsswagl1.dts \ + seconorth-tanaro-g121xcett122e.dts \ + seconorth-tanaro-qp_070wsvgamlli1d.dts \ + seconorth-trizeps8plus-dual-espresso.dts \ + seconorth-trizeps8plus-hdmi-gpu.dts \ + seconorth-trizeps8plus-pconxs_v3-atm0700.dts \ always := $(dtb-y) clean-files := *.dtb diff --git a/arch/arm64/boot/dts/seconorth/dual-espresso.dtsi b/arch/arm64/boot/dts/seconorth/dual-espresso.dtsi new file mode 100644 index 0000000000000000000000000000000000000000..673e1dcf65153f5ded9135deb0e29eef15306bd0 --- /dev/null +++ b/arch/arm64/boot/dts/seconorth/dual-espresso.dtsi @@ -0,0 +1,576 @@ +/* + * Copyright 2022 SECO Northern Europe GmbH + * + */ + +/* +Remarks: + - Use ETHERNET_ONLY_100MBIT for dual espresso board +Defines: +*/ + +#include <dt-bindings/leds/common.h> + +/ { + reg_vin_fused: vin_fused { + compatible = "regulator-fixed"; + regulator-name = "VIN_FUSED"; + regulator-min-microvolt = <12000000>; + /* max should be 24V but the fixed regulator driver does + not allow a range here */ + regulator-max-microvolt = <12000000>; + regulator-always-on; + }; + + reg_board_5v: 5v { + compatible = "regulator-fixed"; + regulator-name = "+5V"; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + regulator-always-on; + vin-supply = <®_vin_fused>; + }; + + reg_3v3: 3v3 { + compatible = "regulator-fixed"; + regulator-name = "+3V3"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-always-on; + vin-supply = <®_vin_fused>; + }; + + reg_display_pwr: display-pwr { + compatible = "regulator-fixed"; + regulator-name = "DISPLAY PWCTRL"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-always-on; + vin-supply = <®_vin_fused>; + }; + + reg_usbhost_pwr: usbhost-pwr { + compatible = "regulator-fixed"; + regulator-name = "USBHOST PWR"; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_usbhost_enable>; + gpio = <spin129_gpio 0>; + enable-active-high; + regulator-always-on; + vin-supply = <®_board_5v>; + }; + + reg_usbotg_pwr: usbotg-pwr { + compatible = "regulator-fixed"; + regulator-name = "USBOTG PWR"; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_usbotg_enable>; + gpio = <spin127_gpio 0>; + enable-active-high; + regulator-always-on; + vin-supply = <®_board_5v>; + }; + +}; + +/ { + backlight2: backlight2 { + compatible = "pwm-legacy-backlight"; + pwms = <&pwm4 0 100000 0>; + pinctrl-0 = <&pinctrl_backlight2_enable>; + enable-gpios = <spin63_gpio GPIO_ACTIVE_HIGH>; + brightness-levels = < 0 1 2 3 4 5 6 7 8 9 + 10 11 12 13 14 15 16 17 18 19 + 20 21 22 23 24 25 26 27 28 29 + 30 31 32 33 34 35 36 37 38 39 + 40 41 42 43 44 45 46 47 48 49 + 50 51 52 53 54 55 56 57 58 59 + 60 61 62 63 64 65 66 67 68 69 + 70 71 72 73 74 75 76 77 78 79 + 80 81 82 83 84 85 86 87 88 89 + 90 91 92 93 94 95 96 97 98 99 + 100>; + default-brightness-level = <80>; + status = "okay"; + }; + + panel_lvds1: panel1 { + status = "okay"; + compatible = "panel-lvds"; + data-mapping = "vesa-24"; + width-mm = <154>; + height-mm = <86>; + backlight = <&backlight>; + enable-gpios = <spin100_gpio GPIO_ACTIVE_HIGH>; + + panel-timing { + clock-frequency = <51206400>; + hactive = <1024>; + vactive = <600>; + hfront-porch = <159>; + hsync-len = <2>; + hback-porch = <159>; + vfront-porch = <17>; + vsync-len = <1>; + vback-porch = <17>; + }; + + port { + panel_lvds1_in: endpoint { + remote-endpoint = <&lvds1_out>; + }; + }; + }; + + panel_lvds2: panel2 { + status = "okay"; + compatible = "panel-lvds"; + data-mapping = "vesa-24"; + width-mm = <154>; + height-mm = <86>; + backlight = <&backlight2>; + enable-gpios = <spin67_gpio GPIO_ACTIVE_HIGH>; + + panel-timing { + clock-frequency = <51206400>; + hactive = <1024>; + vactive = <600>; + hfront-porch = <159>; + hsync-len = <2>; + hback-porch = <159>; + vfront-porch = <17>; + vsync-len = <1>; + vback-porch = <17>; + }; + + port { + panel_lvds2_in: endpoint { + remote-endpoint = <&dsi_bridge_out>; + }; + }; + }; + + buzzer: buzzer { + compatible = "pwm-beeper"; + status = "okay"; + pwms = <&pwm3 0 416666>; + beeper-hz = <2400>; + }; + + leds: leds { + compatible = "gpio-leds"; + status = "okay"; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_leds>; + + status { + function = LED_FUNCTION_STATUS; + gpios = <&gpio4 30 0>; + color = <LED_COLOR_ID_YELLOW>; + linux,default-trigger = "heartbeat"; + default-state = "on"; + }; + + debug { + function = LED_FUNCTION_STATUS; + gpios = <&gpio4 29 0>; + color = <LED_COLOR_ID_RED>; + panic-indicator = <1>; + default-state = "off"; + }; + + error { + function = LED_FUNCTION_FAULT; + gpios = <&gpio4 28 0>; + color = <LED_COLOR_ID_RED>; + panic-indicator = <1>; + default-state = "off"; + }; + }; +}; + +&backlight { + status = "okay"; + pinctrl-0 = <&pinctrl_backlight_enable>; + enable-gpios = <spin73_gpio GPIO_ACTIVE_HIGH>; +}; + +&iomuxc { + + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_hog>; + + pinctrl_hog: hoggrp { + fsl,pins = < + SPIN100_GPIO1_IO05 PAD_GPIO /* LCD1_VCC_ON */ + SPIN67_GPIO4_IO08 PAD_GPIO /* LCD2_VCC_ON */ + >; + }; + + pinctrl_i2c2_sn65dsi84_en: sn65dsi84_iogrp { + fsl,pins = < SPIN53_GPIO4_IO03 PAD_GPIO >; /* SODIMM Pin 53 MIPI_DSI_EN*/ + }; + + pinctrl_i2c6: i2c6grp { + fsl,pins = < + SPIN34_I2C6_SCL 0x400001c3 + SPIN32_I2C6_SDA 0x400001c3 + >; + }; + + pinctrl_backlight_pwm1: pwm-backlight { + fsl,pins = < SPIN77_PWM1_OUT PAD_GPIO >; /* BACKLIGHT_PWM */ + }; + + pinctrl_backlight2_pwm4: pwm-backlight2 { + fsl,pins = < SPIN69_PWM4_OUT PAD_GPIO >; /* BACKLIGHT2_PWM */ + }; + + pinctrl_backlight_enable: backlight-enable { + fsl,pins = < SPIN73_GPIO PAD_GPIO >; /* BACKLIGHT_ENABLE SODIMM Pin 73 */ + }; + + pinctrl_backlight2_enable: backlight-enable2 { + fsl,pins = < SPIN63_GPIO PAD_GPIO >; /* BACKLIGHT_ENABLE SODIMM Pin 63 */ + }; + + pinctrl_ctouch1: ctouch1 { + fsl,pins = < SPIN136_GPIO3_IO15 PAD_GPIO /* TOUCH_RES_R */ + SPIN45_GPIO3_IO04 PAD_GPIO >; /* TOUCH_INT_R */ + }; + + pinctrl_ctouch2: ctouch2 { + fsl,pins = < SPIN65_GPIO4_IO07 PAD_GPIO /* TOUCH_RES_L */ + SPIN102_GPIO1_IO08 PAD_GPIO >; /* TOUCH_INT_L */ + }; + + pinctrl_usbhost_enable: usbhost-enable { + fsl,pins = < SPIN129_GPIO PAD_GPIO >; /* USBH_PWR */ + }; + + pinctrl_usbotg_enable: usbotg-enable { + fsl,pins = < SPIN127_GPIO PAD_GPIO >; /* USBOTG_PWR */ + }; + + pinctrl_buzzer_pwm3: pwm-buzzer { + fsl,pins = <SPIN161_PWM3_OUT PAD_GPIO>; + }; + + pinctrl_ios: iosgrp { + fsl,pins = < + SPIN125_GPIO1_IO06 0x106 /* RTC_INT */ + SPIN43_GPIO1_IO07 0x146 /* LED_BUTTON */ + SPIN55_GPIO3_IO21 0x146 /* DIG_IN1 */ + SPIN57_GPIO4_IO04 0x146 /* DIG_IN2 */ + SPIN79_GPIO5_IO00 0x146 /* PW_FAIL */ + SPIN146_GPIO5_IO01 0x106 /* STBY_EN */ + >; + }; + + pinctrl_leds: ledsgrp { + fsl,pins = < + SPIN184_GPIO4_IO30 0x106 /* LED_OP_STATES */ + SPIN186_GPIO4_IO29 0x106 /* LED_DEBUG */ + SPIN188_GPIO4_IO28 0x106 /* LED_ERROR */ + >; + }; +}; + +&i2c1 { + egalaxi2c_1: eeti1@2a { /* Touch Pad 1 (R) */ + reg = <0x2a>; + compatible = "eeti,exc3000_ts"; // out of tree driver + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_ctouch1>; + interrupt-parent = <spin45_gpio_parent>; + interrupts = <spin45_gpio_pin IRQ_TYPE_LEVEL_HIGH>; + irq-gpio = <spin45_gpio GPIO_ACTIVE_LOW>; + reset-gpio = <spin136_gpio GPIO_ACTIVE_LOW>; + reset-low-active = <1>; + irq-low-active = <1>; + status = "okay"; + }; +}; + +&i2c2 { + rtc@51 { + compatible = "nxp,pcf8563"; + reg = <0x51>; + status = "disabled"; + }; + + rtc:rtc@52 { + compatible = "microcrystal,rv3028"; + reg = <0x52>; + trickle-diode-disable; + status = "okay"; + }; + + sn65dsi84@2c { + status = "okay"; + compatible = "ti,sn65dsi83"; + reg = <0x2c>; + enable-gpios =<spin53_gpio GPIO_ACTIVE_HIGH>; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_i2c2_sn65dsi84_en>; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + dsi_bridge_in: endpoint { + remote-endpoint = <&mipi_dsi_out>; + data-lanes = <1 2 3 4>; + }; + }; + + port@2 { + reg = <2>; + dsi_bridge_out: endpoint { + remote-endpoint = <&panel_lvds2_in>; + }; + }; + }; + }; + + tlc59208@20 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "ti,tlc59108"; + reg = <0x20>; + status = "okay"; + + /* + * The LED sub-system supports multi-color LEDs, + * however the tlc591xx driver doesn't seem to + * work properly with the below configuration. + * Maybe, we can conduct further test with the + * multi-color configuration? + */ + + /* + multi_led { + #address-cells = <1>; + #size-cells = <0>; + + color = <LED_COLOR_ID_RGB>; + function = LED_FUNCTION_STATUS; + + blue@0 { + reg = <0>; + color = <LED_COLOR_ID_BLUE>; + }; + + green@1 { + reg = <1>; + color = <LED_COLOR_ID_GREEN>; + }; + + red@2 { + reg = <2>; + color = <LED_COLOR_ID_RED>; + }; + }; + */ + + right_light_bar_blue@0 { + label = "right_light_bar:blue:status"; + reg = <0x0>; + }; + + right_light_bar_green@1 { + label = "right_light_bar:green:status"; + reg = <0x1>; + }; + + right_light_bar_red@2 { + label = "right_light_bar:red:status"; + reg = <0x2>; + }; + + left_light_bar_blue@3 { + label = "left_light_bar:blue:status"; + reg = <0x3>; + }; + + left_light_bar_green@4 { + label = "left_light_bar:green:status"; + reg = <0x4>; + }; + + left_light_bar_red@5 { + label = "left_light_bar:red:status"; + reg = <0x5>; + }; + + /* DNP */ + touch_bg@6 { + label = "touch_bg:white:power"; + reg = <0x6>; + }; + + /* + * The power enable pin of the simple touch + * button is connected to the LED driver. + * To function, the power enable needs to + * be activated before reading of the + * interrupt pin. + */ + touch_enable@7 { + label = "touch_enable::power"; + reg = <0x7>; + }; + }; +}; + +&i2c6 { /* I2C on SODIMM 32,34 */ + clock-frequency = <100000>; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_i2c6>; + status = "okay"; + + egalaxi2c_2: eeti2@2a { /* Touch Pad 2 (L) */ + reg = <0x2a>; + compatible = "eeti,exc3000_ts"; // out of tree driver + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_ctouch2>; + interrupt-parent = <spin102_gpio_parent>; + interrupts = <spin102_gpio_pin IRQ_TYPE_LEVEL_HIGH>; + irq-gpio = <spin102_gpio GPIO_ACTIVE_LOW>; + reset-gpio = <spin65_gpio GPIO_ACTIVE_LOW>; + reset-low-active = <1>; + irq-low-active = <1>; + status = "okay"; + }; +}; + +&lcdif1 { + status = "okay"; +}; + +&lcdif2 { + status = "okay"; +}; + +&ldb { + status = "okay"; + lvds-channel@0 { + status = "okay"; + fsl,data-mapping = "spwg"; + fsl,data-width = <24>; + port@1 { + reg = <1>; + lvds1_out: endpoint { + remote-endpoint = <&panel_lvds1_in>; + }; + }; + }; +}; + +&ldb_phy { + status = "okay"; +}; + +&mipi_dsi { + status = "okay"; + + port@1 { + mipi_dsi_out: endpoint { + remote-endpoint = <&dsi_bridge_in>; + attach-bridge; + }; + }; +}; + +&pwm1 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_backlight_pwm1>; + status = "okay"; +}; + +&pwm4 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_backlight2_pwm4>; + status = "okay"; +}; + +&usb3_phy0 { + vbus-supply = <®_usbotg_pwr>; + disable-over-current; +}; + +&usb3_phy1 { + vbus-supply = <®_usbhost_pwr>; + disable-over-current; +}; + +&usdhc2 { + cd-gpios = <spin59_gpio GPIO_ACTIVE_LOW>; + status = "okay"; +}; + +&pwm3 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_buzzer_pwm3>; + status = "okay"; +}; + +&uart2 { + pinctrl-0 = <&pinctrl_uart2>; + status = "okay"; +}; + +&uart3 { + pinctrl-0 = <&pinctrl_uart3>; + status = "okay"; +}; + +&gpio1 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_ios>; + + gpio-line-names = "", "", "", "", "", "", "rtc_int", "led_button", + "", "", "", "", "", "", "", "", + "", "", "", "", "", "", "", "", + "", "", "", "", "", "", "", ""; +}; + +&gpio3 { + gpio-line-names = "", "", "", "", "", "", "", "", + "", "", "", "", "", "", "", "", + "", "", "", "", "", "dig_in1", "", "", + "", "", "", "", "", "", "", ""; +}; + +&gpio4 { + gpio-line-names = "", "", "", "", "dig_in2", "", "", "", + "", "", "", "", "", "", "", "", + "", "", "", "", "", "", "", "", + "", "", "", "", "led_error", "led_debug", "led_op_state", ""; +}; + +&gpio5 { + gpio-line-names = "power_fail", "standby_enable", "", "", "", "", "", "", + "", "", "", "", "", "", "", "", + "", "", "", "", "", "", "", "", + "", "", "", "", "", "", "", ""; +}; + +&sdma2 { + status = "okay"; +}; + +&sound_wm8983 { + simple-audio-card,widgets = + "Headphone", "Headphone Jack"; + simple-audio-card,routing = + "Headphone Jack", "HPL", + "Headphone Jack", "HPR"; +}; +