Skip to content

Commit e2bfb78

Browse files
feat(DSS7): Add support for AM62LX
Add support for DSS Nano which is present in AM62LX EVM Signed-off-by: Devarsh Thakkar <[email protected]>
1 parent 474ae83 commit e2bfb78

File tree

1 file changed

+71
-55
lines changed
  • source/linux/Foundational_Components/Kernel/Kernel_Drivers/Display

1 file changed

+71
-55
lines changed

source/linux/Foundational_Components/Kernel/Kernel_Drivers/Display/DSS7.rst

Lines changed: 71 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ This page gives a basic description of DSS (Display SubSystem) hardware, the Lin
1010
Supported Devices
1111
=================
1212

13-
There are many DSS IP versions, all of which support slightly different set of features. DSS versions up to 5 are supported by the omapdrm driver, and DSS versions 6 and up are supported by the tidss driver. This document covers DSS6, DSS7-L, and DSS7-UL which are used on the following TI SoCs or SoC families: K2G, AM65x, AM62x, AM62Ax, AM62Px, J721E, J721S2, J784S4.
13+
There are many DSS IP versions, all of which support slightly different set of features. DSS versions up to 5 are supported by the omapdrm driver, and DSS versions 6 and up are supported by the tidss driver. This document covers DSS6, DSS7-L, DSS7-UL and DSS7-Nano which are used on the following TI SoCs or SoC families: K2G, AM65x, AM62x, AM62Ax, AM62Px, AM62L, J721E, J721S2, J784S4.
1414

1515

1616
Hardware Architecture
@@ -45,6 +45,9 @@ The arrows show how pipelines are connected to overlay managers, which are furth
4545

4646
- **Note:** While the DSS7-UL in AM62Ax has 2 video pipelines, there is only one video port (VP) coming out of the SoC. This VP outputs DPI signals. The other pipeline can be used to overlay video data on top of the first pipeline's output. On the AM62A-SK EVM, this DPI output is then forwarded to an on-board HDMI framer.
4747

48+
.. ifconfig:: CONFIG_part_variant in ('AM62LX')
49+
50+
- **Note:** The DSS7 Nano in AM62LX has a single video pipeline and a single video port (VP) coming out of the SoC. The output of video port is routed to SoC boundary via DPI interface and the DPI signals from the video port are routed to DSI Tx controller present within the SoC. Same DPI signals are also forwarded to an on-board HDMI framer. At a time though, only a single interface i.e. DPI or DSI can be used with the EVM.
4851

4952
Display Controller (DISPC)
5053
--------------------------
@@ -95,6 +98,14 @@ SoC Family: |__PART_FAMILY_DEVICE_NAMES__|
9598
| DSS7-UL | DPI, OLDI | VID, VIDL | 2 |
9699
+-------------+---------------+-------------------+-------------+
97100

101+
.. ifconfig:: CONFIG_part_variant in ('AM62LX')
102+
103+
+-------------+---------------+-------------------+-------------+
104+
| DSS version | Outputs | Pipes | Video ports |
105+
+=============+===============+===================+=============+
106+
| DSS7-Nano | DPI, DSI | VIDL | 1 |
107+
+-------------+---------------+-------------------+-------------+
108+
98109

99110
.. ifconfig:: CONFIG_part_variant in ('AM62AX')
100111

@@ -162,6 +173,10 @@ Supported Features
162173
- **Open LVDS Display Interface (OLDI)**
163174
- Single Link OLDI
164175
- Dual Link OLDI
176+
.. ifconfig:: CONFIG_part_variant in ('AM62LX')
177+
178+
- **MIPI DSI**
179+
- 4 Lane MIPI DSI output
165180
.. ifconfig:: CONFIG_part_variant in ('AM62PX', 'J722S')
166181

167182
- **Open LVDS Display Interface (OLDI)**
@@ -211,7 +226,7 @@ Supported Features
211226
Driver Architecture
212227
===================
213228

214-
The driver for DSS6 / DSS7-L / DSS7-UL IPs is tidss. tidss is a Direct Rendering Manager (DRM) driver, located in the directory drivers/gpu/drm/tidss/ in the kernel tree. tidss does not implement any 3D GPU features, only the Kernel Mode Setting (KMS) features, used to display pixel data on a display.
229+
The driver for DSS6 / DSS7-L / DSS7-UL / DSS7-Nano IPs is tidss. tidss is a Direct Rendering Manager (DRM) driver, located in the directory drivers/gpu/drm/tidss/ in the kernel tree. tidss does not implement any 3D GPU features, only the Kernel Mode Setting (KMS) features, used to display pixel data on a display.
215230

216231
In addition to tidss, there are a number of bridge and panel drivers located in drivers/gpu/drm/bridge/ and drivers/gpu/drm/panel/ which provide support for various panels and bridges (both external and internal to SoC).
217232

@@ -307,15 +322,15 @@ Unsupported Features/Limitations
307322
- MIPI DBI/RFBI
308323
- Interlace
309324

310-
.. ifconfig:: CONFIG_part_variant in ('AM62X', 'AM65X', 'AM62AX', 'AM62PX', 'J722S')
325+
.. ifconfig:: CONFIG_part_variant in ('AM62X', 'AM65X', 'AM62AX', 'AM62PX', 'J722S', 'AM62LX')
311326

312327
- **DisplayPort (MHDP)**
313328
- The SoC doesn't support the MHDP IP, and doesn't provide the DP output.
314329
.. ifconfig:: CONFIG_part_variant in ('AM62X', 'AM65X', 'AM62AX')
315330

316331
- **MIPI DSI**
317332
- The SoC doesn't support the DSI / DPHY-Tx, and doesn't provide the MIPI DSI output.
318-
.. ifconfig:: CONFIG_part_variant in ('AM62AX', 'J721E', 'J784S4','J742S2', 'J721S2')
333+
.. ifconfig:: CONFIG_part_variant in ('AM62AX', 'J721E', 'J784S4','J742S2', 'J721S2', 'AM62LX')
319334

320335
- **Open LVDS Display Interface (OLDI)**
321336
- The SoC doesn't support the OLDI TXes, and doesn't provide the OLDI output.
@@ -585,85 +600,86 @@ the associated objects are as follows.
585600
Since HDMI display is disconnected at the moment, no CRTC object has been enumerated for it, and
586601
hence plane 41 remains unused.
587602

603+
.. ifconfig:: CONFIG_part_variant not in ('AM62LX')
588604

589-
- **Z order**
605+
- **Z order**
590606

591-
Z position of the plane when multiple planes are being displayed.
607+
Z position of the plane when multiple planes are being displayed.
592608

593-
This property is enumerated as ``zpos`` in the modetest output. This property can be used with the
594-
``-w`` option of modetest. However, this property is not useful without plane overlaying, as it
595-
won't show use any discernible change on the display. Hence, refer the example given in the next
596-
section.
609+
This property is enumerated as ``zpos`` in the modetest output. This property can be used with the
610+
``-w`` option of modetest. However, this property is not useful without plane overlaying, as it
611+
won't show use any discernible change on the display. Hence, refer the example given in the next
612+
section.
597613

598-
- **Plane Overlaying**
614+
- **Plane Overlaying**
599615

600-
Use unused planes as overlay planes.
616+
Use unused planes as overlay planes.
601617

602-
Based on the version, the DSS controller can have 2 to 4 video pipelines, which get
603-
enumerated as DRM planes. If the number of displays connected is less than the
604-
number of video pipes in the DSS controller, the extra pipes can be used as overlay planes.
618+
Based on the version, the DSS controller can have 2 to 4 video pipelines, which get
619+
enumerated as DRM planes. If the number of displays connected is less than the
620+
number of video pipes in the DSS controller, the extra pipes can be used as overlay planes.
605621

606-
In this example, plane 41 remains an unused plane, while plane 31 acts as a primary plane
607-
for CRTC 38. To use plane 41 as an overlay on top of plane 31, the following command can be
608-
used.
622+
In this example, plane 41 remains an unused plane, while plane 31 acts as a primary plane
623+
for CRTC 38. To use plane 41 as an overlay on top of plane 31, the following command can be
624+
used.
609625

610-
.. code-block:: console
626+
.. code-block:: console
611627
612628
$ modetest -M tidss -s 40@38:1920x1200 -P 41@38:1280x720 -w 41:zpos:1
613629
setting mode 1920x1200-60.00Hz on connectors 40, crtc 38
614630
testing 1280x720@XR24 overlay plane 41
615631
616-
In this example, we use the primary plane via its connector and crtc using the ``-s`` option.
617-
``-s 40@38:1920x1200`` renders vertical color bars on the LVDS display. Adding the ``-P`` option,
618-
``-P 41@38:1280x720``, renders another frame of color bars (diagonal in this case) of resolution
619-
1280x720. The ``-w 41:zpos:1`` ensures that the plane 41 is displayed on top of plane 31 (or else,
620-
if plane 31 is on top, then plane 41 will be underneath and hence won't show up on the display).
632+
In this example, we use the primary plane via its connector and crtc using the ``-s`` option.
633+
``-s 40@38:1920x1200`` renders vertical color bars on the LVDS display. Adding the ``-P`` option,
634+
``-P 41@38:1280x720``, renders another frame of color bars (diagonal in this case) of resolution
635+
1280x720. The ``-w 41:zpos:1`` ensures that the plane 41 is displayed on top of plane 31 (or else,
636+
if plane 31 is on top, then plane 41 will be underneath and hence won't show up on the display).
621637

622-
- **Global Alpha Blending**
638+
- **Global Alpha Blending**
623639

624-
Full plane alpha-blending
640+
Full plane alpha-blending
625641

626-
When displaying multiple planes on top of one another, we can assign transparency levels to each of
627-
the planes using the ``alpha`` property. For tidss, the value of this property ranges from 0 with
628-
complete transparency to 65535 with complete opacity.
642+
When displaying multiple planes on top of one another, we can assign transparency levels to each of
643+
the planes using the ``alpha`` property. For tidss, the value of this property ranges from 0 with
644+
complete transparency to 65535 with complete opacity.
629645

630-
.. code-block:: console
646+
.. code-block:: console
631647
632-
$ modetest -M tidss -s 40@38:1920x1200 -P 41@38:1280x720 -w 41:zpos:0 -w 31:zpos:1 -w 31:alpha:10000
633-
setting mode 1920x1200-60.00Hz on connectors 40, crtc 38
634-
testing 1280x720@XR24 overlay plane 41
648+
$ modetest -M tidss -s 40@38:1920x1200 -P 41@38:1280x720 -w 41:zpos:0 -w 31:zpos:1 -w 31:alpha:10000
649+
setting mode 1920x1200-60.00Hz on connectors 40, crtc 38
650+
testing 1280x720@XR24 overlay plane 41
635651
636-
In this example, we are displaying the overlay plane (41) behind the primary plane (31) by
637-
manipulating the ``zpos`` property. Since the overlay plane is of a smaller resolution (1280x720)
638-
and the primary plane is of resolution 1920x1200, the overlay plane is expected to not be seen.
639-
However, with the introduction of the alpha property on the primary plane that doesn't happen. With
640-
``alpha`` = 10000 (out of 65535), faint vertical color bars can be seen on the display, along with
641-
diagonal color bars as solid.
652+
In this example, we are displaying the overlay plane (41) behind the primary plane (31) by
653+
manipulating the ``zpos`` property. Since the overlay plane is of a smaller resolution (1280x720)
654+
and the primary plane is of resolution 1920x1200, the overlay plane is expected to not be seen.
655+
However, with the introduction of the alpha property on the primary plane that doesn't happen. With
656+
``alpha`` = 10000 (out of 65535), faint vertical color bars can be seen on the display, along with
657+
diagonal color bars as solid.
642658

643-
- **Scaling**
659+
- **Scaling**
644660

645-
Scale the frame smaller or larger.
661+
Scale the frame smaller or larger.
646662

647-
This feature will only work for plane IDs that map to the VID pipeline of tidss (and not the VIDL
648-
pipe). Follow this simple rule of thumb to find out if a particular DRM plane is VID or not. DSS-7
649-
has 4 pipelines in total, while DSS7-UL has 2 pipelines. The VIDL pipelines get enumerated as DRM
650-
planes first, and then the VID pipes do. Therefore
663+
This feature will only work for plane IDs that map to the VID pipeline of tidss (and not the VIDL
664+
pipe). Follow this simple rule of thumb to find out if a particular DRM plane is VID or not. DSS-7
665+
has 4 pipelines in total, while DSS7-UL has 2 pipelines. The VIDL pipelines get enumerated as DRM
666+
planes first, and then the VID pipes do. Therefore
651667

652-
- For DSS7-L with 4 pipelines and DRM plane IDs 31, 41, 51, and 58, the DRM planes 51 and 58
653-
are VID pipelines and thus have scaling support.
668+
- For DSS7-L with 4 pipelines and DRM plane IDs 31, 41, 51, and 58, the DRM planes 51 and 58
669+
are VID pipelines and thus have scaling support.
654670

655-
- For DSS7-UL with 2 pipelines and DRM plane IDs 31, and 41, the DRM plane 41 is the VID
656-
pipeline and thus have scaling support.
671+
- For DSS7-UL with 2 pipelines and DRM plane IDs 31, and 41, the DRM plane 41 is the VID
672+
pipeline and thus have scaling support.
657673

658-
The following example was run on DSS7-UL and hence the pipe with scaling capability is DRM plane 41.
674+
The following example was run on DSS7-UL and hence the pipe with scaling capability is DRM plane 41.
659675

660-
.. code-block:: console
676+
.. code-block:: console
661677
662-
$ modetest -M tidss -s 40@38:1920x1200@AR24 -P 41@38:400x400*2
663-
setting mode 1920x1200-60.00Hz on connectors 40, crtc 38
664-
testing 400x400@XR24 overlay plane 41
678+
$ modetest -M tidss -s 40@38:1920x1200@AR24 -P 41@38:400x400*2
679+
setting mode 1920x1200-60.00Hz on connectors 40, crtc 38
680+
testing 400x400@XR24 overlay plane 41
665681
666-
Note that the ``*2`` at the end of ``-P 41@38:400x400*2`` is the scaling factor.
682+
Note that the ``*2`` at the end of ``-P 41@38:400x400*2`` is the scaling factor.
667683

668684
- **Cropping**
669685

0 commit comments

Comments
 (0)