1 | The ClockworkPi DevTerm (all models) uses a 6.86" IPS display | 1 | The ClockworkPi DevTerm (all models) uses a 6.86" IPS display |
---|---|---|---|
2 | of unknown provenance, which uses the Chipone ICNL9707 IC driver[1]. | 2 | of unknown provenance, which uses the Chipone ICNL9707 IC driver[1]. |
3 | 3 | ||
4 | The display panel I have has two model numbers: TXW686001 and WTL068601G, | 4 | The display panel Max Fierke has has two model numbers: TXW686001 and |
5 | but cannot find any manufacturer associated with either, so opting for the | 5 | WTL068601G, but couldn’t find any manufacturer associated with either, so |
6 | ClockworkPi model number. | 6 | he opted for the ClockworkPi model number. |
7 | 7 | ||
8 | This driver is based on the GPL-licensed driver released by ClockworkPi[1], | 8 | This driver is based on the GPL-licensed driver released by ClockworkPi[1], |
9 | authored by Pinfan Zhu, with some additional cleanup, rotation support, | 9 | authored by Pinfan Zhu, with some additional cleanup, rotation support, |
10 | and display sleep re-enabling done by me. | 10 | and display sleep re-enabling done by Max Fierke. |
11 | 11 | ||
12 | [1] https://github.com/clockworkpi/DevTerm/blob/main/Schematics/ICNL9707_Datasheet.pdf | 12 | [1] https://github.com/clockworkpi/DevTerm/blob/main/Schematics/ICNL9707_Datasheet.pdf |
13 | [2] https://github.com/clockworkpi/DevTerm/blob/main/Code/patch/armbian_build_a06/patch/kernel-004-panel.patch | 13 | [2] https://github.com/clockworkpi/DevTerm/blob/main/Code/patch/armbian_build_a06/patch/kernel-004-panel.patch |
14 | 14 | ||
15 | Thanks to Krzysztof Kozlowski, Rob Herring, and Sam Ravnborg for their | 15 | Thanks to Krzysztof Kozlowski, Rob Herring, and Sam Ravnborg for their |
16 | prior reviews and apologies for the long delay between patch set versions. | 16 | prior reviews. |
17 | |||
18 | I hope this is the correct way of reviving old patches. | ||
19 | |||
20 | Changes in v4: | ||
21 | - Use existing clockwork vendor ID | ||
22 | - Update the panel initalization code for DRM changes | ||
17 | 23 | ||
18 | Changes in v3: | 24 | Changes in v3: |
19 | - dt-bindings: add missing lines for spacing | 25 | - dt-bindings: add missing lines for spacing |
20 | 26 | ||
21 | Changes in v2: | 27 | Changes in v2: |
... | ... | ||
28 | - replace ICNL9707_DCS macro with mipi_dsi_dcs_write_seq | 34 | - replace ICNL9707_DCS macro with mipi_dsi_dcs_write_seq |
29 | - use dev_err_probe instead of checking EPROBE_DEFER | 35 | - use dev_err_probe instead of checking EPROBE_DEFER |
30 | - fixed return type of cwd686_remove to be void following changes to mipi_dsi_driver | 36 | - fixed return type of cwd686_remove to be void following changes to mipi_dsi_driver |
31 | - add .get_orientation callback | 37 | - add .get_orientation callback |
32 | 38 | ||
33 | Max Fierke (4): | ||
34 | dt-bindings: vendor-prefixes: Add prefix for ClockworkPi | ||
35 | dt-bindings: display: Add ClockworkPi CWD686 panel | ||
36 | drm: panel: Add driver for ClockworkPi cwd686 panel | ||
37 | drm/panel: clockworkpi-cwd686: Implement .get_orientation callback | ||
38 | 39 | ||
39 | .../display/panel/clockworkpi,cwd686.yaml | 65 +++ | ||
40 | .../devicetree/bindings/vendor-prefixes.yaml | 2 + | ||
41 | drivers/gpu/drm/panel/Kconfig | 12 + | ||
42 | drivers/gpu/drm/panel/Makefile | 1 + | ||
43 | .../gpu/drm/panel/panel-clockworkpi-cwd686.c | 456 ++++++++++++++++++ | ||
44 | 5 files changed, 536 insertions(+) | ||
45 | create mode 100644 Documentation/devicetree/bindings/display/panel/clockworkpi,cwd686.yaml | ||
46 | create mode 100644 drivers/gpu/drm/panel/panel-clockworkpi-cwd686.c | ||
47 | |||
48 | -- | ||
49 | 2.37.2 | diff view generated by jsdifflib |
Deleted patch | |||
---|---|---|---|
1 | Add a prefix for Clockwork Tech LLC, known as ClockworkPi. They | ||
2 | produce a number of hobbyist devices, including the ClockworkPi | ||
3 | DevTerm and GameShell. | ||
4 | 1 | ||
5 | Signed-off-by: Max Fierke <max@maxfierke.com> | ||
6 | Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> | ||
7 | --- | ||
8 | Documentation/devicetree/bindings/vendor-prefixes.yaml | 2 ++ | ||
9 | 1 file changed, 2 insertions(+) | ||
10 | |||
11 | diff --git a/Documentation/devicetree/bindings/vendor-prefixes.yaml b/Documentation/devicetree/bindings/vendor-prefixes.yaml | ||
12 | index XXXXXXX..XXXXXXX 100644 | ||
13 | --- a/Documentation/devicetree/bindings/vendor-prefixes.yaml | ||
14 | +++ b/Documentation/devicetree/bindings/vendor-prefixes.yaml | ||
15 | @@ -XXX,XX +XXX,XX @@ patternProperties: | ||
16 | description: Cirrus Logic, Inc. | ||
17 | "^cisco,.*": | ||
18 | description: Cisco Systems, Inc. | ||
19 | + "^clockworkpi,.*": | ||
20 | + description: Clockwork Tech LLC | ||
21 | "^cloudengines,.*": | ||
22 | description: Cloud Engines, Inc. | ||
23 | "^cnm,.*": | ||
24 | -- | ||
25 | 2.37.2 | diff view generated by jsdifflib |
1 | From: Max Fierke <max@maxfierke.com> | ||
---|---|---|---|
2 | |||
1 | The ClockworkPi DevTerm (all models) uses a 6.86" IPS display | 3 | The ClockworkPi DevTerm (all models) uses a 6.86" IPS display |
2 | of unknown provenance, which uses the Chipone ICNL9707 IC driver. | 4 | of unknown provenance, which uses the Chipone ICNL9707 IC driver. |
3 | 5 | ||
4 | The display panel I have has two model numbers: TXW686001 and WTL068601G, | 6 | The display panel I have has two model numbers: TXW686001 and WTL068601G, |
5 | but cannot find any manufacturer associated with either, so opting for the | 7 | but cannot find any manufacturer associated with either, so opting for the |
... | ... | ||
10 | and display sleep re-enabling done by me. | 12 | and display sleep re-enabling done by me. |
11 | 13 | ||
12 | Original driver here for reference: https://github.com/clockworkpi/DevTerm/blob/main/Code/patch/armbian_build_a06/patch/kernel-004-panel.patch | 14 | Original driver here for reference: https://github.com/clockworkpi/DevTerm/blob/main/Code/patch/armbian_build_a06/patch/kernel-004-panel.patch |
13 | Display IC datasheet provided here: https://github.com/clockworkpi/DevTerm/blob/main/Schematics/ICNL9707_Datasheet.pdf | 15 | Display IC datasheet provided here: https://github.com/clockworkpi/DevTerm/blob/main/Schematics/ICNL9707_Datasheet.pdf |
14 | 16 | ||
17 | Co-authored-by: Charlotte Deleńkec <lotte@chir.rs> | ||
18 | Signed-off-by: Charlotte Deleńkec <lotte@chir.rs> | ||
15 | Signed-off-by: Max Fierke <max@maxfierke.com> | 19 | Signed-off-by: Max Fierke <max@maxfierke.com> |
16 | --- | 20 | --- |
17 | Changes in v3: | ||
18 | - no changes | ||
19 | |||
20 | Changes in v2: (Sam Ravnborg's suggestions) | ||
21 | - remove some unused properties from definition (e.g. enable_gpio, supply) | ||
22 | - add missing regulators | ||
23 | - reorder includes | ||
24 | - remove redundant ctx->backlight in favor of backlight through drm_panel_of_backlight | ||
25 | - remove now-unneeded ctx->enabled and enable/disable hooks | ||
26 | - replace ICNL9707_DCS macro with mipi_dsi_dcs_write_seq | ||
27 | - use dev_err_probe instead of checking EPROBE_DEFER | ||
28 | - fixed return type of cwd686_remove to be void following changes to mipi_dsi_driver | ||
29 | |||
30 | drivers/gpu/drm/panel/Kconfig | 12 + | 21 | drivers/gpu/drm/panel/Kconfig | 12 + |
31 | drivers/gpu/drm/panel/Makefile | 1 + | 22 | drivers/gpu/drm/panel/Makefile | 1 + |
32 | .../gpu/drm/panel/panel-clockworkpi-cwd686.c | 445 ++++++++++++++++++ | 23 | .../gpu/drm/panel/panel-clockwork-cwd686.c | 447 ++++++++++++++++++ |
33 | 3 files changed, 458 insertions(+) | 24 | 3 files changed, 460 insertions(+) |
34 | create mode 100644 drivers/gpu/drm/panel/panel-clockworkpi-cwd686.c | 25 | create mode 100644 drivers/gpu/drm/panel/panel-clockwork-cwd686.c |
35 | 26 | ||
36 | diff --git a/drivers/gpu/drm/panel/Kconfig b/drivers/gpu/drm/panel/Kconfig | 27 | diff --git a/drivers/gpu/drm/panel/Kconfig b/drivers/gpu/drm/panel/Kconfig |
37 | index XXXXXXX..XXXXXXX 100644 | 28 | index XXXXXXX..XXXXXXX 100644 |
38 | --- a/drivers/gpu/drm/panel/Kconfig | 29 | --- a/drivers/gpu/drm/panel/Kconfig |
39 | +++ b/drivers/gpu/drm/panel/Kconfig | 30 | +++ b/drivers/gpu/drm/panel/Kconfig |
40 | @@ -XXX,XX +XXX,XX @@ config DRM_PANEL_BOE_TV101WUM_NL6 | 31 | @@ -XXX,XX +XXX,XX @@ config DRM_PANEL_BOE_TV101WUM_LL2 |
41 | Say Y here if you want to support for BOE TV101WUM and AUO KD101N80 | 32 | Say Y here if you want to support for BOE TV101WUM-LL2 |
42 | 45NA WUXGA PANEL DSI Video Mode panel | 33 | WUXGA PANEL DSI Video Mode panel |
43 | 34 | ||
44 | +config DRM_PANEL_CLOCKWORKPI_CWD686 | 35 | +config DRM_PANEL_CLOCKWORK_CWD686 |
45 | + tristate "ClockworkPi CWD686 panel" | 36 | + tristate "Clockwork CWD686 panel" |
46 | + depends on OF | 37 | + depends on OF |
47 | + depends on DRM_MIPI_DSI | 38 | + depends on DRM_MIPI_DSI |
48 | + depends on BACKLIGHT_CLASS_DEVICE | 39 | + depends on BACKLIGHT_CLASS_DEVICE |
49 | + help | 40 | + help |
50 | + Say Y here if you want to enable support for the ClockworkPi CWD686 | 41 | + Say Y here if you want to enable support for the Clockwork CWD686 |
51 | + ICNL9707-based panel, e.g. as used within the ClockworkPi DevTerm. | 42 | + ICNL9707-based panel, e.g. as used within the Clockwork DevTerm. |
52 | + The panel has a 480x1280 resolution and uses 24 bit RGB per pixel. | 43 | + The panel has a 480x1280 resolution and uses 24 bit RGB per pixel. |
53 | + | 44 | + |
54 | + To compile this driver as a module, choose M here. | 45 | + To compile this driver as a module, choose M here. |
55 | + | 46 | + |
56 | config DRM_PANEL_DSI_CM | 47 | config DRM_PANEL_EBBG_FT8719 |
57 | tristate "Generic DSI command mode panels" | 48 | tristate "EBBG FT8719 panel driver" |
58 | depends on OF | 49 | depends on OF |
59 | diff --git a/drivers/gpu/drm/panel/Makefile b/drivers/gpu/drm/panel/Makefile | 50 | diff --git a/drivers/gpu/drm/panel/Makefile b/drivers/gpu/drm/panel/Makefile |
60 | index XXXXXXX..XXXXXXX 100644 | 51 | index XXXXXXX..XXXXXXX 100644 |
61 | --- a/drivers/gpu/drm/panel/Makefile | 52 | --- a/drivers/gpu/drm/panel/Makefile |
62 | +++ b/drivers/gpu/drm/panel/Makefile | 53 | +++ b/drivers/gpu/drm/panel/Makefile |
63 | @@ -XXX,XX +XXX,XX @@ obj-$(CONFIG_DRM_PANEL_ASUS_Z00T_TM5P5_NT35596) += panel-asus-z00t-tm5p5-n35596. | 54 | @@ -XXX,XX +XXX,XX @@ obj-$(CONFIG_DRM_PANEL_BOE_HIMAX8279D) += panel-boe-himax8279d.o |
64 | obj-$(CONFIG_DRM_PANEL_BOE_BF060Y8M_AJ0) += panel-boe-bf060y8m-aj0.o | 55 | obj-$(CONFIG_DRM_PANEL_BOE_TH101MB31UIG002_28A) += panel-boe-th101mb31ig002-28a.o |
65 | obj-$(CONFIG_DRM_PANEL_BOE_HIMAX8279D) += panel-boe-himax8279d.o | 56 | obj-$(CONFIG_DRM_PANEL_BOE_TV101WUM_LL2) += panel-boe-tv101wum-ll2.o |
66 | obj-$(CONFIG_DRM_PANEL_BOE_TV101WUM_NL6) += panel-boe-tv101wum-nl6.o | 57 | obj-$(CONFIG_DRM_PANEL_BOE_TV101WUM_NL6) += panel-boe-tv101wum-nl6.o |
67 | +obj-$(CONFIG_DRM_PANEL_CLOCKWORKPI_CWD686) += panel-clockworkpi-cwd686.o | 58 | +obj-$(CONFIG_DRM_PANEL_CLOCKWORK_CWD686) += panel-clockwork-cwd686.o |
68 | obj-$(CONFIG_DRM_PANEL_DSI_CM) += panel-dsi-cm.o | 59 | obj-$(CONFIG_DRM_PANEL_DSI_CM) += panel-dsi-cm.o |
69 | obj-$(CONFIG_DRM_PANEL_LVDS) += panel-lvds.o | 60 | obj-$(CONFIG_DRM_PANEL_LVDS) += panel-lvds.o |
70 | obj-$(CONFIG_DRM_PANEL_SIMPLE) += panel-simple.o | 61 | obj-$(CONFIG_DRM_PANEL_SIMPLE) += panel-simple.o |
71 | diff --git a/drivers/gpu/drm/panel/panel-clockworkpi-cwd686.c b/drivers/gpu/drm/panel/panel-clockworkpi-cwd686.c | 62 | diff --git a/drivers/gpu/drm/panel/panel-clockwork-cwd686.c b/drivers/gpu/drm/panel/panel-clockwork-cwd686.c |
72 | new file mode 100644 | 63 | new file mode 100644 |
73 | index XXXXXXX..XXXXXXX | 64 | index XXXXXXX..XXXXXXX |
74 | --- /dev/null | 65 | --- /dev/null |
75 | +++ b/drivers/gpu/drm/panel/panel-clockworkpi-cwd686.c | 66 | +++ b/drivers/gpu/drm/panel/panel-clockwork-cwd686.c |
76 | @@ -XXX,XX +XXX,XX @@ | 67 | @@ -XXX,XX +XXX,XX @@ |
77 | +// SPDX-License-Identifier: GPL-2.0+ | 68 | +// SPDX-License-Identifier: GPL-2.0+ |
78 | +/* | 69 | +/* |
79 | + * Copyright (c) 2021 Clockwork Tech LLC | 70 | + * Copyright (c) 2021 Clockwork Tech LLC |
80 | + * Copyright (c) 2021-2022 Max Fierke <max@maxfierke.com> | 71 | + * Copyright (c) 2021-2022 Max Fierke <max@maxfierke.com> |
81 | + * | 72 | + * |
82 | + * Based on Pinfan Zhu's work on panel-cwd686.c for ClockworkPi's 5.10 BSP | 73 | + * Based on Pinfan Zhu's work on panel-cwd686.c for Clockwork's 5.10 BSP |
83 | + */ | 74 | + */ |
84 | + | 75 | + |
85 | +#include <linux/gpio/consumer.h> | 76 | +#include <linux/gpio/consumer.h> |
86 | +#include <linux/regulator/consumer.h> | 77 | +#include <linux/regulator/consumer.h> |
87 | +#include <linux/delay.h> | 78 | +#include <linux/delay.h> |
... | ... | ||
477 | + | 468 | + |
478 | + err = drm_panel_of_backlight(&ctx->panel); | 469 | + err = drm_panel_of_backlight(&ctx->panel); |
479 | + if (err) | 470 | + if (err) |
480 | + return dev_err_probe(dev, err, "Failed to get backlight\n"); | 471 | + return dev_err_probe(dev, err, "Failed to get backlight\n"); |
481 | + | 472 | + |
473 | + ctx->panel.prepare_prev_first = true; | ||
482 | + drm_panel_add(&ctx->panel); | 474 | + drm_panel_add(&ctx->panel); |
483 | + | 475 | + |
484 | + err = mipi_dsi_attach(dsi); | 476 | + err = mipi_dsi_attach(dsi); |
485 | + if (err < 0) { | 477 | + if (err < 0) { |
486 | + dev_err(dev, "mipi_dsi_attach() failed: %d\n", err); | 478 | + dev_err(dev, "mipi_dsi_attach() failed: %d\n", err); |
... | ... | ||
498 | + mipi_dsi_detach(dsi); | 490 | + mipi_dsi_detach(dsi); |
499 | + drm_panel_remove(&ctx->panel); | 491 | + drm_panel_remove(&ctx->panel); |
500 | +} | 492 | +} |
501 | + | 493 | + |
502 | +static const struct of_device_id cwd686_of_match[] = { | 494 | +static const struct of_device_id cwd686_of_match[] = { |
503 | + { .compatible = "clockworkpi,cwd686" }, | 495 | + { .compatible = "clockwork,cwd686" }, |
504 | + { /* sentinel */ } | 496 | + { /* sentinel */ } |
505 | +}; | 497 | +}; |
506 | +MODULE_DEVICE_TABLE(of, cwd686_of_match); | 498 | +MODULE_DEVICE_TABLE(of, cwd686_of_match); |
507 | + | 499 | + |
508 | +static struct mipi_dsi_driver cwd686_driver = { | 500 | +static struct mipi_dsi_driver cwd686_driver = { |
509 | + .probe = cwd686_probe, | 501 | + .probe = cwd686_probe, |
510 | + .remove = cwd686_remove, | 502 | + .remove = cwd686_remove, |
511 | + .driver = { | 503 | + .driver = { |
512 | + .name = "panel-clockworkpi-cwd686", | 504 | + .name = "panel-clockwork-cwd686", |
513 | + .of_match_table = cwd686_of_match, | 505 | + .of_match_table = cwd686_of_match, |
514 | + }, | 506 | + }, |
515 | +}; | 507 | +}; |
516 | +module_mipi_dsi_driver(cwd686_driver); | 508 | +module_mipi_dsi_driver(cwd686_driver); |
517 | + | 509 | + |
518 | +MODULE_AUTHOR("Pinfan Zhu <zhu@clockworkpi.com>"); | 510 | +MODULE_AUTHOR("Pinfan Zhu <zhu@clockworkpi.com>"); |
519 | +MODULE_AUTHOR("Max Fierke <max@maxfierke.com>"); | 511 | +MODULE_AUTHOR("Max Fierke <max@maxfierke.com>"); |
520 | +MODULE_DESCRIPTION("ClockworkPi CWD686 panel driver"); | 512 | +MODULE_AUTHOR("Charlotte Deleńkec <lotte@chir.rs>"); |
513 | +MODULE_DESCRIPTION("Clockwork CWD686 panel driver"); | ||
521 | +MODULE_LICENSE("GPL"); | 514 | +MODULE_LICENSE("GPL"); |
522 | -- | 515 | -- |
523 | 2.37.2 | 516 | 2.48.1 |
517 | diff view generated by jsdifflib |
1 | From: Max Fierke <max@maxfierke.com> | ||
---|---|---|---|
2 | |||
1 | The CWD686 is a 6.86" IPS LCD panel used as the primary | 3 | The CWD686 is a 6.86" IPS LCD panel used as the primary |
2 | display in the ClockworkPi DevTerm portable (all cores) | 4 | display in the ClockworkPi DevTerm portable (all cores) |
3 | 5 | ||
6 | Co-authored-by: Charlotte Deleńkec <lotte@chir.rs> | ||
7 | Signed-off-by: Charlotte Deleńkec <lotte@chir.rs> | ||
4 | Signed-off-by: Max Fierke <max@maxfierke.com> | 8 | Signed-off-by: Max Fierke <max@maxfierke.com> |
5 | Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> | 9 | Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> |
6 | --- | 10 | --- |
7 | Changes in v3 (Krzysztof Kozlowski's Suggestions) | 11 | .../display/panel/clockwork,cwd686.yaml | 65 +++++++++++++++++++ |
8 | - add missing lines for spacing | 12 | 1 file changed, 65 insertions(+) |
13 | create mode 100644 Documentation/devicetree/bindings/display/panel/clockwork,cwd686.yaml | ||
9 | 14 | ||
10 | Changes in v2 (Krzysztof Kozlowski and Rob Herring's Suggestions) | 15 | diff --git a/Documentation/devicetree/bindings/display/panel/clockwork,cwd686.yaml b/Documentation/devicetree/bindings/display/panel/clockwork,cwd686.yaml |
11 | - remove redundant backlight example | ||
12 | - add missing regulators | ||
13 | |||
14 | .../display/panel/clockworkpi,cwd686.yaml | 65 +++++++++++++++++++ | ||
15 | 1 file changed, 65 insertions(+) | ||
16 | create mode 100644 Documentation/devicetree/bindings/display/panel/clockworkpi,cwd686.yaml | ||
17 | |||
18 | diff --git a/Documentation/devicetree/bindings/display/panel/clockworkpi,cwd686.yaml b/Documentation/devicetree/bindings/display/panel/clockworkpi,cwd686.yaml | ||
19 | new file mode 100644 | 16 | new file mode 100644 |
20 | index XXXXXXX..XXXXXXX | 17 | index XXXXXXX..XXXXXXX |
21 | --- /dev/null | 18 | --- /dev/null |
22 | +++ b/Documentation/devicetree/bindings/display/panel/clockworkpi,cwd686.yaml | 19 | +++ b/Documentation/devicetree/bindings/display/panel/clockwork,cwd686.yaml |
23 | @@ -XXX,XX +XXX,XX @@ | 20 | @@ -XXX,XX +XXX,XX @@ |
24 | +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) | 21 | +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) |
25 | +%YAML 1.2 | 22 | +%YAML 1.2 |
26 | +--- | 23 | +--- |
27 | +$id: http://devicetree.org/schemas/display/panel/clockworkpi,cwd686.yaml# | 24 | +$id: http://devicetree.org/schemas/display/panel/clockwork,cwd686.yaml# |
28 | +$schema: http://devicetree.org/meta-schemas/core.yaml# | 25 | +$schema: http://devicetree.org/meta-schemas/core.yaml# |
29 | + | 26 | + |
30 | +title: ClockworkPi CWD686 6.86" IPS LCD panel | 27 | +title: Clockwork CWD686 6.86" IPS LCD panel |
31 | + | 28 | + |
32 | +maintainers: | 29 | +maintainers: |
33 | + - Max Fierke <max@maxfierke.com> | 30 | + - Max Fierke <max@maxfierke.com> |
34 | + | 31 | + |
35 | +description: | | 32 | +description: | |
36 | + The ClockworkPi CWD686 is a 6.86" ICNL9707-based IPS LCD panel used within the | 33 | + The Clockwork CWD686 is a 6.86" ICNL9707-based IPS LCD panel used within the |
37 | + ClockworkPi DevTerm series of portable devices. The panel has a 480x1280 | 34 | + Clockwork DevTerm series of portable devices. The panel has a 480x1280 |
38 | + resolution and uses 24 bit RGB per pixel. | 35 | + resolution and uses 24 bit RGB per pixel. |
39 | + | 36 | + |
40 | +allOf: | 37 | +allOf: |
41 | + - $ref: panel-common.yaml# | 38 | + - $ref: panel-common.yaml# |
42 | + | 39 | + |
43 | +properties: | 40 | +properties: |
44 | + compatible: | 41 | + compatible: |
45 | + const: clockworkpi,cwd686 | 42 | + const: clockwork,cwd686 |
46 | + | 43 | + |
47 | + reg: | 44 | + reg: |
48 | + description: DSI virtual channel used by that screen | 45 | + description: DSI virtual channel used by that screen |
49 | + maxItems: 1 | 46 | + maxItems: 1 |
50 | + | 47 | + |
... | ... | ||
75 | + dsi { | 72 | + dsi { |
76 | + #address-cells = <1>; | 73 | + #address-cells = <1>; |
77 | + #size-cells = <0>; | 74 | + #size-cells = <0>; |
78 | + | 75 | + |
79 | + panel@0 { | 76 | + panel@0 { |
80 | + compatible = "clockworkpi,cwd686"; | 77 | + compatible = "clockwork,cwd686"; |
81 | + reg = <0>; | 78 | + reg = <0>; |
82 | + backlight = <&backlight>; | 79 | + backlight = <&backlight>; |
83 | + reset-gpios = <&gpio2 28 GPIO_ACTIVE_HIGH>; | 80 | + reset-gpios = <&gpio2 28 GPIO_ACTIVE_HIGH>; |
84 | + rotation = <90>; | 81 | + rotation = <90>; |
85 | + iovcc-supply = <&vcc_1v8>; | 82 | + iovcc-supply = <&vcc_1v8>; |
86 | + vci-supply = <&vcc3v3_sys>; | 83 | + vci-supply = <&vcc3v3_sys>; |
87 | + }; | 84 | + }; |
88 | + }; | 85 | + }; |
89 | -- | 86 | -- |
90 | 2.37.2 | 87 | 2.48.1 |
88 | diff view generated by jsdifflib |
1 | From: Max Fierke <max@maxfierke.com> | ||
---|---|---|---|
2 | |||
1 | Returns the panel's configured orientation | 3 | Returns the panel's configured orientation |
2 | 4 | ||
3 | Signed-off-by: Max Fierke <max@maxfierke.com> | 5 | Signed-off-by: Max Fierke <max@maxfierke.com> |
4 | --- | 6 | --- |
5 | Changes in v3: | 7 | drivers/gpu/drm/panel/panel-clockwork-cwd686.c | 14 +++++++++++++- |
6 | - no changes | 8 | 1 file changed, 13 insertions(+), 1 deletion(-) |
7 | 9 | ||
8 | Changes in v2: | 10 | diff --git a/drivers/gpu/drm/panel/panel-clockwork-cwd686.c b/drivers/gpu/drm/panel/panel-clockwork-cwd686.c |
9 | - this was added as .get_orientation is now available in drm-misc-next since v1 | ||
10 | |||
11 | drivers/gpu/drm/panel/panel-clockworkpi-cwd686.c | 13 ++++++++++++- | ||
12 | 1 file changed, 12 insertions(+), 1 deletion(-) | ||
13 | |||
14 | diff --git a/drivers/gpu/drm/panel/panel-clockworkpi-cwd686.c b/drivers/gpu/drm/panel/panel-clockworkpi-cwd686.c | ||
15 | index XXXXXXX..XXXXXXX 100644 | 11 | index XXXXXXX..XXXXXXX 100644 |
16 | --- a/drivers/gpu/drm/panel/panel-clockworkpi-cwd686.c | 12 | --- a/drivers/gpu/drm/panel/panel-clockwork-cwd686.c |
17 | +++ b/drivers/gpu/drm/panel/panel-clockworkpi-cwd686.c | 13 | +++ b/drivers/gpu/drm/panel/panel-clockwork-cwd686.c |
18 | @@ -XXX,XX +XXX,XX @@ static int cwd686_get_modes(struct drm_panel *panel, struct drm_connector *conne | 14 | @@ -XXX,XX +XXX,XX @@ static int cwd686_get_modes(struct drm_panel *panel, struct drm_connector *conne |
19 | drm_mode_set_name(mode); | 15 | drm_mode_set_name(mode); |
20 | mode->type = DRM_MODE_TYPE_DRIVER | DRM_MODE_TYPE_PREFERRED; | 16 | mode->type = DRM_MODE_TYPE_DRIVER | DRM_MODE_TYPE_PREFERRED; |
21 | 17 | ||
22 | - /* Set up connector's "panel orientation" property */ | 18 | - /* Set up connector's "panel orientation" property */ |
... | ... | ||
29 | drm_mode_probed_add(connector, mode); | 25 | drm_mode_probed_add(connector, mode); |
30 | @@ -XXX,XX +XXX,XX @@ static int cwd686_get_modes(struct drm_panel *panel, struct drm_connector *conne | 26 | @@ -XXX,XX +XXX,XX @@ static int cwd686_get_modes(struct drm_panel *panel, struct drm_connector *conne |
31 | return 1; /* Number of modes */ | 27 | return 1; /* Number of modes */ |
32 | } | 28 | } |
33 | 29 | ||
30 | + | ||
34 | +static enum drm_panel_orientation cwd686_get_orientation(struct drm_panel *panel) | 31 | +static enum drm_panel_orientation cwd686_get_orientation(struct drm_panel *panel) |
35 | +{ | 32 | +{ |
36 | + struct cwd686 *ctx = panel_to_cwd686(panel); | 33 | + struct cwd686 *ctx = panel_to_cwd686(panel); |
37 | + | 34 | + |
38 | + return ctx->orientation; | 35 | + return ctx->orientation; |
... | ... | ||
45 | + .get_orientation = cwd686_get_orientation, | 42 | + .get_orientation = cwd686_get_orientation, |
46 | }; | 43 | }; |
47 | 44 | ||
48 | static int cwd686_probe(struct mipi_dsi_device *dsi) | 45 | static int cwd686_probe(struct mipi_dsi_device *dsi) |
49 | -- | 46 | -- |
50 | 2.37.2 | 47 | 2.48.1 | diff view generated by jsdifflib |