[PATCH 3/5] media: dt-bindings: Add Apple ISP
From: Sasha Finkelstein via B4 Relay
Date: Wed Feb 19 2025 - 04:35:58 EST
From: Sasha Finkelstein <fnkl.kernel@xxxxxxxxx>
Add bindings for the ISP used with the webcam in Apple
ARM laptops.
Signed-off-by: Sasha Finkelstein <fnkl.kernel@xxxxxxxxx>
---
.../devicetree/bindings/media/apple,isp.yaml | 151 +++++++++++++++++++++
MAINTAINERS | 1 +
2 files changed, 152 insertions(+)
diff --git a/Documentation/devicetree/bindings/media/apple,isp.yaml b/Documentation/devicetree/bindings/media/apple,isp.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..67d536b61851af30fcc5bc452a761138876c6b18
--- /dev/null
+++ b/Documentation/devicetree/bindings/media/apple,isp.yaml
@@ -0,0 +1,151 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/media/apple,isp.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: An ISP block used in Apple products
+
+maintainers:
+ - Sasha Finkelstein <fnkl.kernel@xxxxxxxxx>
+
+description:
+ The ISP in charge of webcams on ARM Apple laptops
+
+properties:
+ compatible:
+ items:
+ - enum:
+ - apple,t8103-isp
+ - apple,t8112-isp
+ - apple,t6000-isp
+ - apple,t6020-isp
+ - const: apple,isp
+
+ reg:
+ items:
+ - description: ASC coprocessor control
+ - description: Peripheral to host mailbox
+ - description: General-purpose ASC IO registers
+ - description: Host to peripheral mailbox
+
+ reg-names:
+ items:
+ - const: coproc
+ - const: mbox
+ - const: gpio
+ - const: mbox2
+
+ iommus:
+ description: All 3 must be kept in sync
+ minItems: 3
+ maxItems: 3
+
+ interrupts:
+ maxItems: 1
+
+ power-domains:
+ minItems: 1
+ maxItems: 20
+ description: All necessary power domains. Driver will enable them in order
+
+ memory-region:
+ maxItems: 1
+
+ apple,dart-vm-size:
+ description: Supported device memory range
+ $ref: /schemas/types.yaml#/definitions/uint64
+
+ apple,platform-id:
+ description: Platform id for firmware
+ $ref: /schemas/types.yaml#/definitions/uint32
+
+ apple,temporal-filter:
+ description: Whether temporal filter should be enabled in firmware
+ $ref: /schemas/types.yaml#/definitions/uint32
+
+ sensor-presets:
+ additionalProperties: false
+
+ patternProperties:
+ '^preset[0-9]+$':
+ type: object
+
+ additionalProperties: false
+
+ properties:
+ apple,config-index:
+ description: Firmware config index
+ $ref: /schemas/types.yaml#/definitions/uint32
+
+ apple,input-size:
+ $ref: /schemas/types.yaml#/definitions/uint32-array
+ minItems: 2
+ maxItems: 2
+ description: Raw sensor size
+
+ apple,output-size:
+ $ref: /schemas/types.yaml#/definitions/uint32-array
+ minItems: 2
+ maxItems: 2
+ description: Cropped and scaled image size
+
+ apple,crop:
+ $ref: /schemas/types.yaml#/definitions/uint32-array
+ minItems: 4
+ maxItems: 4
+ description: Area to crop
+
+ required:
+ - apple,config-index
+ - apple,input-size
+ - apple,output-size
+ - apple,crop
+
+required:
+ - compatible
+ - reg
+ - iommus
+ - interrupts
+ - power-domains
+ - memory-region
+ - apple,dart-vm-size
+ - apple,platform-id
+ - apple,temporal-filter
+
+additionalProperties: false
+
+examples:
+ - |
+ #include <dt-bindings/interrupt-controller/apple-aic.h>
+ isp: isp@2a000000 {
+ compatible = "apple,t8103-isp", "apple,isp";
+ reg = <0x2a000000 0x2000000>,
+ <0x2c104000 0x100>,
+ <0x2c104170 0x100>,
+ <0x2c1043f0 0x100>;
+ reg-names = "coproc", "mbox", "gpio", "mbox2";
+ iommus = <&isp_dart0 0>, <&isp_dart1 0>, <&isp_dart2 0>;
+ interrupt-parent = <&aic>;
+ interrupts = <AIC_IRQ 246 IRQ_TYPE_LEVEL_HIGH>;
+ power-domains = <&ps_isp_sys>, <&ps_isp_set0>,
+ <&ps_isp_set1>, <&ps_isp_set2>, <&ps_isp_fe>,
+ <&ps_isp_set4>, <&ps_isp_set5>, <&ps_isp_set6>,
+ <&ps_isp_set7>, <&ps_isp_set8>, <&ps_isp_set9>,
+ <&ps_isp_set10>, <&ps_isp_set11>,
+ <&ps_isp_set12>;
+ memory-region = <&isp_heap>;
+ apple,dart-vm-size = <0x0 0xa0000000>;
+ apple,platform-id = <1>;
+ apple,temporal-filter = <0>;
+
+ sensor-presets {
+ preset0 {
+ apple,config-index = <0>;
+ apple,input-size = <1296 736>;
+ apple,output-size = <1280 720>;
+ apple,crop = <8 8 1280 720>;
+ };
+ };
+ };
+...
diff --git a/MAINTAINERS b/MAINTAINERS
index efee40ea589f70bc5e4a390072a4543234616743..dea7239ee0f5464b31efed5a2e0e5e602bcb6439 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -2228,6 +2228,7 @@ F: Documentation/devicetree/bindings/interrupt-controller/apple,*
F: Documentation/devicetree/bindings/iommu/apple,dart.yaml
F: Documentation/devicetree/bindings/iommu/apple,sart.yaml
F: Documentation/devicetree/bindings/mailbox/apple,mailbox.yaml
+F: Documentation/devicetree/bindings/media/apple,isp.yaml
F: Documentation/devicetree/bindings/net/bluetooth/brcm,bcm4377-bluetooth.yaml
F: Documentation/devicetree/bindings/nvme/apple,nvme-ans.yaml
F: Documentation/devicetree/bindings/nvmem/apple,efuses.yaml
--
2.48.1