Add dt-bindings for Imagination E5010 JPEG Encoder driver which is
implemented as stateful V4L2 M2M driver.
Co-developed-by: David Huang <d-huang@ti.com>
Signed-off-by: David Huang <d-huang@ti.com>
Signed-off-by: Devarsh Thakkar <devarsht@ti.com>
---
V2: No change
V3:
- Add vendor specific compatible
- Fix commit title and message
- Update reg names
- Update clocks to 1
- Fix dts example with proper naming
.../bindings/media/img,e5010-jpeg-enc.yaml | 81 +++++++++++++++++++
MAINTAINERS | 5 ++
2 files changed, 86 insertions(+)
create mode 100644 Documentation/devicetree/bindings/media/img,e5010-jpeg-enc.yaml
diff --git a/Documentation/devicetree/bindings/media/img,e5010-jpeg-enc.yaml b/Documentation/devicetree/bindings/media/img,e5010-jpeg-enc.yaml
new file mode 100644
index 000000000000..d105a71ee2ea
--- /dev/null
+++ b/Documentation/devicetree/bindings/media/img,e5010-jpeg-enc.yaml
@@ -0,0 +1,81 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/media/img,e5010-jpeg-enc.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Imagination E5010 JPEG Encoder
+
+maintainers:
+ - Devarsh Thakkar <devarsht@ti.com>
+
+description: |
+ The E5010 is a JPEG encoder from Imagination Technologies implemented on
+ TI's AM62A SoC. It is capable of real time encoding of YUV420 and YUV422
+ inputs to JPEG and M-JPEG. It supports baseline JPEG Encoding up to
+ 8Kx8K resolution.
+
+properties:
+ compatible:
+ oneOf:
+ - items:
+ - const: ti,e5010-jpeg-enc
+ - const: img,e5010-jpeg-enc
+ - const: img,e5010-jpeg-enc
+
+ reg:
+ items:
+ - description: The E5010 core register region
+ - description: The E5010 mmu register region
+
+ reg-names:
+ items:
+ - const: core
+ - const: mmu
+
+ power-domains:
+ maxItems: 1
+
+ resets:
+ maxItems: 1
+
+ clocks:
+ maxItems: 1
+
+ clock-names:
+ items:
+ - const: core_clk
+
+ interrupts:
+ maxItems: 1
+
+required:
+ - compatible
+ - reg
+ - reg-names
+ - interrupts
+ - clocks
+ - clock-names
+
+additionalProperties: false
+
+examples:
+ - |
+ #include <dt-bindings/soc/ti,sci_pm_domain.h>
+ #include <dt-bindings/interrupt-controller/arm-gic.h>
+ #include <dt-bindings/interrupt-controller/irq.h>
+
+ soc {
+ #address-cells = <2>;
+ #size-cells = <2>;
+ jpeg-encoder@fd20000 {
+ compatible = "img,e5010-jpeg-enc";
+ reg = <0x00 0xfd20000 0x00 0x100>,
+ <0x00 0xfd20200 0x00 0x200>;
+ reg-names = "core", "mmu";
+ clocks = <&k3_clks 201 0>;
+ clock-names = "core_clk";
+ power-domains = <&k3_pds 201 TI_SCI_PD_EXCLUSIVE>;
+ interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
+ };
+ };
diff --git a/MAINTAINERS b/MAINTAINERS
index d8700b009e22..9425ecf45df6 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -10206,6 +10206,11 @@ S: Maintained
F: Documentation/devicetree/bindings/auxdisplay/img,ascii-lcd.yaml
F: drivers/auxdisplay/img-ascii-lcd.c
+IMGTEC JPEG ENCODER DRIVER
+M: Devarsh Thakkar <devarsht@ti.com>
+S: Supported
+F: Documentation/devicetree/bindings/media/img,e5010-jpeg-enc.yaml
+
IMGTEC IR DECODER DRIVER
S: Orphan
F: drivers/media/rc/img-ir/
--
2.34.1
On 16/08/2023 17:22, Devarsh Thakkar wrote: > Add dt-bindings for Imagination E5010 JPEG Encoder driver which is > implemented as stateful V4L2 M2M driver. > > Co-developed-by: David Huang <d-huang@ti.com> > Signed-off-by: David Huang <d-huang@ti.com> > Signed-off-by: Devarsh Thakkar <devarsht@ti.com> > --- > V2: No change > V3: > - Add vendor specific compatible > - Fix commit title and message > - Update reg names > - Update clocks to 1 > - Fix dts example with proper naming I do not see improvements in the subject. > > .../bindings/media/img,e5010-jpeg-enc.yaml | 81 +++++++++++++++++++ > MAINTAINERS | 5 ++ > 2 files changed, 86 insertions(+) > create mode 100644 Documentation/devicetree/bindings/media/img,e5010-jpeg-enc.yaml > > diff --git a/Documentation/devicetree/bindings/media/img,e5010-jpeg-enc.yaml b/Documentation/devicetree/bindings/media/img,e5010-jpeg-enc.yaml > new file mode 100644 > index 000000000000..d105a71ee2ea > --- /dev/null > +++ b/Documentation/devicetree/bindings/media/img,e5010-jpeg-enc.yaml > @@ -0,0 +1,81 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/media/img,e5010-jpeg-enc.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Imagination E5010 JPEG Encoder > + > +maintainers: > + - Devarsh Thakkar <devarsht@ti.com> > + > +description: | > + The E5010 is a JPEG encoder from Imagination Technologies implemented on > + TI's AM62A SoC. It is capable of real time encoding of YUV420 and YUV422 > + inputs to JPEG and M-JPEG. It supports baseline JPEG Encoding up to > + 8Kx8K resolution. > + > +properties: > + compatible: > + oneOf: > + - items: > + - const: ti,e5010-jpeg-enc TI did not make e5010. Use SoC-based compatible. > + - const: img,e5010-jpeg-enc > + - const: img,e5010-jpeg-enc img,e5010-jpeg-enc cannot be compatible with img,e5010-jpeg-enc. It does not make sense. I guess I did not expect you are going to use what you wrote in v1 directly... I thought it is just about syntax. > + > + reg: > + items: > + - description: The E5010 core register region > + - description: The E5010 mmu register region > + > + reg-names: > + items: > + - const: core > + - const: mmu > + > + power-domains: > + maxItems: 1 > + > + resets: > + maxItems: 1 > + > + clocks: > + maxItems: 1 > + > + clock-names: > + items: > + - const: core_clk Drop _clk or even drop clock-names. It brings little benefit for one-entry list. Best regards, Krzysztof
Hi Krzysztof,
Thanks for the review.
On 19/08/23 19:30, Krzysztof Kozlowski wrote:
> On 16/08/2023 17:22, Devarsh Thakkar wrote:
>> Add dt-bindings for Imagination E5010 JPEG Encoder driver which is
>> implemented as stateful V4L2 M2M driver.
>>
>> Co-developed-by: David Huang <d-huang@ti.com>
>> Signed-off-by: David Huang <d-huang@ti.com>
>> Signed-off-by: Devarsh Thakkar <devarsht@ti.com>
>> ---
>> V2: No change
>> V3:
>> - Add vendor specific compatible
>> - Fix commit title and message
>> - Update reg names
>> - Update clocks to 1
>> - Fix dts example with proper naming
>
> I do not see improvements in the subject.
>
Sorry, Will correct in v4.
>>
>> .../bindings/media/img,e5010-jpeg-enc.yaml | 81 +++++++++++++++++++
>> MAINTAINERS | 5 ++
>> 2 files changed, 86 insertions(+)
>> create mode 100644 Documentation/devicetree/bindings/media/img,e5010-jpeg-enc.yaml
>>
>> diff --git a/Documentation/devicetree/bindings/media/img,e5010-jpeg-enc.yaml b/Documentation/devicetree/bindings/media/img,e5010-jpeg-enc.yaml
>> new file mode 100644
>> index 000000000000..d105a71ee2ea
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/media/img,e5010-jpeg-enc.yaml
>> @@ -0,0 +1,81 @@
>> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
>> +%YAML 1.2
>> +---
>> +$id: http://devicetree.org/schemas/media/img,e5010-jpeg-enc.yaml#
>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
>> +
>> +title: Imagination E5010 JPEG Encoder
>> +
>> +maintainers:
>> + - Devarsh Thakkar <devarsht@ti.com>
>> +
>> +description: |
>> + The E5010 is a JPEG encoder from Imagination Technologies implemented on
>> + TI's AM62A SoC. It is capable of real time encoding of YUV420 and YUV422
>> + inputs to JPEG and M-JPEG. It supports baseline JPEG Encoding up to
>> + 8Kx8K resolution.
>> +
>> +properties:
>> + compatible:
>> + oneOf:
>> + - items:
>> + - const: ti,e5010-jpeg-enc
>
> TI did not make e5010. Use SoC-based compatible.
>
>> + - const: img,e5010-jpeg-enc
>> + - const: img,e5010-jpeg-enc
>
> img,e5010-jpeg-enc cannot be compatible with img,e5010-jpeg-enc. It does
> not make sense. I guess I did not expect you are going to use what you
> wrote in v1 directly... I thought it is just about syntax.
>
Sorry but I did not understand this fully, the possible compatibles are:
1) "ti,am62a-jpeg-enc", "img,e5010-jpeg-enc"
or
2) "img,e5010-jpeg-enc"
anything else will not comply during dtbs_check as shown below :
For e.g. If I use below compatible :
"img,e5010-jpeg-enc", "img,e5010-jpeg-enc"
and run dtbs_check, it throw below error :
make CHECK_DTBS=y DT_SCHEMA_FILES=media/img,e5010-jpeg-enc.yaml
ti/k3-am62a7-sk.dtb
LINT Documentation/devicetree/bindings
CHKDT Documentation/devicetree/bindings/processed-schema.json
SCHEMA Documentation/devicetree/bindings/processed-schema.json
DTC_CHK arch/arm64/boot/dts/ti/k3-am62a7-sk.dtb
/home/devarsht/ti/linux-next2/linux-next/arch/arm64/boot/dts/ti/k3-am62a7-sk.dtb:
jpeg-encoder@fd20000: compatible: 'oneOf' conditional failed, one must
be fixed:
['img,e5010-jpeg-enc', 'img,e5010-jpeg-enc'] is too long
'ti,am62a-jpeg-enc' was expected
From schema:
/home/devarsht/ti/linux-next2/linux-next/Documentation/devicetree/bindings/media/img,e5010-jpeg-enc.yaml
Similarly, if I use below compatible :
"ti,am62a-jpeg-enc",
It throw below error :
make CHECK_DTBS=y DT_SCHEMA_FILES=media/img,e5010-jpeg-enc.yaml
ti/k3-am62a7-sk.dtb
DTC_CHK arch/arm64/boot/dts/ti/k3-am62a7-sk.dtb
/home/devarsht/ti/linux-next2/linux-next/arch/arm64/boot/dts/ti/k3-am62a7-sk.dtb:
jpeg-encoder@fd20000: compatible: 'oneOf' conditional failed, one must
be fixed:
['ti,am62a-jpeg-enc'] is too short
'img,e5010-jpeg-enc' was expected
From schema:
/home/devarsht/ti/linux-next2/linux-next/Documentation/devicetree/bindings/media/img,e5010-jpeg-enc.yaml
But If I use either 1) or 2) it does not throw any error.
Please let me know if I missed to understand your point.
>> +
>> + reg:
>> + items:
>> + - description: The E5010 core register region
>> + - description: The E5010 mmu register region
>> +
>> + reg-names:
>> + items:
>> + - const: core
>> + - const: mmu
>> +
>> + power-domains:
>> + maxItems: 1
>> +
>> + resets:
>> + maxItems: 1
>> +
>> + clocks:
>> + maxItems: 1
>> +
>> + clock-names:
>> + items:
>> + - const: core_clk
>
> Drop _clk or even drop clock-names. It brings little benefit for
> one-entry list.
>
Agreed, will drop clock-names altogether.
Regards
Devarsh
>
> Best regards,
> Krzysztof
>
© 2016 - 2025 Red Hat, Inc.