Compare commits

..

5 Commits

Author SHA1 Message Date
Phil Elwell
daa7a3588c dma-mapping: Use any dma_range_map for phys to DMA
Device Tree properties ranges and dma-ranges describe address mappings
required when moving between buses. Ensure this translation happens when
mapping MMIO addresses for DMA accesses.

This commit replaces another downstream commit that no longer applies as
of 6.18:

  dma-direct: take dma-ranges/offsets into account in resource mapping

Signed-off-by: Phil Elwell <phil@raspberrypi.com>
2025-11-17 17:13:19 +00:00
Phil Elwell
8c951e92f4 Revert "dma-mapping: MMIO mappings still need phys_to_dma"
This reverts commit 19a2aa9921.
2025-11-17 16:57:36 +00:00
Dave Stevenson
58d51f0f36 dtoverlays: tc358743: Update legacy compatible frag with cam0 override
The non-pi5 variant of tc358743 needs to update the compatible of
csi0 rather than csi1 if the cam0 override is used, otherwise it
gets loaded in Media Controller mode.

Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
2025-11-17 16:18:42 +00:00
Waveshare_Team
165087902f arch/arm/boot/dts/overlays : Add Waveshare 7-DSI-TOUCH-C screen support
Signed-off-by: Waveshare_Team <support@waveshare.com>
2025-11-17 16:18:42 +00:00
Waveshare_Team
d62ab9bc81 drivers/gpu/drm/panel : Add Waveshare 7-DSI-TOUCH-C screen support
Signed-off-by: Waveshare_Team <support@waveshare.com>
2025-11-17 16:18:42 +00:00
4 changed files with 53 additions and 1 deletions

View File

@@ -5761,6 +5761,7 @@ Params: 3_4_inch_c 3.4" 800x800 2lane
5_5_inch_a 5.5" 720x1280 2lane
7_0_inch_a 7.0" A 720x1280 2lane
7_0_inch_b 7.0" B 720x1280 2lane
7_0_inch_c 7.0" C 1024x600 2lane
8_0_inch_a 8.0" 800x1280 2lane
8_0_inch_a_4lane 8.0" 800x1280 4lane
8_8_inch_a 8.8" 480x1920 2lane

View File

@@ -8,7 +8,7 @@
/ {
compatible = "brcm,bcm2835";
fragment@100 {
legacy_frag: fragment@100 {
target = <&csi1>;
__overlay__ {
compatible = "brcm,bcm2835-unicam-legacy";
@@ -17,5 +17,12 @@
__overrides__ {
media-controller = <0>,"!100";
// Overwrites the cam0 override from tc358743.dtsi as we need to
// update legacy_frag.
cam0 = <&i2c_frag>, "target:0=",<&i2c_csi_dsi0>,
<&csi_frag>, "target:0=",<&csi0>,
<&clk_frag>, "target:0=",<&cam0_clk>,
<&tc358743>, "clocks:0=",<&cam0_clk>,
<&legacy_frag>, "target:0=",<&csi0>;
};
};

View File

@@ -84,6 +84,7 @@
5_5_inch_a = <&dsi_panel>, "compatible=waveshare,5.5-dsi-touch-a";
7_0_inch_a = <&dsi_panel>, "compatible=waveshare,7.0-dsi-touch-a";
7_0_inch_b = <&dsi_panel>, "compatible=waveshare,7.0-dsi-touch-b";
7_0_inch_c = <&dsi_panel>, "compatible=waveshare,7.0-dsi-touch-c";
8_0_inch_a = <&dsi_panel>, "compatible=waveshare,8.0-dsi-touch-a";
8_0_inch_a_4lane = <&dsi_panel>, "compatible=waveshare,8.0-dsi-touch-a-4lane";
8_8_inch_a = <&dsi_panel>, "compatible=waveshare,8.8-dsi-touch-a";

View File

@@ -1374,6 +1374,25 @@ static const struct panel_init_cmd ws_panel_7_a_init[] = {
{},
};
static const struct panel_init_cmd ws_panel_7_c_init[] = {
_INIT_DCS_CMD(0x80, 0x8B),
_INIT_DCS_CMD(0x81, 0x78),
_INIT_DCS_CMD(0x82, 0x84),
_INIT_DCS_CMD(0x83, 0x88),
_INIT_DCS_CMD(0x84, 0xA8),
_INIT_DCS_CMD(0x85, 0xE3),
_INIT_DCS_CMD(0x86, 0x88),
_INIT_DCS_CMD(0x87, 0x5A),
_INIT_DCS_CMD(0xB0, 0x80),
_INIT_DCS_CMD(0xB1, 0x30),
_INIT_DCS_CMD(0xB2, 0x50),
_INIT_DCS_CMD(0x11),
_INIT_DELAY_CMD(120),
_INIT_DCS_CMD(0x29),
_INIT_DELAY_CMD(20),
{},
};
static const struct panel_init_cmd ws_panel_5_5_a_init[] = {
_INIT_DCS_CMD(0xB9, 0xFF, 0x83, 0x94),
_INIT_DCS_CMD(0xBA, 0x61, 0x03, 0x68, 0x6B, 0xB2, 0xC0),
@@ -1902,6 +1921,20 @@ static const struct drm_display_mode ws_panel_7_a_mode = {
.height_mm = 154,
};
static const struct drm_display_mode ws_panel_7_c_mode = {
.clock = 51700,
.hdisplay = 1024,
.hsync_start = 1024 + 160,
.hsync_end = 1024 + 160 + 10,
.htotal = 1024 + 160 + 10 + 160,
.vdisplay = 600,
.vsync_start = 600 + 12,
.vsync_end = 600 + 12 + 1,
.vtotal = 600 + 12 + 1 + 23,
.width_mm = 154,
.height_mm = 85,
};
static const struct drm_display_mode ws_panel_5_5_a_mode = {
.clock = 65000,
.hdisplay = 720,
@@ -2201,6 +2234,15 @@ static const struct ws_panel_desc ws_panel_7_inch_a_desc = {
.format = MIPI_DSI_FMT_RGB888,
};
static const struct ws_panel_desc ws_panel_7_inch_c_desc = {
.init = ws_panel_7_c_init,
.mode = &ws_panel_7_c_mode,
.mode_flags = MIPI_DSI_MODE_VIDEO_HSE | MIPI_DSI_MODE_VIDEO |
MIPI_DSI_MODE_LPM | MIPI_DSI_CLOCK_NON_CONTINUOUS,
.lanes = 2,
.format = MIPI_DSI_FMT_RGB888,
};
static const struct ws_panel_desc ws_panel_5_5_inch_a_desc = {
.init = ws_panel_5_5_a_init,
.mode = &ws_panel_5_5_a_mode,
@@ -2258,6 +2300,7 @@ static const struct of_device_id ws_panel_of_match[] = {
{ .compatible = "waveshare,8.0-dsi-touch-a", &ws_panel_8_inch_a_desc },
{ .compatible = "waveshare,7.0-dsi-touch-a", &ws_panel_7_inch_a_desc },
{ .compatible = "waveshare,7.0-dsi-touch-b", &ws_panel_7_inch_a_desc },
{ .compatible = "waveshare,7.0-dsi-touch-c", &ws_panel_7_inch_c_desc },
{ .compatible = "waveshare,5.5-dsi-touch-a",
&ws_panel_5_5_inch_a_desc },
{ .compatible = "waveshare,5.0-dsi-touch-a", &ws_panel_5_inch_a_desc },