[v3,1/4] dt-bindings: media: Add bindings for Imagination E5010 JPEG Encoder driver
Commit Message
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
Comments
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
>
On 20/08/2023 18:46, Devarsh Thakkar wrote:
>>> +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 :
Ah, you are right, ENOTENOUGHCOFFEE or some other issue on my side.
>
> 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.
Yes, you are right, sorry for that.
However it still should be "ti,am62a-jpeg-enc", not ti,e5010...
Best regards,
Krzysztof
new file mode 100644
@@ -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>;
+ };
+ };
@@ -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/