This patchset adds support for s5pv210 soc, into
Samsung DRM Rotator driver. Currently only NV12 and XRGB8888 formats
are supported.
It was tested by using simple tool from
https://www.spinics.net/lists/linux-samsung-soc/msg60498.html
Changes from v1:
- fixed order of chipsets in documentation and removed ordering
from it
Paweł Chmiel (3):
drm/exynos: rotator: Add support for s5pv210
dt-bindings: gpu: samsung-rotator: Document s5pv210 support
ARM: dts: s5pv210: Add node for exynos-rotator
.../bindings/gpu/samsung-rotator.txt | 7 +++---
arch/arm/boot/dts/s5pv210.dtsi | 9 ++++++++
drivers/gpu/drm/exynos/exynos_drm_rotator.c | 23 +++++++++++++++++++
3 files changed, 36 insertions(+), 3 deletions(-)
--
2.17.1
This commit adds support for s5pv210.
Currently only NV12 and XRGB8888 formats are supported.
It was tested by using tool from
https://www.spinics.net/lists/linux-samsung-soc/msg60498.html
Signed-off-by: Paweł Chmiel <[email protected]>
---
drivers/gpu/drm/exynos/exynos_drm_rotator.c | 23 +++++++++++++++++++++
1 file changed, 23 insertions(+)
diff --git a/drivers/gpu/drm/exynos/exynos_drm_rotator.c b/drivers/gpu/drm/exynos/exynos_drm_rotator.c
index 8d67b2a54be3..05abfed6f7f8 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_rotator.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_rotator.c
@@ -356,6 +356,11 @@ static int rotator_runtime_resume(struct device *dev)
}
#endif
+static const struct drm_exynos_ipp_limit rotator_s5pv210_rbg888_limits[] = {
+ { IPP_SIZE_LIMIT(BUFFER, .h = { 8, SZ_16K }, .v = { 8, SZ_16K }) },
+ { IPP_SIZE_LIMIT(AREA, .h.align = 2, .v.align = 2) },
+};
+
static const struct drm_exynos_ipp_limit rotator_4210_rbg888_limits[] = {
{ IPP_SIZE_LIMIT(BUFFER, .h = { 8, SZ_16K }, .v = { 8, SZ_16K }) },
{ IPP_SIZE_LIMIT(AREA, .h.align = 4, .v.align = 4) },
@@ -371,6 +376,11 @@ static const struct drm_exynos_ipp_limit rotator_5250_rbg888_limits[] = {
{ IPP_SIZE_LIMIT(AREA, .h.align = 2, .v.align = 2) },
};
+static const struct drm_exynos_ipp_limit rotator_s5pv210_yuv_limits[] = {
+ { IPP_SIZE_LIMIT(BUFFER, .h = { 32, SZ_64K }, .v = { 32, SZ_64K }) },
+ { IPP_SIZE_LIMIT(AREA, .h.align = 8, .v.align = 8) },
+};
+
static const struct drm_exynos_ipp_limit rotator_4210_yuv_limits[] = {
{ IPP_SIZE_LIMIT(BUFFER, .h = { 32, SZ_64K }, .v = { 32, SZ_64K }) },
{ IPP_SIZE_LIMIT(AREA, .h.align = 8, .v.align = 8) },
@@ -381,6 +391,11 @@ static const struct drm_exynos_ipp_limit rotator_4412_yuv_limits[] = {
{ IPP_SIZE_LIMIT(AREA, .h.align = 8, .v.align = 8) },
};
+static const struct exynos_drm_ipp_formats rotator_s5pv210_formats[] = {
+ { IPP_SRCDST_FORMAT(XRGB8888, rotator_s5pv210_rbg888_limits) },
+ { IPP_SRCDST_FORMAT(NV12, rotator_s5pv210_yuv_limits) },
+};
+
static const struct exynos_drm_ipp_formats rotator_4210_formats[] = {
{ IPP_SRCDST_FORMAT(XRGB8888, rotator_4210_rbg888_limits) },
{ IPP_SRCDST_FORMAT(NV12, rotator_4210_yuv_limits) },
@@ -396,6 +411,11 @@ static const struct exynos_drm_ipp_formats rotator_5250_formats[] = {
{ IPP_SRCDST_FORMAT(NV12, rotator_4412_yuv_limits) },
};
+static const struct rot_variant rotator_s5pv210_data = {
+ .formats = rotator_s5pv210_formats,
+ .num_formats = ARRAY_SIZE(rotator_s5pv210_formats),
+};
+
static const struct rot_variant rotator_4210_data = {
.formats = rotator_4210_formats,
.num_formats = ARRAY_SIZE(rotator_4210_formats),
@@ -413,6 +433,9 @@ static const struct rot_variant rotator_5250_data = {
static const struct of_device_id exynos_rotator_match[] = {
{
+ .compatible = "samsung,s5pv210-rotator",
+ .data = &rotator_s5pv210_data,
+ }, {
.compatible = "samsung,exynos4210-rotator",
.data = &rotator_4210_data,
}, {
--
2.17.1
This commit documents new compatible for s5pv210 soc,
which will be also supported by this driver.
Signed-off-by: Paweł Chmiel <[email protected]>
---
Changes from v1:
- Removed list enumeration
- Placed s5pv210 at beginning of list (it's the oldest chipset)
---
Documentation/devicetree/bindings/gpu/samsung-rotator.txt | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/Documentation/devicetree/bindings/gpu/samsung-rotator.txt b/Documentation/devicetree/bindings/gpu/samsung-rotator.txt
index 82cd1ed0be93..3aca2578da0b 100644
--- a/Documentation/devicetree/bindings/gpu/samsung-rotator.txt
+++ b/Documentation/devicetree/bindings/gpu/samsung-rotator.txt
@@ -2,9 +2,10 @@
Required properties:
- compatible : value should be one of the following:
- (a) "samsung,exynos4210-rotator" for Rotator IP in Exynos4210
- (b) "samsung,exynos4212-rotator" for Rotator IP in Exynos4212/4412
- (c) "samsung,exynos5250-rotator" for Rotator IP in Exynos5250
+ * "samsung,s5pv210-rotator" for Rotator IP in S5PV210
+ * "samsung,exynos4210-rotator" for Rotator IP in Exynos4210
+ * "samsung,exynos4212-rotator" for Rotator IP in Exynos4212/4412
+ * "samsung,exynos5250-rotator" for Rotator IP in Exynos5250
- reg : Physical base address of the IP registers and length of memory
mapped region.
--
2.17.1
This commit adds node for Exynos Rorator device,
so it can be used on all s5pv210 based devices.
Signed-off-by: Paweł Chmiel <[email protected]>
---
arch/arm/boot/dts/s5pv210.dtsi | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/arch/arm/boot/dts/s5pv210.dtsi b/arch/arm/boot/dts/s5pv210.dtsi
index 75f454a210d6..a5463003c7f6 100644
--- a/arch/arm/boot/dts/s5pv210.dtsi
+++ b/arch/arm/boot/dts/s5pv210.dtsi
@@ -542,6 +542,15 @@
#dma-requests = <1>;
};
+ rotator: rotator@fa300000 {
+ compatible = "samsung,s5pv210-rotator";
+ reg = <0xfa300000 0x1000>;
+ interrupt-parent = <&vic2>;
+ interrupts = <4>;
+ clocks = <&clocks CLK_ROTATOR>;
+ clock-names = "rotator";
+ };
+
i2c1: i2c@fab00000 {
compatible = "samsung,s3c2440-i2c";
reg = <0xfab00000 0x1000>;
--
2.17.1
On Fri, 28 Dec 2018 16:19:03 +0100, =?UTF-8?q?Pawe=C5=82=20Chmiel?= wrote:
> This commit documents new compatible for s5pv210 soc,
> which will be also supported by this driver.
>
> Signed-off-by: Paweł Chmiel <[email protected]>
> ---
> Changes from v1:
> - Removed list enumeration
> - Placed s5pv210 at beginning of list (it's the oldest chipset)
> ---
> Documentation/devicetree/bindings/gpu/samsung-rotator.txt | 7 ++++---
> 1 file changed, 4 insertions(+), 3 deletions(-)
>
Reviewed-by: Rob Herring <[email protected]>
On Fri, 28 Dec 2018 at 16:19, Paweł Chmiel
<[email protected]> wrote:
>
> This commit documents new compatible for s5pv210 soc,
> which will be also supported by this driver.
>
> Signed-off-by: Paweł Chmiel <[email protected]>
> ---
> Changes from v1:
> - Removed list enumeration
> - Placed s5pv210 at beginning of list (it's the oldest chipset)
> ---
> Documentation/devicetree/bindings/gpu/samsung-rotator.txt | 7 ++++---
> 1 file changed, 4 insertions(+), 3 deletions(-)
Acked-by: Krzysztof Kozlowski <[email protected]>
Best regards,
Krzysztof
On Fri, Dec 28, 2018 at 04:19:04PM +0100, Paweł Chmiel wrote:
> This commit adds node for Exynos Rorator device,
> so it can be used on all s5pv210 based devices.
>
> Signed-off-by: Paweł Chmiel <[email protected]>
> ---
> arch/arm/boot/dts/s5pv210.dtsi | 9 +++++++++
Thanks, applied.
Best regards,
Krzysztof