Trusty irq interface Trusty requires non-secure irqs to be forwarded to the secure OS. Required properties: - compatible: "android,trusty-irq-v1" Optional properties: - interrupt-templates: is an optional property that works together with "interrupt-ranges" to specify secure side to kernel IRQs mapping. It is a list of entries, each one of which defines a group of interrupts having common properties, and has the following format: < phandle irq_id_pos [templ_data]> phandle - phandle of interrupt controller this template is for irq_id_pos - the position of irq id in interrupt specifier array for interrupt controller referenced by phandle. templ_data - is an array of u32 values (could be empty) in the same format as interrupt specifier for interrupt controller referenced by phandle but with omitted irq id field. - interrupt-ranges: list of entries that specifies secure side to kernel IRQs mapping. Each entry in the "interrupt-ranges" list has the following format: beg - first entry in this range end - last entry in this range templ_idx - index of entry in "interrupt-templates" property that must be used as a template for all interrupts in this range Example: { gic: interrupt-controller@50041000 { compatible = "arm,gic-400"; #interrupt-cells = <3>; interrupt-controller; ... }; ... IPI: interrupt-controller { compatible = "android,CustomIPI"; #interrupt-cells = <1>; interrupt-controller; }; ... trusty { compatible = "android,trusty-smc-v1"; ranges; #address-cells = <2>; #size-cells = <2>; irq { compatible = "android,trusty-irq-v1"; interrupt-templates = <&IPI 0>, <&gic 1 GIC_PPI 0>, <&gic 1 GIC_SPI 0>; interrupt-ranges = < 0 15 0>, <16 31 1>, <32 223 2>; }; } } Must be a child of the node that provides the trusty std/fast call interface.