diff --git a/arch/arm/boot/dts/overlays/Makefile b/arch/arm/boot/dts/overlays/Makefile index f06c5e9aec54ad..47dc106ead93b9 100644 --- a/arch/arm/boot/dts/overlays/Makefile +++ b/arch/arm/boot/dts/overlays/Makefile @@ -222,6 +222,7 @@ dtbo-$(CONFIG_ARCH_BCM2835) += \ pitft28-capacitive.dtbo \ pitft28-resistive.dtbo \ pitft35-resistive.dtbo \ + pivision.dtbo \ pps-gpio.dtbo \ proto-codec.dtbo \ pwm.dtbo \ diff --git a/arch/arm/boot/dts/overlays/README b/arch/arm/boot/dts/overlays/README index 94df2577c24ddf..4cd55290e7be3a 100644 --- a/arch/arm/boot/dts/overlays/README +++ b/arch/arm/boot/dts/overlays/README @@ -4054,6 +4054,13 @@ Params: speed Display SPI bus speed touch-swapxy Touchscreen swapped x y axis +Name: pivision +Info: Overlay to enable the SECO Pi Vision 10.1 HMI hardware for Compute Module 5. + Will be loaded automatically by up-to-date firmware via EEPROM detection. +Load: dtoverlay=pivision +Params: + + Name: pps-gpio Info: Configures the pps-gpio (pulse-per-second time signal via GPIO). Load: dtoverlay=pps-gpio,= diff --git a/arch/arm/boot/dts/overlays/pivision-overlay.dts b/arch/arm/boot/dts/overlays/pivision-overlay.dts new file mode 100644 index 00000000000000..496c726e0140d1 --- /dev/null +++ b/arch/arm/boot/dts/overlays/pivision-overlay.dts @@ -0,0 +1,155 @@ +#include +#include + +/dts-v1/; +/plugin/; + +/ { + compatible = "brcm,bcm2712"; + + fragment@0 { + target = <&i2c_csi_dsi0>; + __overlay__ { + status = "okay"; + pi4io: pi4io@44 { + compatible = "fcs,fxl6408"; + reg = <0x44>; + gpio-controller; + #gpio-cells = <2>; + status = "okay"; + }; + + sn65dsi83: bridge@2c { + compatible = "ti,sn65dsi83"; + reg = <0x2c>; + status = "okay"; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + + in_dsi: endpoint { + remote-endpoint = <&dsi_out>; + data-lanes = <1 2 3 4>; + }; + }; + + port@2 { + reg = <2>; + + lvds_out: endpoint { + remote-endpoint = <&in_lvds>; + }; + }; + }; + }; + + mxt1066td: touch@4a { + compatible = "atmel,maxtouch"; + reg = <0x4a>; + interrupt-parent = <&rp1_gpio>; + interrupts = <34 IRQ_TYPE_EDGE_FALLING>; + pinctrl-names = "default"; + pinctrl-0 = <&rp1_gpio_34>; + reset-gpios = <&pi4io 1 GPIO_ACTIVE_LOW>; + status = "okay"; + }; + }; + }; + + fragment@1 { + target = <&dsi0>; + __overlay__{ + status = "okay"; + port { + dsi_out: endpoint { + remote-endpoint = <&in_dsi>; + }; + }; + }; + }; + + fragment@2 { + target-path = "/"; + __overlay__ { + panel: panel { + compatible = "auo,g101ean02-2", "panel-lvds"; + width-mm = <217>; + height-mm = <136>; + data-mapping = "vesa-24"; + backlight = <&backlight>; + status = "okay"; + + panel-timing { + clock-frequency = <71100000>; + hactive = <1280>; + vactive = <800>; + hfront-porch = <50>; + hsync-len = <60>; + hback-porch = <50>; + vfront-porch = <7>; + vsync-len = <9>; + vback-porch = <7>; + }; + + port { + in_lvds: endpoint { + remote-endpoint = <&lvds_out>; + }; + }; + }; + + display_enable: display_enable { + compatible = "regulator-fixed"; + regulator-name = "display_enable"; + regulator-always-on; + enable-active-high; + gpio = <&pi4io 0 GPIO_ACTIVE_HIGH>; + status = "okay"; + }; + + backlight: backlight { + compatible = "pwm-backlight"; + pwms = <&pwm1 0 5000000 0>; + brightness-levels = <0 65535>; + num-interpolated-steps = <4096>; + default-brightness-level = <3000>; + status = "okay"; + }; + }; + }; + + fragment@3 { + target = <&rp1_gpio>; + __overlay__ { + rp1_gpio_34: rp1_gpio_34 { + function = "gpio"; + pins = "gpio34"; + bias-pull-up; + }; + rp1_gpio_35: rp1_gpio_35 { + function = "pwm1"; + pins = "gpio35"; + }; + }; + }; + + fragment@4 { + target = <&cam0_reg>; + __overlay__ { + status = "disabled"; + }; + }; + + fragment@5 { + target = <&pwm1>; + __overlay__ { + pinctrl-names = "default"; + pinctrl-0 = <&rp1_gpio_35>; + status = "okay"; + }; + }; +}; diff --git a/arch/arm64/configs/bcm2711_defconfig b/arch/arm64/configs/bcm2711_defconfig index 41d466804a646e..1af4b3bacf7d20 100644 --- a/arch/arm64/configs/bcm2711_defconfig +++ b/arch/arm64/configs/bcm2711_defconfig @@ -698,6 +698,7 @@ CONFIG_JOYSTICK_FSIA6B=m CONFIG_JOYSTICK_SENSEHAT=m CONFIG_INPUT_TOUCHSCREEN=y CONFIG_TOUCHSCREEN_ADS7846=m +CONFIG_TOUCHSCREEN_ATMEL_MXT=m CONFIG_TOUCHSCREEN_EGALAX=m CONFIG_TOUCHSCREEN_EXC3000=m CONFIG_TOUCHSCREEN_GOODIX=m @@ -1067,6 +1068,7 @@ CONFIG_HD44780=m CONFIG_DRM=m CONFIG_DRM_LOAD_EDID_FIRMWARE=y CONFIG_DRM_UDL=m +CONFIG_DRM_PANEL_LVDS=m CONFIG_DRM_PANEL_ILITEK_ILI9806E=m CONFIG_DRM_PANEL_ILITEK_ILI9806E_SPI=m CONFIG_DRM_PANEL_ILITEK_ILI9881C=m @@ -1080,6 +1082,7 @@ CONFIG_DRM_PANEL_WAVESHARE_TOUCHSCREEN_V2=m CONFIG_DRM_DISPLAY_CONNECTOR=m CONFIG_DRM_SIMPLE_BRIDGE=m CONFIG_DRM_TOSHIBA_TC358762=m +CONFIG_DRM_TI_SN65DSI83=m CONFIG_DRM_V3D=m CONFIG_DRM_VC4=m CONFIG_DRM_VC4_HDMI_CEC=y diff --git a/arch/arm64/configs/bcm2711_rt_defconfig b/arch/arm64/configs/bcm2711_rt_defconfig index c75c0eda79b55e..0237a5441c7132 100644 --- a/arch/arm64/configs/bcm2711_rt_defconfig +++ b/arch/arm64/configs/bcm2711_rt_defconfig @@ -698,6 +698,7 @@ CONFIG_JOYSTICK_FSIA6B=m CONFIG_JOYSTICK_SENSEHAT=m CONFIG_INPUT_TOUCHSCREEN=y CONFIG_TOUCHSCREEN_ADS7846=m +CONFIG_TOUCHSCREEN_ATMEL_MXT=m CONFIG_TOUCHSCREEN_EGALAX=m CONFIG_TOUCHSCREEN_EXC3000=m CONFIG_TOUCHSCREEN_GOODIX=m @@ -1067,6 +1068,7 @@ CONFIG_HD44780=m CONFIG_DRM=m CONFIG_DRM_LOAD_EDID_FIRMWARE=y CONFIG_DRM_UDL=m +CONFIG_DRM_PANEL_LVDS=m CONFIG_DRM_PANEL_ILITEK_ILI9806E=m CONFIG_DRM_PANEL_ILITEK_ILI9806E_SPI=m CONFIG_DRM_PANEL_ILITEK_ILI9881C=m @@ -1080,6 +1082,7 @@ CONFIG_DRM_PANEL_WAVESHARE_TOUCHSCREEN_V2=m CONFIG_DRM_DISPLAY_CONNECTOR=m CONFIG_DRM_SIMPLE_BRIDGE=m CONFIG_DRM_TOSHIBA_TC358762=m +CONFIG_DRM_TI_SN65DSI83=m CONFIG_DRM_V3D=m CONFIG_DRM_VC4=m CONFIG_DRM_VC4_HDMI_CEC=y diff --git a/arch/arm64/configs/bcm2712_defconfig b/arch/arm64/configs/bcm2712_defconfig index 2ab8b254abd1de..c8bea5e9e2c19c 100644 --- a/arch/arm64/configs/bcm2712_defconfig +++ b/arch/arm64/configs/bcm2712_defconfig @@ -701,6 +701,7 @@ CONFIG_JOYSTICK_FSIA6B=m CONFIG_JOYSTICK_SENSEHAT=m CONFIG_INPUT_TOUCHSCREEN=y CONFIG_TOUCHSCREEN_ADS7846=m +CONFIG_TOUCHSCREEN_ATMEL_MXT=m CONFIG_TOUCHSCREEN_EGALAX=m CONFIG_TOUCHSCREEN_EXC3000=m CONFIG_TOUCHSCREEN_GOODIX=m @@ -1069,6 +1070,7 @@ CONFIG_HD44780=m CONFIG_DRM=m CONFIG_DRM_LOAD_EDID_FIRMWARE=y CONFIG_DRM_UDL=m +CONFIG_DRM_PANEL_LVDS=m CONFIG_DRM_PANEL_ILITEK_ILI9806E=m CONFIG_DRM_PANEL_ILITEK_ILI9806E_SPI=m CONFIG_DRM_PANEL_ILITEK_ILI9881C=m @@ -1082,6 +1084,7 @@ CONFIG_DRM_PANEL_WAVESHARE_TOUCHSCREEN_V2=m CONFIG_DRM_DISPLAY_CONNECTOR=m CONFIG_DRM_SIMPLE_BRIDGE=m CONFIG_DRM_TOSHIBA_TC358762=m +CONFIG_DRM_TI_SN65DSI83=m CONFIG_DRM_V3D=m CONFIG_DRM_VC4=m CONFIG_DRM_VC4_HDMI_CEC=y