diff --git a/arch/arm64/boot/dts/ti/k3-am625-var-som-symphony.dts b/arch/arm64/boot/dts/ti/k3-am625-var-som-symphony.dts index 9ea7118de8c0..e7017fce5219 100644 --- a/arch/arm64/boot/dts/ti/k3-am625-var-som-symphony.dts +++ b/arch/arm64/boot/dts/ti/k3-am625-var-som-symphony.dts + /* backlight: backlight { compatible = "pwm-backlight"; pwms = <&epwm1 0 1000000 PWM_POLARITY_NORMAL>; @@ -45,10 +44,18 @@ backlight: backlight { 100>; default-brightness-level = <80>; }; + */ + + // backlight: backlight{ + // compatible = "pwm-backlight"; + // pwms = <&epwm1 0 2000000 PWM_POLARITY_NORMAL>; /* 0.5 Khz */ + // brightness-levels = <0 10 20 30 40 50 60 70 80 90 100>; + // default-brightness-level = <100>; + // }; clk_ov5640_fixed: clock { @@ -58,8 +65,8 @@ clk_ov5640_fixed: clock { }; display { - compatible = "sgd,gktw70sdae4se"; - backlight = <&backlight>; + compatible = "osddisplays,osd0700t4678-81ts"; + // backlight = <&backlight>; status = "okay"; port@0 { @@ -67,6 +74,12 @@ lcd_in0: endpoint { remote-endpoint = <&oldi_out0>; }; }; + + port@1 { + lcd_in1: endpoint { + remote-endpoint = <&oldi_out1>; + }; + }; }; gpio-keys { @@ -102,6 +115,20 @@ heartbeat { }; }; + hcs_gpio: hcs-gpio { + label = "HCS_GPIO"; + linux,default-trigger = "default-on"; + gpios = <&main_gpio0 23 GPIO_ACTIVE_HIGH>; + status = "okay"; + }; + + hcs2_gpio: hcs2-gpio { + label = "HCS_GPIO2"; + linux,default-trigger = "default-on"; + gpios = <&main_gpio1 16 GPIO_ACTIVE_HIGH>; + status = "okay"; + }; + ov5640_buf_en: ov5640-buf-en { compatible = "regulator-fixed"; regulator-name = "ov5640_buf_en"; @@ -157,25 +184,6 @@ cpts@3d000 { }; }; @@ -193,7 +201,7 @@ &dphy0 { &dss { pinctrl-names = "default"; - pinctrl-0 = <&main_oldi0_pins_default>; + pinctrl-0 = <&main_oldi0_pins_default &osd_displays_pins_default>; }; &dss_ports { @@ -207,14 +215,22 @@ oldi_out0: endpoint { remote-endpoint = <&lcd_in0>; }; }; -}; -&epwm1 { - status = "okay"; - pinctrl-names = "default"; - pinctrl-0 = <&main_epwm1_pins_default>; + /* VP1: LVDS Output (OLDI TX 1) */ + port@2 { + reg = <2>; + oldi_out1: endpoint { + remote-endpoint = <&lcd_in1>; + }; + }; }; &mailbox0_cluster0 { mbox_m4_0: mbox-m4-0 { ti,mbox-rx = <0 0 0>; @@ -311,41 +327,60 @@ rtc@68 { }; /* Capacitive touch controller */ - ft5x06_ts: ft5x06_ts@38 { - compatible = "edt,edt-ft5206"; - reg = <0x38>; - pinctrl-names = "default"; - pinctrl-0 = <&captouch_pins_default>; - interrupts-extended = <&main_gpio1 16 IRQ_TYPE_EDGE_FALLING>, - <&main_pmx0 0x1B8>; - interrupt-names = "irq", "wakeup"; - touchscreen-size-x = <800>; - touchscreen-size-y = <480>; - touchscreen-inverted-x; - touchscreen-inverted-y; - wakeup-source; - status = "okay"; - }; + // ft5x06_ts: ft5x06_ts@38 { + // compatible = "edt,edt-ft5206"; + // reg = <0x38>; + // pinctrl-names = "default"; + // pinctrl-0 = <&captouch_pins_default>; + // interrupts-extended = <&main_gpio1 16 IRQ_TYPE_EDGE_FALLING>, + // <&main_pmx0 0x1B8>; + // interrupt-names = "irq", "wakeup"; + // touchscreen-size-x = <800>; + // touchscreen-size-y = <480>; + // touchscreen-inverted-x; + // touchscreen-inverted-y; + // wakeup-source; + // status = "okay"; + // }; }; &main_pmx0 { - captouch_pins_default: captouch-pins-default { + status = "okay"; + pinctrl-names = "default"; + pinctrl-0 = <&display_pins_default>; + + display_pins_default: display-default-pins { pinctrl-single,pins = < - AM62X_IOPAD(0x01b8, PIN_INPUT, 7) /* (C13) SPI0_CS1.GPIO1_16 */ - >; + AM62X_IOPAD(0x005c, PIN_OUTPUT_PULLUP, 7) /* (R24) GPMC0_AD8.GPIO0_23 */ + AM62X_IOPAD(0x0060, PIN_OUTPUT_PULLUP, 7) /* (R25) GPMC0_AD9.GPIO0_24 */ + AM62X_IOPAD(0x0258, PIN_OUTPUT_PULLUP, 7) /* (F18) USB1_DRVVBUS.GPIO1_51 */ + AM62X_IOPAD(0x01b8, PIN_OUTPUT_PULLUP, 7) /* (C13) SPI0_CS1.GPIO1_16 */ + >; }; + // captouch_pins_default: captouch-pins-default { + // pinctrl-single,pins = < + // AM62X_IOPAD(0x01b8, PIN_INPUT, 7) /* (C13) SPI0_CS1.GPIO1_16 */ + // >; + // }; + + // osdblkbrt_pins_default: osdblkbrt-default-pins { + // pinctrl-single,pins = < + // AM62X_IOPAD(0x01b8, PIN_OUTPUT_PULLUP, 2) /* (C13) SPI0_CS1.EHRPWM0_B */ + // >; + // }; + extcon_pins_default: extcon-pins-default { pinctrl-single,pins = < AM62X_IOPAD(0x01a8, PIN_INPUT, 7) /* (D20) MCASP0_AFSX.GPIO1_12 */ >; }; - main_epwm1_pins_default: main-epwm1-pins-default { - pinctrl-single,pins = < - AM62X_IOPAD(0x019c, PIN_OUTPUT, 6) /* (B18) MCASP0_AXR1.EHRPWM1_A */ - >; - }; + // main_epwm1_pins_default: main-epwm1-pins-default { + // pinctrl-single,pins = < + // AM62X_IOPAD(0x019c, PIN_OUTPUT, 6) /* (B18) MCASP0_AXR1.EHRPWM1_A */ + // >; + // }; main_i2c0_pins_default: main-i2c0-pins-default { pinctrl-single,pins = < @@ -405,6 +440,22 @@ AM62X_IOPAD(0x02a4, PIN_OUTPUT, 0) /* (AD5) OLDI0_CLK1P */ >; }; + osd_displays_pins_default: ods-displays-pins-default { + pinctrl-single,pins = < + AM62X_IOPAD(0x0280, PIN_OUTPUT, 0) /* (AC6) OLDI0_A4N */ + AM62X_IOPAD(0x027c, PIN_OUTPUT, 0) /* (AC5) OLDI0_A4P */ + AM62X_IOPAD(0x0288, PIN_OUTPUT, 0) /* (AE5) OLDI0_A5N */ + AM62X_IOPAD(0x0284, PIN_OUTPUT, 0) /* (AD6) OLDI0_A5P */ + AM62X_IOPAD(0x0290, PIN_OUTPUT, 0) /* (AE6) OLDI0_A6N */ + AM62X_IOPAD(0x028c, PIN_OUTPUT, 0) /* (AD7) OLDI0_A6P */ + AM62X_IOPAD(0x0298, PIN_OUTPUT, 0) /* (AD8) OLDI0_A7N */ + AM62X_IOPAD(0x0294, PIN_OUTPUT, 0) /* (AE7) OLDI0_A7P */ + AM62X_IOPAD(0x02a8, PIN_OUTPUT, 0) /* (AE4) OLDI0_CLK1N */ + AM62X_IOPAD(0x02a4, PIN_OUTPUT, 0) /* (AD5) OLDI0_CLK1P */ + >; + }; + + main_rgmii2_pins_default: main-rgmii2-pins-default { pinctrl-single,pins = < AM62X_IOPAD(0x184, PIN_INPUT, 0) /* (AE23) RGMII2_RD0 */ @@ -434,17 +485,11 @@ AM62X_IOPAD(0x01ac, PIN_OUTPUT, 7) /* (E19) MCASP0_AFSR.GPIO1_13 */ main_uart0_pins_default: main-uart0-pins-default { pinctrl-single,pins = < AM62X_IOPAD(0x1c8, PIN_INPUT, 0) /* (D14) UART0_RXD */ + AM62X_IOPAD(0x004c, PIN_OUTPUT, 7) /* (P24) GPMC0_AD4.GPIO0_19 TFS: UART1_MOD-BUS_DE */ AM62X_IOPAD(0x1cc, PIN_OUTPUT, 0) /* (E14) UART0_TXD */ >; }; - main_uart2_pins_default: main-uart2-pins-default { - pinctrl-single,pins = < - AM62X_IOPAD(0x005c, PIN_INPUT_PULLUP, 2) /* (R24) GPMC0_AD8.UART2_RXD */ - AM62X_IOPAD(0x0060, PIN_OUTPUT, 2) /* (R25) GPMC0_AD9.UART2_TXD */ - >; - }; - main_uart6_pins_default: main-uart6-pins-default { pinctrl-single,pins = < AM62X_IOPAD(0x009c, PIN_INPUT, 3) /* (V25) GPMC0_WAIT1.UART6_RXD */ @@ -452,11 +497,11 @@ AM62X_IOPAD(0x0244, PIN_OUTPUT, 1) /* (C17) MMC1_SDWP.UART6_TXD */ >; }; - main_usb1_pins_default: main-usb1-pins-default { - pinctrl-single,pins = < - AM62X_IOPAD(0x0258, PIN_OUTPUT, 0) /* (F18) USB1_DRVVBUS */ - >; - }; + // main_usb1_pins_default: main-usb1-pins-default { + // pinctrl-single,pins = < + // AM62X_IOPAD(0x0258, PIN_OUTPUT, 0) /* (F18) USB1_DRVVBUS */ + // >; + // }; ov5640_pins_default: ov5640-pins-default { pinctrl-single,pins = < @@ -504,6 +549,12 @@ &main_uart0 { status = "okay"; pinctrl-names = "default"; pinctrl-0 = <&main_uart0_pins_default>; + rts-gpio = <&main_gpio0 19 GPIO_ACTIVE_LOW>; + rs485-rts-active-low; + rs485-rts-delay = <0 0>; + linux,rs485-enabled-at-boot-time; + // rs485-rx-during-tx; + // rs485-enabled-at-boot-time; }; &main_uart1 { @@ -511,12 +562,6 @@ &main_uart1 { status = "reserved"; }; -&main_uart2 { - pinctrl-names = "default"; - pinctrl-0 = <&main_uart2_pins_default>; - status = "okay"; -}; - &main_uart6 { pinctrl-names = "default"; pinctrl-0 = <&main_uart6_pins_default>; @@ -587,12 +632,12 @@ typec_hs: endpoint { }; }; -&usb1 { - dr_mode = "host"; - pinctrl-names = "default"; - pinctrl-0 = <&main_usb1_pins_default>; - status="okay"; -}; +// &usb1 { +// dr_mode = "host"; +// pinctrl-names = "default"; +// pinctrl-0 = <&main_usb1_pins_default>; +// status="okay"; +// }; &usbss0 { status = "okay"; diff --git a/arch/arm64/configs/am62x_var_defconfig b/arch/arm64/configs/am62x_var_defconfig index dc03357f1bb8..18129faf24dc 100644 --- a/arch/arm64/configs/am62x_var_defconfig +++ b/arch/arm64/configs/am62x_var_defconfig @@ -1031,3 +1031,4 @@ CONFIG_CORESIGHT_STM=m CONFIG_CORESIGHT_CPU_DEBUG=m CONFIG_CORESIGHT_CTI=m CONFIG_MEMTEST=y +CONFIG_GPIO_SYSFS=y diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c index 178d2170e4e3..9ce690f66b4c 100644 --- a/drivers/gpu/drm/panel/panel-simple.c +++ b/drivers/gpu/drm/panel/panel-simple.c @@ -3484,6 +3484,34 @@ static const struct panel_desc sgd_gktw70sdae4se = { .connector_type = DRM_MODE_CONNECTOR_LVDS, }; +static const struct drm_display_mode osddisplays_osd0700t4678_81ts_mode = { + .clock = 51200, + .hdisplay = 1024, + .hsync_start = 1024 + 160, + .hsync_end = 1024 + 160 + 12, + .htotal = 1024 + 160 + 12 + 160, + .vdisplay = 600, + .vsync_start = 600 + 12, + .vsync_end = 600 + 12 + 23, + .vtotal = 600 + 12 + 23 + 29, +}; + +static const struct panel_desc osddisplays_osd0700t4678_81ts = { + .modes = &osddisplays_osd0700t4678_81ts_mode, + .bpc = 8, + .num_modes = 1, + .size = { + .width = 154, + .height = 90, + }, + .delay = { + .prepare = 50, + .disable = 50, + }, + .bus_flags = DRM_BUS_FLAG_DE_HIGH, + .bus_format = MEDIA_BUS_FMT_RGB888_1X7X4_SPWG, + .connector_type = DRM_MODE_CONNECTOR_LVDS, +}; static const struct drm_display_mode sharp_lq070y3dg3b_mode = { .clock = 33260, @@ -4372,6 +4400,9 @@ static const struct of_device_id platform_of_match[] = { }, { .compatible = "ortustech,com43h4m85ulc", .data = &ortustech_com43h4m85ulc, + }, { + .compatible = "osddisplays,osd0700t4678-81ts", + .data = &osddisplays_osd0700t4678_81ts, }, { .compatible = "osddisplays,osd070t1718-19ts", .data = &osddisplays_osd070t1718_19ts,