From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pl1-f177.google.com (mail-pl1-f177.google.com [209.85.214.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BC403368276 for ; Thu, 11 Jun 2026 08:00:35 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.177 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781164837; cv=none; b=pHmLWa6VYrL4jzJWd9zQr+yDC5L93MYc5LH0BCYlfuPQuLEIDo1Rh+MhU6fUbBQyhqqEw+1Rf/C/AFE7EN4g5daikZnL3Kc0mbR3tJZNgLlbf9FMhyky5XUly5FtDRxzRLLVuV9rhihpoX6qt9oYBqnGIQtRa2rbfXB0egfIMfU= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781164837; c=relaxed/simple; bh=5T5GPhbjbV6TAuwWoc/EO0fQlz1+1MUif1+99Yn3u/E=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:To:Cc; b=X7pxm/38GQ3tBbq1xmu+BXdKMiWOgjsxehnjc/PXjED+Q/zto9xxGDpOyITtZjGLaN60tAbcC07PN07QEXwkN+Y6VgtyIKxEHwdqkg2rZ6dRwx5sgebgf4tKA0/K0k+LWx+h1XKhjHhqnaQbbu69CVm8Lbo6lsu9Mr02TPrWy68= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=MpBPzCPj; arc=none smtp.client-ip=209.85.214.177 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="MpBPzCPj" Received: by mail-pl1-f177.google.com with SMTP id d9443c01a7336-2bf258aba12so14145015ad.3 for ; Thu, 11 Jun 2026 01:00:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1781164835; x=1781769635; darn=vger.kernel.org; h=cc:to:message-id:content-transfer-encoding:mime-version:subject :date:from:from:to:cc:subject:date:message-id:reply-to; bh=7TVjBPtkRQto1Hvuai/39HXD7EMOmQdrCbAoz9POuZM=; b=MpBPzCPjUX9Ub1SwrdKHjZSTfkVFtttxtdyoCXe6kmsm0UlmvYgzeZcNzkzyfLRoyI 2FYMeLW5r7rhlx+Ntdk8jqrpm6GIy5CtDEFK40rsP+wFNx0EphzHfMR1bstgsPDmgFBu iZK5pOAhJn6kACMVv74Wp4XwmY99ONczRfNeuunStbRQF8I/IzC8IKUCbQtfCuwIVMlf hvXUe9TKF9eO0C3aOPK+N+eYeQAhlq7M9yXC28dE/JZYSNjQBrfG9hkfPF9Oht1MSwKy 1yG+/X8J5wq5C7u/ftoLLFQSPAhYB5dAo12V7eFFw2uXOzUOpv3vsxcI4VjU25d1BXAY jT1A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781164835; x=1781769635; h=cc:to:message-id:content-transfer-encoding:mime-version:subject :date:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=7TVjBPtkRQto1Hvuai/39HXD7EMOmQdrCbAoz9POuZM=; b=E2cmSZYaG4/OkZx90nx/L2gmu6WrQ3Q2fDqYB6qlhXOUcaULJArEHToXaXxrtjBaV6 a36YQzmbuXKwvtwQGt3RIZvijuZFBY1HiV89LH1lRb2VLjVSKZ8SimrUacQc5FcBy0Rh Nbk/swcidc7HlnZI+4GpLq3YcteEpJwAQF67lDT+v7QXywXFp5Ydnrj6qmLK9/vMiZ57 9+tQYt0Ykb02Yf+LVnPKpmnY0lQVu1mGm5dCmP7AoPmhuPaz/V+qrdQ6oJG/9O1MDOXp n7FPooTyBeulVKrsEPCvUDm5gYgnPt7rhYcJ2NQr3jvfY08ooUdJKgqr7r7ZPUPOYqsP m/Tg== X-Forwarded-Encrypted: i=1; AFNElJ/PrDVw8fiaXT+EFEwYibIe9ryNZwJ/Z/WLvYcf9o++AdgN5UrJHeP75/IK+f3id3SruIj734ffyRSXIUw=@vger.kernel.org X-Gm-Message-State: AOJu0YwGb/NQaJdASZtU1bR8pvp5WKlOlg1QO5LCXx1WCAqjlsg+r68Z 3NCheJiz4ru3R7yB+dxwn8nAMp3RnytN/uRppSNW4zNWb58WpOcMJj48jTn39g2L X-Gm-Gg: Acq92OGCzN/VlRxcbc83JLAptqE9LAJ4nfS5UzXRA76aT7kpvJ3+NLM5QnE84LGkV6R 1T0RCi+VZS8w/WNA/feRk5fHnWJABEU6BsOVQkKOc1VXVRPVynBU4bNkRt3XFPBXplv2PlZBZdh 08IhaTQGJkpEl6pBCSqY/fdtC5eji6UGkapoN/3K0QUSSA66Gqbg6d2EfsjxySg1Hvr2mE/Ii36 Qym29FHis7G8CkfwXXEyRvGQcnMGoxdcmI96w/SGW4bWQ/Qw1XoiWqidb8BqOFmZsYu5NWFE1sV 32LP0BUVYrIgbzNBTsk+qH6kvc3yc2LPufcS6HpFu3wuTyt+6qcBpDOQGc5AjDHuyoRLY8Uk0Bu f1jzuU90RWeGgqIU1/b9cW+QEm7gq+kXDteTbj3EvPNwBQRVH+fYXVkLynqWnv8/5AZEx3L4l0S 4r07HhZ6DiB6B4Ie1jJsCC5kbb2C5u4f+YRpbkO/rlQpo= X-Received: by 2002:a17:903:1a2d:b0:2c0:af09:f3c3 with SMTP id d9443c01a7336-2c2f636bcefmr11336005ad.8.1781164830275; Thu, 11 Jun 2026 01:00:30 -0700 (PDT) Received: from [192.168.1.3] ([2401:4900:881c:31ad:7fa5:d959:91e7:2240]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2c16629d40asm259089285ad.64.2026.06.11.01.00.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Jun 2026 01:00:29 -0700 (PDT) From: Bhargav Joshi Date: Thu, 11 Jun 2026 13:30:14 +0530 Subject: [PATCH v2] dt-bindings: interrupt-controller: ti,irq-crossbar: Convert to DT schema Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20260611-crossbar-v2-1-231d4f88298e@gmail.com> X-B4-Tracking: v=1; b=H4sIAAAAAAAC/0WNQQ6CMBBFr0JmbU3bQBFX3sOwaMsAY4SaDhIN4 e4WWJhZveT9NwswRkKGa7ZAxJmYwphAnzLwvR07FNQkBi21kYW+CB8Ds7NRaFdZk6tGq9xA0l8 RW/rsqXt9ML/dA/207TejJ55C/O6/ZrV5RzbdPzsrIUVryrb0rkIs5K0bLD3PPgxQr+v6A4F3F 32yAAAA X-Change-ID: 20260528-crossbar-2b9a641d2146 To: Rob Herring , Krzysztof Kozlowski , Conor Dooley , Thomas Gleixner , Sricharan R Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, goledhruva@gmail.com, m-chawdhry@ti.com, daniel.baluta@gmail.com, simona.toaca@nxp.com, j.bhargav.u@gmail.com X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=ed25519-sha256; t=1781164825; l=6816; i=j.bhargav.u@gmail.com; h=from:subject:message-id; bh=5T5GPhbjbV6TAuwWoc/EO0fQlz1+1MUif1+99Yn3u/E=; b=zF+5OreIarstm5mck6ZXkSO9kTSqOYNKWkQwSrqXfxk5ncx6y0AxB2sMnrKXeDub7IQWZ6/DH 6OqN0L+CK8zAEtJcPSM16NOj79xeE6cpzr0HbaRMxPhn6JooWtctzhz X-Developer-Key: i=j.bhargav.u@gmail.com; a=ed25519; pk=IqNDwUZKECEA+n8wXctFLBbYL9NhFstZNbOznm/nX1k= Convert TI irq-crossbar binding from text format to DT schema. As part of conversion following changes are made: - Add '#interrupt-cells' as a required property which was missing in text binding - As irq-crossbar is interrupt-controller. Move binding from bindings/arm/omap to bindings/interrupt-controller Signed-off-by: Bhargav Joshi --- Changes in v2: - Dropped property name change and driver updates. - Link to v1: https://lore.kernel.org/r/20260606-crossbar-v1-0-f67f7cb9ee50@gmail.com --- .../devicetree/bindings/arm/omap/crossbar.txt | 55 ------------- .../interrupt-controller/ti,irq-crossbar.yaml | 96 ++++++++++++++++++++++ 2 files changed, 96 insertions(+), 55 deletions(-) diff --git a/Documentation/devicetree/bindings/arm/omap/crossbar.txt b/Documentation/devicetree/bindings/arm/omap/crossbar.txt deleted file mode 100644 index a43e4c7aba3d..000000000000 --- a/Documentation/devicetree/bindings/arm/omap/crossbar.txt +++ /dev/null @@ -1,55 +0,0 @@ -Some socs have a large number of interrupts requests to service -the needs of its many peripherals and subsystems. All of the -interrupt lines from the subsystems are not needed at the same -time, so they have to be muxed to the irq-controller appropriately. -In such places a interrupt controllers are preceded by an CROSSBAR -that provides flexibility in muxing the device requests to the controller -inputs. - -Required properties: -- compatible : Should be "ti,irq-crossbar" -- reg: Base address and the size of the crossbar registers. -- interrupt-controller: indicates that this block is an interrupt controller. -- ti,max-irqs: Total number of irqs available at the parent interrupt controller. -- ti,max-crossbar-sources: Maximum number of crossbar sources that can be routed. -- ti,reg-size: Size of a individual register in bytes. Every individual - register is assumed to be of same size. Valid sizes are 1, 2, 4. -- ti,irqs-reserved: List of the reserved irq lines that are not muxed using - crossbar. These interrupt lines are reserved in the soc, - so crossbar bar driver should not consider them as free - lines. - -Optional properties: -- ti,irqs-skip: This is similar to "ti,irqs-reserved", but these are for - SOC-specific hard-wiring of those irqs which unexpectedly bypasses the - crossbar. These irqs have a crossbar register, but still cannot be used. - -- ti,irqs-safe-map: integer which maps to a safe configuration to use - when the interrupt controller irq is unused (when not provided, default is 0) - -Examples: - crossbar_mpu: crossbar@4a002a48 { - compatible = "ti,irq-crossbar"; - reg = <0x4a002a48 0x130>; - ti,max-irqs = <160>; - ti,max-crossbar-sources = <400>; - ti,reg-size = <2>; - ti,irqs-reserved = <0 1 2 3 5 6 131 132>; - ti,irqs-skip = <10 133 139 140>; - }; - -Consumer: -======== -See Documentation/devicetree/bindings/interrupt-controller/interrupts.txt and -Documentation/devicetree/bindings/interrupt-controller/arm,gic.yaml for -further details. - -An interrupt consumer on an SoC using crossbar will use: - interrupts = - -Example: - device_x@4a023000 { - /* Crossbar 8 used */ - interrupts = ; - ... - }; diff --git a/Documentation/devicetree/bindings/interrupt-controller/ti,irq-crossbar.yaml b/Documentation/devicetree/bindings/interrupt-controller/ti,irq-crossbar.yaml new file mode 100644 index 000000000000..ec9a33511aae --- /dev/null +++ b/Documentation/devicetree/bindings/interrupt-controller/ti,irq-crossbar.yaml @@ -0,0 +1,96 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/interrupt-controller/ti,irq-crossbar.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Texas Instruments IRQ Crossbar + +maintainers: + - Sricharan R + +description: + Some socs have a large number of interrupts requests to service the needs of + its many peripherals and subsystems. All of the interrupt lines from the + subsystems are not needed at the same time, so they have to be muxed to the + irq-controller appropriately. In such places a interrupt controllers are + preceded by an CROSSBAR that provides flexibility in muxing the device + requests to the controller inputs. + +properties: + compatible: + const: ti,irq-crossbar + + reg: + maxItems: 1 + + interrupt-controller: true + + '#interrupt-cells': + const: 3 + + ti,max-irqs: + $ref: /schemas/types.yaml#/definitions/uint32 + description: + Total number of irqs available at the parent interrupt controller. + minimum: 1 + + ti,max-crossbar-sources: + $ref: /schemas/types.yaml#/definitions/uint32 + description: + Maximum number of crossbar sources that can be routed. + minimum: 1 + + ti,reg-size: + $ref: /schemas/types.yaml#/definitions/uint32 + description: + Size of a individual register in bytes. Every individual + register is assumed to be of same size. + enum: [1, 2, 4] + + ti,irqs-reserved: + $ref: /schemas/types.yaml#/definitions/uint32-array + description: + List of the reserved irq lines that are not muxed using crossbar. These + interrupt lines are reserved in the soc, so crossbar bar driver should not + consider them as free lines. + + ti,irqs-skip: + $ref: /schemas/types.yaml#/definitions/uint32-array + description: + Similar to "ti,crossbar-irqs-reserved", but these are for SOC-specific + hard-wiring of those irqs which unexpectedly bypasses the crossbar. These + irqs have a crossbar register, but still cannot be used. + + ti,irqs-safe-map: + $ref: /schemas/types.yaml#/definitions/uint32 + description: + integer which maps to a safe configuration to use when the interrupt + controller irq is unused. + default: 0 + +required: + - compatible + - reg + - interrupt-controller + - '#interrupt-cells' + - ti,max-irqs + - ti,max-crossbar-sources + - ti,reg-size + - ti,irqs-reserved + +additionalProperties: false + +examples: + - | + crossbar@4a002a48 { + compatible = "ti,irq-crossbar"; + reg = <0x4a002a48 0x130>; + interrupt-controller; + #interrupt-cells = <3>; + ti,max-irqs = <160>; + ti,max-crossbar-sources = <400>; + ti,reg-size = <2>; + ti,irqs-reserved = <0 1 2 3 5 6 131 132>; + ti,irqs-skip = <10 133 139 140>; + }; --- base-commit: eb3f4b7426cfd2b79d65b7d37155480b32259a11 change-id: 20260528-crossbar-2b9a641d2146 Best regards, -- Bhargav