From nobody Tue Oct 7 16:36:39 2025 Received: from mail-wm1-f52.google.com (mail-wm1-f52.google.com [209.85.128.52]) (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 BA7CE2D8769; Tue, 8 Jul 2025 10:52:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.52 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751971978; cv=none; b=GMj8HBsHxVP2uJKExFrOphsEUbTrzqIAiTy9JcCAbx3cBdHwypNwI/T5rWu6vmL+e8+ZBkU74xshB8UG0s8xDHXPL4WwpLPqgFfby4WmhYG4B5g2j6BjVakZgvnKShi8LdPEwxspZ49KLYzk83+aiu1v9+KeS+smCKh134PeqUc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751971978; c=relaxed/simple; bh=TSpBBbL7dPWV8zLAKK1w7X5ANe208TsE6aLeo0awRiU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=E7h7+2y7k2dBjuIqLlpwnQKQ/1o/uRkvKGwj6CgrZ+/6lp6ULgjdMLYGIHl7cafndi7fcNsVR0RdMZj7XZfhwJhQVGo9IeLzxPpyPgECwf6R0oWDMhZBhT9SuuTC/ALFe12AWjK8J0xP7+lQdxxM7P7zxmQLEs6Kk06pHTRuIaI= 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=aNhK2ycj; arc=none smtp.client-ip=209.85.128.52 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="aNhK2ycj" Received: by mail-wm1-f52.google.com with SMTP id 5b1f17b1804b1-4538bc1cffdso35803905e9.0; Tue, 08 Jul 2025 03:52:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1751971974; x=1752576774; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=X7OFax7SIi5NPIT8GXUtxoR8oyjCAZI9M9j9amsabWw=; b=aNhK2ycjiAFQrxO+9jSdERkwYlwJZOin1KHsx6g4Uhb+o5UBtw4KK3YwUsf4BwfJPi ludkQrfnD7inoCbA3alKxzwObKUM7MD8w/C1xDlUKXi5MikfUF6of+bMi7bRyNASjKxU p5LJGfahknazQbBdK5vdON5JzNJ1Kx9l+Q88QJqD+zGcOV+H2Uzeke6q7n/QUGdKUPge Chx987l1ngJZO601HDf135sMK6W9TyFqrYUKs3FwGIXzT6x4DX88MxygWI7D5lUPyPe9 mFvQrASRPKxB1ykCeMfr7O0fDWR70F4fUkWKfYaW0HLsyuuPQDCGsKG14ECWu50GCEgq uzIg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751971974; x=1752576774; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=X7OFax7SIi5NPIT8GXUtxoR8oyjCAZI9M9j9amsabWw=; b=aPPbX+/fpmotOHfIUako5g++7l8n7gjMmdwFxlQAMEAuSWxz1MFqApsclanMvaloOf 1jpatPkmWDuReaeDzyseomutHfsAvMW54dvqwnrFDCSmQIdtcmbwbxFoVLBwsujCeonb HyPX79g3yiKgvFISKYrDkAdrWlQCDrhf+jCQSp5yoRilHwJa079eHPoPjUepfyrdiB5M oITcGA/eEMWtse5bu5ilWyvYL7DrFSTnYNLvF1S6APscjMyIBqbzNgL6czbPXKT3ZPiR t9yp+1zZ/e0iPPNFVDz+91e225xo5TXjSZKR9vkeSvLMZ0ubaD6+Q6QA2KhQkayP5oOd Txkw== X-Forwarded-Encrypted: i=1; AJvYcCVR3J4QG7Meye6XH6DSza6lBh8g6zUxxsSW4CMZHMVk5yE39BOFeayEcxA1kNsgb9xjUj2h4dkQE4f1@vger.kernel.org, AJvYcCXRIBQvlz7gLC6Ozff3Do12a8O48vp0w3lQRFBjaorCpc3dlOMnI7ziFcR9dg0/Y7J7mOcXmCLzVAfD8Gc=@vger.kernel.org, AJvYcCXaMKBfdcn/YICyh99U/mHWCz09CJrKG7pxXLk5jnXUcI70JNOR6V9Uu5WwJYeqiw3n1V6QHMefaTRXaR+l@vger.kernel.org X-Gm-Message-State: AOJu0YyUB32l59NVirKvu7Hu/aCF8dvw5I1mcYlPdXfeYIHMHjSY8/4x 44lh2BHewhAFA2Sxw6o23mHp0g4o/WLHe3ZMKhKfVKkkDFCaoXz/aZfa X-Gm-Gg: ASbGnctowrla4P+pT553AK+HzPhIiySYvHTxTL1njJvSntfGQiybRZc+pslUpnostLe laD1t6GTzkiNDwYfPGcTXAQlQXTJCMlkP3V2pSmjP2cqqi4a9s3Emrwadf26+YT/GLqqlvDjnfr 0rco0iqmMT/gS0Fkinq5RW3J0TR888zerGvNs0zD5/6Jikp+0yb9rvQwSJToNr1oFYwY8aLvwKa XTai0QEEJewAHb3e0bQwRf30YvJnsqmz8ZjjFZ0MFPehk0z1Mgdr1PCtEvcjtL3EDKziOh04UUQ CWKQZu9DqXfC6u6rLsKj2lykrahQaedZU5YEIxfOJWx6FFLqk4fVoPei7bfA/V0k/3rV0uCtjyc 2xYw2qhJnJYgnoEP4vnwBWQ7SZkFY8q0ZXmzKK4XaLh5OYP+rDX9oBg== X-Google-Smtp-Source: AGHT+IG1JaHJo7wX3dVzWr661xLF96lGhUSG8XuOGEiyKaS4rLH9vQfnukA38xr+M9jNeDgXDoGyrA== X-Received: by 2002:a05:600c:524a:b0:450:d61f:dd45 with SMTP id 5b1f17b1804b1-454caa4d70fmr55077285e9.4.1751971973880; Tue, 08 Jul 2025 03:52:53 -0700 (PDT) Received: from localhost (p200300e41f4e9b00f22f74fffe1f3a53.dip0.t-ipconnect.de. [2003:e4:1f4e:9b00:f22f:74ff:fe1f:3a53]) by smtp.gmail.com with UTF8SMTPSA id 5b1f17b1804b1-454cd43c6besm18557475e9.7.2025.07.08.03.52.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Jul 2025 03:52:52 -0700 (PDT) From: Thierry Reding To: Thierry Reding , Krzysztof Kozlowski Cc: Rob Herring , Conor Dooley , Jonathan Hunter , linux-tegra@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 1/4] dt-bindings: memory: tegra: Add Tegra264 support Date: Tue, 8 Jul 2025 12:52:42 +0200 Message-ID: <20250708105245.1516143-2-thierry.reding@gmail.com> X-Mailer: git-send-email 2.50.0 In-Reply-To: <20250708105245.1516143-1-thierry.reding@gmail.com> References: <20250708105245.1516143-1-thierry.reding@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Sumit Gupta Add bindings for the Memory Controller (MC) and External Memory Controller (EMC) found on the Tegra264 SoC. Tegra264 SoC has a different number of interrupt lines for MC sub-units: UCF_SOC, hub, hub common, syncpoint and MC channel. The total number of interrupt lines is eight. Update maxItems for MC interrupts accordingly. Signed-off-by: Sumit Gupta Signed-off-by: Thierry Reding --- .../nvidia,tegra186-mc.yaml | 65 ++++++++++++++++++- 1 file changed, 63 insertions(+), 2 deletions(-) diff --git a/Documentation/devicetree/bindings/memory-controllers/nvidia,te= gra186-mc.yaml b/Documentation/devicetree/bindings/memory-controllers/nvidi= a,tegra186-mc.yaml index 935d63d181d9..52575a16349b 100644 --- a/Documentation/devicetree/bindings/memory-controllers/nvidia,tegra186-= mc.yaml +++ b/Documentation/devicetree/bindings/memory-controllers/nvidia,tegra186-= mc.yaml @@ -32,6 +32,7 @@ properties: - nvidia,tegra186-mc - nvidia,tegra194-mc - nvidia,tegra234-mc + - nvidia,tegra264-mc =20 reg: minItems: 6 @@ -42,8 +43,12 @@ properties: maxItems: 18 =20 interrupts: - items: - - description: MC general interrupt + minItems: 1 + maxItems: 8 + + interrupt-names: + minItems: 1 + maxItems: 8 =20 "#address-cells": const: 2 @@ -74,6 +79,7 @@ patternProperties: - nvidia,tegra186-emc - nvidia,tegra194-emc - nvidia,tegra234-emc + - nvidia,tegra264-emc =20 reg: minItems: 1 @@ -127,6 +133,15 @@ patternProperties: reg: minItems: 2 =20 + - if: + properties: + compatible: + const: nvidia,tegra264-emc + then: + properties: + reg: + minItems: 2 + additionalProperties: false =20 required: @@ -220,6 +235,52 @@ allOf: - const: ch14 - const: ch15 =20 + - if: + properties: + compatible: + const: nvidia,tegra264-mc + then: + properties: + reg: + minItems: 17 + description: 17 memory controller channels + + reg-names: + items: + - const: broadcast + - const: ch0 + - const: ch1 + - const: ch2 + - const: ch3 + - const: ch4 + - const: ch5 + - const: ch6 + - const: ch7 + - const: ch8 + - const: ch9 + - const: ch10 + - const: ch11 + - const: ch12 + - const: ch13 + - const: ch14 + - const: ch15 + + interrupts: + minItems: 8 + maxItems: 8 + description: One interrupt line for each MC component + + interrupt-names: + items: + - const: mcf + - const: hub1 + - const: hub2 + - const: hub3 + - const: hub4 + - const: hub5 + - const: sbs + - const: channel + additionalProperties: false =20 required: --=20 2.50.0 From nobody Tue Oct 7 16:36:39 2025 Received: from mail-wm1-f50.google.com (mail-wm1-f50.google.com [209.85.128.50]) (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 A65C52D879D; Tue, 8 Jul 2025 10:52:57 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.50 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751971979; cv=none; b=ZHHErk3SrrRx6UtIQf/dNeY3SKy9xnPdGljxltQAYliceouy8umBeUvi/hl62fb/BEN9V0RkVJOt7ZgJw12SVMNoZo9bk7oGYG9IucPdCkitfplhlHXQ/9gC016WH7Yrie25b99/0DmHKCt/TEbWu+/FHUx10wOGQFaVGorgjkY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751971979; c=relaxed/simple; bh=2eQyf22UoW/JY7lUXzFCcT065FDHxsenTZVcJ1bpU8Q=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=o1kh0ZBmAgvN0xF/pR/hZcAYU50Chl6TCeWHNUkLX+Tq+/JLr9twY3KDj4f/oVLtOfVye+ViXzjtC8XSdhvnCXJq2iHcD31ggvtImsrlYl0sWtxbtQs0f7gp1OEZudYa2QiA9s0NF0w4C4MWgo6V71dWcKoeRBTkXJRjpTv+Ijg= 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=ZtHJnsSg; arc=none smtp.client-ip=209.85.128.50 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="ZtHJnsSg" Received: by mail-wm1-f50.google.com with SMTP id 5b1f17b1804b1-453634d8609so28542485e9.3; Tue, 08 Jul 2025 03:52:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1751971976; x=1752576776; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=hW5KGfWASYsJDMXjc47a4qAMcbCATDg5AN8b8q+DmhE=; b=ZtHJnsSgX2npzGCxFRyYqHZrGHpzfyQbENkWpUGqnBIq5CbyIrMeJaLiBEzi8x/6Fj rRzcFE3IOT+mF0qeNe0WsSi1WFu4DhLlU+APalCQAwGKqNlWzy0FVdE/+2c1JzNcY1Kl +YOVTX+8EJ5fJAHlp14rnanRwSS/3Loccf7xuBh15PiSTm1boEcf0F7iRYn4IgJwfPHw 26LtpyxXkExoWUAhoF9aoJjC2gqXqJzE2LR4q8iONTEtyuG+3jxXXin0t/dkikjGidl4 PuZTKMS7kwu31+mxPd2UZohY/ftOcsL1n5Swhhpu9QF6eEyznNuo8X1E+Zi541Ed9+p6 q1mQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751971976; x=1752576776; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=hW5KGfWASYsJDMXjc47a4qAMcbCATDg5AN8b8q+DmhE=; b=gBkvAECbnGGbna9yleMjMIBHXDQrl15xukWmfyVsaQMSlWR2yIdmb7ChJBjRPoze5T 0ny0uSdpn0odE2sa25ASZnUNQ6Dab8R1OlpRHclueUMOv+55mJIWr9wpQ0FRPaJUTeQj CWCgyXsnwMzh0BThlaWoUG7NnDgbWg4UIkpzn5Iz/W/bsD7XnoPfH5u2XCQBmd5MNg/S ZRN8ld+v1+pRf0+XF+pnasWiN5twrXLOzUVl2T8BLhrZKIptf9dCr8hOm3WWlU+gtobn mjDxCQ0b77LA3N+ck/B5ZDWElzrtG9y3musNbFky29vi1vZ1Mb57uZW/ke9//BOlGqdH I7Kg== X-Forwarded-Encrypted: i=1; AJvYcCUrsfxYMogo1jirpw6bnind5Nc9MU3OLBppIQaEkQP5wFaqY+j8ryXpUVOLd4bBLTy7WhRP5CXoo3c/qEX2@vger.kernel.org, AJvYcCWhaQfHdQNnFS2ShU7j649R2etB5iPsEyxEjhKn7HxBGyd5YSxQSq9MbObKg+xZBuIoOBtBFUp03eSgw3U=@vger.kernel.org, AJvYcCXn9FqwOr29FGuNQDSyMt7ouARFRxutgwLoMLb16Z5rEjQJP6DzYEZIdNtHeyrgidklHkuxE/eocIZ9@vger.kernel.org X-Gm-Message-State: AOJu0Yy8U8nn+x/GDFWjcp7gNS68s4OwICHS14hk1p4ZCijl9L2jBqt8 Ukp63cM4ckWRk1qgnP1dZPnbEqM9ymUKBhs+CuI4kmw/j0mjXzGEKQJi X-Gm-Gg: ASbGncvyHd84euunzTfUYqjHvnDGwyzf1NBBSiQDwlJFa8uN67/wcHFnc3YvhoyBw8w pkNMnTzXcZL2xMBN7dXkdPCtO6H1SqRoi4f8/NkyO8pzKzbhgFJyLYzjkp+PJmgGSiPv7eXf5/7 sM52SKXuMoPimHczEpUH5RyhL2/5BJ7zUPkBhhtF+zPYn/axI6EWuUi+Qo53deZSIQoOnw/p/Vk pDcaSlO9VNm/B6Znr4QjMK2jgQZEU8qPCqiwf48PzAdm7nsLBEXpddahfOxjsoer5XJBBZ9SPEQ JAHr/nvLX9jZ5xUgWMZ+WWsznSCDtZ0qwW7/ss4NYaUrZUdjrEqtPnE7hbOcPqjSNiOfLJyVuB8 zRSTP1puKy5Yb1ehBAX497r4rrYRVRCm5j0c2NJV8SP9dPJy+wtGtnQ== X-Google-Smtp-Source: AGHT+IE727F4YYWl8TIHyfkECK4+zEvdaXZW7Mi6Sw9excQ3aRVypHJegd7uGChNTW2FedcuiNlHDA== X-Received: by 2002:a05:600c:a00e:b0:43c:fe90:1282 with SMTP id 5b1f17b1804b1-454cd4baeb6mr24153325e9.7.1751971975891; Tue, 08 Jul 2025 03:52:55 -0700 (PDT) Received: from localhost (p200300e41f4e9b00f22f74fffe1f3a53.dip0.t-ipconnect.de. [2003:e4:1f4e:9b00:f22f:74ff:fe1f:3a53]) by smtp.gmail.com with UTF8SMTPSA id 5b1f17b1804b1-454cd49df05sm18104395e9.33.2025.07.08.03.52.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Jul 2025 03:52:54 -0700 (PDT) From: Thierry Reding To: Thierry Reding , Krzysztof Kozlowski Cc: Rob Herring , Conor Dooley , Jonathan Hunter , linux-tegra@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 2/4] dt-bindings: memory: tegra: Add Tegra264 definitions Date: Tue, 8 Jul 2025 12:52:43 +0200 Message-ID: <20250708105245.1516143-3-thierry.reding@gmail.com> X-Mailer: git-send-email 2.50.0 In-Reply-To: <20250708105245.1516143-1-thierry.reding@gmail.com> References: <20250708105245.1516143-1-thierry.reding@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Sumit Gupta Add memory client ID defines for use by the interconnects property in the device tree and tegra_mc_client table in the MC driver. Note that these IDs are defined by the hardware, so the numbering doesn't start at 0 and contains holes. Signed-off-by: Sumit Gupta Signed-off-by: Thierry Reding --- include/dt-bindings/memory/nvidia,tegra264.h | 86 ++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 include/dt-bindings/memory/nvidia,tegra264.h diff --git a/include/dt-bindings/memory/nvidia,tegra264.h b/include/dt-bind= ings/memory/nvidia,tegra264.h new file mode 100644 index 000000000000..d6cb0c9698f2 --- /dev/null +++ b/include/dt-bindings/memory/nvidia,tegra264.h @@ -0,0 +1,86 @@ +/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */ +/* Copyright (c) 2025, NVIDIA CORPORATION. All rights reserved. */ + +#ifndef DT_BINDINGS_MEMORY_NVIDIA_TEGRA264_H +#define DT_BINDINGS_MEMORY_NVIDIA_TEGRA264_H + +/* + * memory client IDs + */ + +/* HOST1X read client */ +#define TEGRA264_MEMORY_CLIENT_HOST1XR 0x16 +/* VIC read client */ +#define TEGRA264_MEMORY_CLIENT_VICR 0x6c +/* VIC Write client */ +#define TEGRA264_MEMORY_CLIENT_VICW 0x6d +/* VI R5 Write client */ +#define TEGRA264_MEMORY_CLIENT_VIW 0x72 +#define TEGRA264_MEMORY_CLIENT_NVDECSRD2MC 0x78 +#define TEGRA264_MEMORY_CLIENT_NVDECSWR2MC 0x79 +/* Audio processor(APE) Read client */ +#define TEGRA264_MEMORY_CLIENT_APER 0x7a +/* Audio processor(APE) Write client */ +#define TEGRA264_MEMORY_CLIENT_APEW 0x7b +/* Audio DMA Read client */ +#define TEGRA264_MEMORY_CLIENT_APEDMAR 0x9f +/* Audio DMA Write client */ +#define TEGRA264_MEMORY_CLIENT_APEDMAW 0xa0 +#define TEGRA264_MEMORY_CLIENT_GPUR02MC 0xb6 +#define TEGRA264_MEMORY_CLIENT_GPUW02MC 0xb7 +/* VI Falcon Read client */ +#define TEGRA264_MEMORY_CLIENT_VIFALCONR 0xbc +/* VI Falcon Write client */ +#define TEGRA264_MEMORY_CLIENT_VIFALCONW 0xbd +/* Read Client of RCE */ +#define TEGRA264_MEMORY_CLIENT_RCER 0xd2 +/* Write client of RCE */ +#define TEGRA264_MEMORY_CLIENT_RCEW 0xd3 +/* PCIE0/MSI Write clients */ +#define TEGRA264_MEMORY_CLIENT_PCIE0W 0xd9 +/* PCIE1/RPX4 Read clients */ +#define TEGRA264_MEMORY_CLIENT_PCIE1R 0xda +/* PCIE1/RPX4 Write clients */ +#define TEGRA264_MEMORY_CLIENT_PCIE1W 0xdb +/* PCIE2/DMX4 Read clients */ +#define TEGRA264_MEMORY_CLIENT_PCIE2AR 0xdc +/* PCIE2/DMX4 Write clients */ +#define TEGRA264_MEMORY_CLIENT_PCIE2AW 0xdd +/* PCIE3/RPX4 Read clients */ +#define TEGRA264_MEMORY_CLIENT_PCIE3R 0xde +/* PCIE3/RPX4 Write clients */ +#define TEGRA264_MEMORY_CLIENT_PCIE3W 0xdf +/* PCIE4/DMX8 Read clients */ +#define TEGRA264_MEMORY_CLIENT_PCIE4R 0xe0 +/* PCIE4/DMX8 Write clients */ +#define TEGRA264_MEMORY_CLIENT_PCIE4W 0xe1 +/* PCIE5/DMX4 Read clients */ +#define TEGRA264_MEMORY_CLIENT_PCIE5R 0xe2 +/* PCIE5/DMX4 Write clients */ +#define TEGRA264_MEMORY_CLIENT_PCIE5W 0xe3 +/* UFS Read client */ +#define TEGRA264_MEMORY_CLIENT_UFSR 0x15c +/* UFS write client */ +#define TEGRA264_MEMORY_CLIENT_UFSW 0x15d +/* HDA Read client */ +#define TEGRA264_MEMORY_CLIENT_HDAR 0x17c +/* HDA Write client */ +#define TEGRA264_MEMORY_CLIENT_HDAW 0x17d +/* Disp ISO Read Client */ +#define TEGRA264_MEMORY_CLIENT_DISPR 0x182 +/* MGBE0 Read mccif */ +#define TEGRA264_MEMORY_CLIENT_MGBE0R 0x1a2 +/* MGBE0 Write mccif */ +#define TEGRA264_MEMORY_CLIENT_MGBE0W 0x1a3 +/* MGBE1 Read mccif */ +#define TEGRA264_MEMORY_CLIENT_MGBE1R 0x1a4 +/* MGBE1 Write mccif */ +#define TEGRA264_MEMORY_CLIENT_MGBE1W 0x1a5 +/* VI1 R5 Write client */ +#define TEGRA264_MEMORY_CLIENT_VI1W 0x1a6 +/* SDMMC0 Read mccif */ +#define TEGRA264_MEMORY_CLIENT_SDMMC0R 0x1c2 +/* SDMMC0 Write mccif */ +#define TEGRA264_MEMORY_CLIENT_SDMMC0W 0x1c3 + +#endif /* DT_BINDINGS_MEMORY_NVIDIA_TEGRA264_H */ --=20 2.50.0 From nobody Tue Oct 7 16:36:39 2025 Received: from mail-wr1-f43.google.com (mail-wr1-f43.google.com [209.85.221.43]) (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 B0E9A2D94B8; Tue, 8 Jul 2025 10:52:59 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.43 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751971981; cv=none; b=jZStCgqzEPWafx+wL60exjVW4JfqxA1PFWhF+N0YArYotRnYh7Bkehwfdb7/6k1TwSq052kW9zNflakLpLH60WX5Sx69g2FNvDNoUMK5KAo8/JCcEE2N+AdDS2jLr0wtLyj/wSsvAduuk+bo3e+9eWwiCO4ZNC2g7iG09nvl5po= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751971981; c=relaxed/simple; bh=wFL4tHSGiOOJzXA+bjTWPDFzM+ODfFvpq9CN5R0HKxQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=K+djiNppxY/OpXlO3Tt4gGHnF52wrW7ox3RaOt5tADTv/OwJw3ujysoLhh1w1ohwPIb9H/+4u3cD24uhrVrM2wo9/gsnp3zIFoFOglWXs2oh3T+aPIlFw4zB9zKq5NVscxYi2uE61dTWqv0JZDrCdvMJ8QE1HuQAIXF1sKSvEkk= 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=Fqsb5OHs; arc=none smtp.client-ip=209.85.221.43 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="Fqsb5OHs" Received: by mail-wr1-f43.google.com with SMTP id ffacd0b85a97d-3a57c8e247cso3151373f8f.1; Tue, 08 Jul 2025 03:52:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1751971978; x=1752576778; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=U6BwtkGrMGqdXkBGmjPybywm4Smjd9tEeGYA2g+BXUg=; b=Fqsb5OHsOwA2VtaLDBkJ7UpB5pReAbdiW8z4CxLgwQkUFcJSH+SyUZGCWnWtLjGYEA VqG05LbLeTKH0hcBEwXAyi9Bc8erMmfxA14MMX4aQufDQWYKiWjUypnAA6zPcX8v1/Dc NZMBKeAb7UGfEMcavGRsD4GNQ3TDTGY7i7NOKDG57IHk7l40QnVoA5KnmpfFcN6/Z/hD 3s36zqbJryIcLCFvD6FlqVzTRPnuQ9/zXLIVCm8jJvq86zHlcqQIZlGPYfiEgNNeo8SC j01tMnscS8HHpcwg5MyPZeeI+GOiEY7QvpTGGivTCsRS7Hj1huyXAT0oZjR98G+3L+YX 2aXw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751971978; x=1752576778; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=U6BwtkGrMGqdXkBGmjPybywm4Smjd9tEeGYA2g+BXUg=; b=EeQLg/2thip0vIXUbeuI0HYWKv5LVES0RVYU/5L/nD/KHl46WJ23n5fKd0QvWW/sdC ZdTjvgbK8614933gnTLH+yEpHtfqE81pGAqrVh1Bu0kMJRK1ENWUWCaw7WcuQrhZgnvt A0+A1E2MXR9ZG8Rf15361+/3H3TlH/7kpKaPpaPtkLH3vHxsqxExiGSCQVFWxYCM8qMz /ebueB+CjJgpKzUKBS63UZmdwz3qUgw72PuYrGwuic9LkxvbuYBbdYb4nTb7LB0NTrxA +13NgihX4F//3MNAmskmQD0OntEaXs+zbp9zSnos2yCHgQlyKEP71x150Xi3Rle7f5jx 3xQw== X-Forwarded-Encrypted: i=1; AJvYcCVXFO7/aEv1hnnSwFTnVEOQoEfmn1inh2cipen3JfeaqejnCX7kQbwxVKq+a4KDn85Qorm1uzlsjHFWHEut@vger.kernel.org, AJvYcCVg2Ukx8XQLUTz9i5zj+Otv0GTjavml/nzHvzlACBa+izgAYTquwUW9F0XGE8AGdP6n1de+D4G0gSpx@vger.kernel.org, AJvYcCWi45fyY3CEasfXAtNdz8+r9eKUioj/V3uJoEe3jlFEMkXFYgEot94WK76bvTV12mJ+tkbkTXja2rU6m3E=@vger.kernel.org X-Gm-Message-State: AOJu0YyR+Jm4DilFpWY+9th2957ai2EyBsG5rCGx9PwBXfCwBb7ipJ6C VzqIH6fH+AfdhdKZAAar5p2Sat/VlRz8c9AIqqkdsnaxZy/Hp/MFOwYP X-Gm-Gg: ASbGncuQEwksknehwFx/8fBJY7wb0sRf7SC05pC2WnkrWByRaKd5DpSw48HhRDKRBEV wJ2Oih6I1Cmz67x+9z8Pl/OeOoc0SqKBLNVwsqS0jY9xstwAz9CiL6AbQrw0Vev5UMDRlRqIxI/ VdKimIQY2AZxbv3oWIBbNCPq677CyaXI2rfx91H2MYxrVuscet4X8J223XPG3kisJot3z5o2wXZ A1KbW1yMznhZqbkkK7tPyu+DkBMh60jIoDCBC7+XC0Yj9WPpSDCz6deDx60RJqit1OK3RsgXvM5 gkcy3+sc5yWbXHQj6AKjeRFA4EEuqCItKGu9zp/1V3+EW7kFDa+DSmCohcJbC+qZ6M86hDxqO4k Nbd0bUnJyftvbzo+llHK9wyEoFtcQYPgQ4dGs/ZRBOxvDzZ7RC/r9hA== X-Google-Smtp-Source: AGHT+IGqH7r7zZU79aaAI3o+F1K83fqEdV726V+vc7XIXVdHUbZ9t0iNGGEs77zpBL4KOGjWdxdEOw== X-Received: by 2002:a5d:6f13:0:b0:3b3:9cc4:4bc0 with SMTP id ffacd0b85a97d-3b4970315f0mr12440440f8f.32.1751971977864; Tue, 08 Jul 2025 03:52:57 -0700 (PDT) Received: from localhost (p200300e41f4e9b00f22f74fffe1f3a53.dip0.t-ipconnect.de. [2003:e4:1f4e:9b00:f22f:74ff:fe1f:3a53]) by smtp.gmail.com with UTF8SMTPSA id ffacd0b85a97d-3b47030ba54sm12527859f8f.8.2025.07.08.03.52.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Jul 2025 03:52:56 -0700 (PDT) From: Thierry Reding To: Thierry Reding , Krzysztof Kozlowski Cc: Rob Herring , Conor Dooley , Jonathan Hunter , linux-tegra@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 3/4] dt-bindings: memory: tegra: Add Tegra264 stream IDs Date: Tue, 8 Jul 2025 12:52:44 +0200 Message-ID: <20250708105245.1516143-4-thierry.reding@gmail.com> X-Mailer: git-send-email 2.50.0 In-Reply-To: <20250708105245.1516143-1-thierry.reding@gmail.com> References: <20250708105245.1516143-1-thierry.reding@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Thierry Reding Add the stream IDs for various hardware blocks found on Tegra264. These are allocated as blocks of 256 IDs and each block can be subdivided for additional fine-grained isolation if needed. Signed-off-by: Thierry Reding --- include/dt-bindings/memory/nvidia,tegra264.h | 50 ++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/include/dt-bindings/memory/nvidia,tegra264.h b/include/dt-bind= ings/memory/nvidia,tegra264.h index d6cb0c9698f2..521405c01f84 100644 --- a/include/dt-bindings/memory/nvidia,tegra264.h +++ b/include/dt-bindings/memory/nvidia,tegra264.h @@ -4,6 +4,56 @@ #ifndef DT_BINDINGS_MEMORY_NVIDIA_TEGRA264_H #define DT_BINDINGS_MEMORY_NVIDIA_TEGRA264_H =20 +#define TEGRA264_SID(x) ((x) << 8) + +/* + * SMMU stream IDs + */ + +#define TEGRA264_SID_AON TEGRA264_SID(0x01) +#define TEGRA264_SID_APE TEGRA264_SID(0x02) +#define TEGRA264_SID_ETR TEGRA264_SID(0x03) +#define TEGRA264_SID_BPMP TEGRA264_SID(0x04) +#define TEGRA264_SID_DCE TEGRA264_SID(0x05) +#define TEGRA264_SID_EQOS TEGRA264_SID(0x06) +#define TEGRA264_SID_GPCDMA TEGRA264_SID(0x08) +#define TEGRA264_SID_DISP TEGRA264_SID(0x09) +#define TEGRA264_SID_HDA TEGRA264_SID(0x0a) +#define TEGRA264_SID_HOST1X TEGRA264_SID(0x0b) +#define TEGRA264_SID_ISP0 TEGRA264_SID(0x0c) +#define TEGRA264_SID_ISP1 TEGRA264_SID(0x0d) +#define TEGRA264_SID_PMA0 TEGRA264_SID(0x0e) +#define TEGRA264_SID_FSI0 TEGRA264_SID(0x0f) +#define TEGRA264_SID_FSI1 TEGRA264_SID(0x10) +#define TEGRA264_SID_PVA TEGRA264_SID(0x11) +#define TEGRA264_SID_SDMMC0 TEGRA264_SID(0x12) +#define TEGRA264_SID_MGBE0 TEGRA264_SID(0x13) +#define TEGRA264_SID_MGBE1 TEGRA264_SID(0x14) +#define TEGRA264_SID_MGBE2 TEGRA264_SID(0x15) +#define TEGRA264_SID_MGBE3 TEGRA264_SID(0x16) +#define TEGRA264_SID_MSSSEQ TEGRA264_SID(0x17) +#define TEGRA264_SID_SE TEGRA264_SID(0x18) +#define TEGRA264_SID_SEU1 TEGRA264_SID(0x19) +#define TEGRA264_SID_SEU2 TEGRA264_SID(0x1a) +#define TEGRA264_SID_SEU3 TEGRA264_SID(0x1b) +#define TEGRA264_SID_PSC TEGRA264_SID(0x1c) +#define TEGRA264_SID_OESP TEGRA264_SID(0x23) +#define TEGRA264_SID_SB TEGRA264_SID(0x24) +#define TEGRA264_SID_XSPI0 TEGRA264_SID(0x25) +#define TEGRA264_SID_TSEC TEGRA264_SID(0x29) +#define TEGRA264_SID_UFS TEGRA264_SID(0x2a) +#define TEGRA264_SID_RCE TEGRA264_SID(0x2b) +#define TEGRA264_SID_RCE1 TEGRA264_SID(0x2c) +#define TEGRA264_SID_VI TEGRA264_SID(0x2e) +#define TEGRA264_SID_VI1 TEGRA264_SID(0x2f) +#define TEGRA264_SID_VIC TEGRA264_SID(0x30) +#define TEGRA264_SID_XUSB_DEV TEGRA264_SID(0x32) +#define TEGRA264_SID_XUSB_DEV1 TEGRA264_SID(0x33) +#define TEGRA264_SID_XUSB_DEV2 TEGRA264_SID(0x34) +#define TEGRA264_SID_XUSB_DEV3 TEGRA264_SID(0x35) +#define TEGRA264_SID_XUSB_DEV4 TEGRA264_SID(0x36) +#define TEGRA264_SID_XUSB_DEV5 TEGRA264_SID(0x37) + /* * memory client IDs */ --=20 2.50.0 From nobody Tue Oct 7 16:36:39 2025 Received: from mail-wm1-f47.google.com (mail-wm1-f47.google.com [209.85.128.47]) (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 E74942D97BA; Tue, 8 Jul 2025 10:53:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.47 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751971984; cv=none; b=EhNI6OZvQvfcwySJp2vsLZj1GRzFGQRFSb7fShz7XZ01e4OMnS0k+x41e9DWZqfbDCVz4E5P6dwNC2O3lye240Or35qqYnTlK30YRIOB/WpGCdtTuqwIlXg2tiOi2rLnl34gPo0fm+VBp8cJ2SD4MLLN3fegBQdN0JOnvO29VMU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751971984; c=relaxed/simple; bh=4os34tukUSCcoB9zTgeHWBJhPJD9mgXMNpSqiP6eJyM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=bt4XuREyWHtER98ufSMGINIU1gleUOQ9pLxb6weLOBvqLTCXsvvvdiQk2h3rBstorODSl8ppCQentXaFt8yUn+WwVZ33/kCPjZYmAsZUxEhg+aqi5nLTaJ2KR27QQRZKzh7RcnQvV3Mi46rvajshoSiiyxluDC+NKlqjoLzx3j8= 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=a/70UywE; arc=none smtp.client-ip=209.85.128.47 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="a/70UywE" Received: by mail-wm1-f47.google.com with SMTP id 5b1f17b1804b1-453634d8609so28543035e9.3; Tue, 08 Jul 2025 03:53:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1751971980; x=1752576780; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=C6HxebNTtnWCflsD0iD9yhWDvkU41a99jL+L8u3pzNA=; b=a/70UywESU3uV52VxnBcw9rUPUkIVZ6zSpKVcNoU1Uh8SSSqARWaCRxlkXzsdhTTpv 0rNvqBJTbO7UZMIvoB/W1LiIF0V9I0y6lP4JlsrmncmxeIdw5qfA00QRcVVftJQO8G/r 5CazeZ1vqSC1fIgV2400neEFTiGjFpR7BSvR+4XMmR7s+IBqXbFBwvY9vUpUzZAT0c4b ajXOinVkjTbfJkdTnOg1A2fnoGXia5cKCmKdhNm+FwVBeyuk0iU47ZoRq2EZa0laIt/8 L7+E6946Y+9BgEV5k6IUFrrfksxKShDA8MBtdoGeNgvl1MbMQaPn10UwLuevNXvz8P/W J2XA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751971980; x=1752576780; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=C6HxebNTtnWCflsD0iD9yhWDvkU41a99jL+L8u3pzNA=; b=RtAvxjsEyo7DQSoSLOtMzO+yyKsU97WN2e7w0uORfYgPCJu8P7+mGDUNbvaM5kGx1A lTZuDu7VIdgB52/ddKEIihIQr+fjgEItXv4ZQ6obihEcsnHOoC0dd/daZvXhoi1rSFmQ 5Tcjh1pKMo+kDBA2QMsnsEax93bixz70+JoRIhPuzGxgDRJH2MIISI4Xj+a7nM9ENhbC BvWqWejBf7tkZYba8SXNcl8SGVZVHQZTsKO+i91HgoiByMZUzWuX6W/WxjjBW11JeL8q kch9fGCmkOa0dGlnyt+lwFwOce2si7ZzylhRGaho1lLCavbatF9vhgmWgGgowIJ3AgR5 S1+A== X-Forwarded-Encrypted: i=1; AJvYcCVansYrNUltEAef1ZuJFsLcTs9VpCsJVVNlJNcgH3gry4D7k3qxGWqaL40BTD8H+GE1ByYzMi6qITNxorU=@vger.kernel.org, AJvYcCVsf66XYRa7G70TkFx0SQikoHWagx885w1cJ4u6Zz9tgcr9dyAIPyjbD61lEAkF864ZOre4AiTg3I8+uvZ6@vger.kernel.org, AJvYcCXgfvGI/+YVJr3t7+clqhTmJaz8yC5IEiXL0w65R0uf/WkIxYde3+x54aD1K8Rr4aRKYG7Y68OKs3s0@vger.kernel.org X-Gm-Message-State: AOJu0YyLDYZg0OkL4wQZKD/SBd17LFoWU9hK3c7wKYa/hMqwqsdIvWFD VKtMzM7yJ60jdM8wWLM3b29ITf9w5BPGlUwTcND3Osbv4L/Gm7p/QDLd X-Gm-Gg: ASbGncuUMNPu9a+Wnux4bYZf9OsOzxk7ju3uDkkFjVuYJFJizREQnzrCUsTad5W6zK3 83ynHQS3KD+mNhqwZWYdZIscmZpDDOg0SGB8xsMToy4lDHh0UBwILJ7iCMZhn/Q1QEKD9AVBqhq Vq7xMmwuv6gQ78ex8M5mGnWcsmzrZXItLlRinZxiAkjPNgnbxscKkuFLfO23daLagzvwo/a0qlQ 1qLiJ6jYClrJDuqq2tp/vM9+XbtLvok7q2IFLZVLcv3dPJnurhirGQWtnckCO4s8b0bB+5fEFQt Hax5dOzI7yF3fAWhFPi+A+h28beuXm46bkn8pdkOk9/Qf+5z2AnmkUsvUPSAIIQ880SfGe0hI5G WP48xng6q38lhgRJp9lL7F5JqjafkSOecRJgjKsMRc5+HW433Opk6Qg== X-Google-Smtp-Source: AGHT+IEG2Plv1gj+rljPJxC0ndbx2NSe3k9EdRhITIzAe8/bum514d5tkUca/o/OwiFJ6ZI1qKnPnA== X-Received: by 2002:a05:600c:64ca:b0:43d:fa58:81d3 with SMTP id 5b1f17b1804b1-454cd5461a7mr20244955e9.32.1751971979877; Tue, 08 Jul 2025 03:52:59 -0700 (PDT) Received: from localhost (p200300e41f4e9b00f22f74fffe1f3a53.dip0.t-ipconnect.de. [2003:e4:1f4e:9b00:f22f:74ff:fe1f:3a53]) by smtp.gmail.com with UTF8SMTPSA id 5b1f17b1804b1-454cd4938ffsm18185685e9.21.2025.07.08.03.52.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Jul 2025 03:52:58 -0700 (PDT) From: Thierry Reding To: Thierry Reding , Krzysztof Kozlowski Cc: Rob Herring , Conor Dooley , Jonathan Hunter , linux-tegra@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 4/4] memory: tegra: Add Tegra264 MC and EMC support Date: Tue, 8 Jul 2025 12:52:45 +0200 Message-ID: <20250708105245.1516143-5-thierry.reding@gmail.com> X-Mailer: git-send-email 2.50.0 In-Reply-To: <20250708105245.1516143-1-thierry.reding@gmail.com> References: <20250708105245.1516143-1-thierry.reding@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Sumit Gupta Add support to enable Memory Controller (MC) and External Memory Controller (EMC) drivers for Tegra264. The nodes for MC and EMC are mostly the same as Tegra234 but differ in number of channels and interrupt numbers. The patch also adds the bandwidth manager definitions required for Tegra264 and uses them to populate the memory client table. All of these are needed to properly enable memory interconnect (ICC) support. Signed-off-by: Sumit Gupta Signed-off-by: Thierry Reding Acked-by: Krzysztof Kozlowski --- drivers/memory/tegra/Makefile | 2 + drivers/memory/tegra/mc.c | 5 +- drivers/memory/tegra/mc.h | 9 +- drivers/memory/tegra/tegra186-emc.c | 5 +- drivers/memory/tegra/tegra186.c | 17 +- drivers/memory/tegra/tegra264-bwmgr.h | 50 ++++ drivers/memory/tegra/tegra264.c | 313 ++++++++++++++++++++++++++ 7 files changed, 395 insertions(+), 6 deletions(-) create mode 100644 drivers/memory/tegra/tegra264-bwmgr.h create mode 100644 drivers/memory/tegra/tegra264.c diff --git a/drivers/memory/tegra/Makefile b/drivers/memory/tegra/Makefile index 0750847dac3c..6334601e6120 100644 --- a/drivers/memory/tegra/Makefile +++ b/drivers/memory/tegra/Makefile @@ -10,6 +10,7 @@ tegra-mc-$(CONFIG_ARCH_TEGRA_210_SOC) +=3D tegra210.o tegra-mc-$(CONFIG_ARCH_TEGRA_186_SOC) +=3D tegra186.o tegra-mc-$(CONFIG_ARCH_TEGRA_194_SOC) +=3D tegra186.o tegra194.o tegra-mc-$(CONFIG_ARCH_TEGRA_234_SOC) +=3D tegra186.o tegra234.o +tegra-mc-$(CONFIG_ARCH_TEGRA_264_SOC) +=3D tegra186.o tegra264.o =20 obj-$(CONFIG_TEGRA_MC) +=3D tegra-mc.o =20 @@ -21,5 +22,6 @@ obj-$(CONFIG_TEGRA210_EMC) +=3D tegra210-emc.o obj-$(CONFIG_ARCH_TEGRA_186_SOC) +=3D tegra186-emc.o obj-$(CONFIG_ARCH_TEGRA_194_SOC) +=3D tegra186-emc.o obj-$(CONFIG_ARCH_TEGRA_234_SOC) +=3D tegra186-emc.o +obj-$(CONFIG_ARCH_TEGRA_264_SOC) +=3D tegra186-emc.o =20 tegra210-emc-y :=3D tegra210-emc-core.o tegra210-emc-cc-r21021.o diff --git a/drivers/memory/tegra/mc.c b/drivers/memory/tegra/mc.c index bd5b58f1fd42..6edb210287dc 100644 --- a/drivers/memory/tegra/mc.c +++ b/drivers/memory/tegra/mc.c @@ -1,6 +1,6 @@ // SPDX-License-Identifier: GPL-2.0-only /* - * Copyright (C) 2014 NVIDIA CORPORATION. All rights reserved. + * Copyright (C) 2014-2025 NVIDIA CORPORATION. All rights reserved. */ =20 #include @@ -48,6 +48,9 @@ static const struct of_device_id tegra_mc_of_match[] =3D { #endif #ifdef CONFIG_ARCH_TEGRA_234_SOC { .compatible =3D "nvidia,tegra234-mc", .data =3D &tegra234_mc_soc }, +#endif +#ifdef CONFIG_ARCH_TEGRA_264_SOC + { .compatible =3D "nvidia,tegra264-mc", .data =3D &tegra264_mc_soc }, #endif { /* sentinel */ } }; diff --git a/drivers/memory/tegra/mc.h b/drivers/memory/tegra/mc.h index c3f6655bec60..1d97cf4d3a94 100644 --- a/drivers/memory/tegra/mc.h +++ b/drivers/memory/tegra/mc.h @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: GPL-2.0-only */ /* - * Copyright (C) 2014 NVIDIA CORPORATION. All rights reserved. + * Copyright (C) 2014-2025 NVIDIA CORPORATION. All rights reserved. */ =20 #ifndef MEMORY_TEGRA_MC_H @@ -182,6 +182,10 @@ extern const struct tegra_mc_soc tegra194_mc_soc; extern const struct tegra_mc_soc tegra234_mc_soc; #endif =20 +#ifdef CONFIG_ARCH_TEGRA_264_SOC +extern const struct tegra_mc_soc tegra264_mc_soc; +#endif + #if defined(CONFIG_ARCH_TEGRA_3x_SOC) || \ defined(CONFIG_ARCH_TEGRA_114_SOC) || \ defined(CONFIG_ARCH_TEGRA_124_SOC) || \ @@ -193,7 +197,8 @@ extern const struct tegra_mc_ops tegra30_mc_ops; =20 #if defined(CONFIG_ARCH_TEGRA_186_SOC) || \ defined(CONFIG_ARCH_TEGRA_194_SOC) || \ - defined(CONFIG_ARCH_TEGRA_234_SOC) + defined(CONFIG_ARCH_TEGRA_234_SOC) || \ + defined(CONFIG_ARCH_TEGRA_264_SOC) extern const struct tegra_mc_ops tegra186_mc_ops; #endif =20 diff --git a/drivers/memory/tegra/tegra186-emc.c b/drivers/memory/tegra/teg= ra186-emc.c index bc807d7fcd4e..d6cd90c7ad53 100644 --- a/drivers/memory/tegra/tegra186-emc.c +++ b/drivers/memory/tegra/tegra186-emc.c @@ -1,6 +1,6 @@ // SPDX-License-Identifier: GPL-2.0-only /* - * Copyright (C) 2019 NVIDIA CORPORATION. All rights reserved. + * Copyright (C) 2019-2025 NVIDIA CORPORATION. All rights reserved. */ =20 #include @@ -393,6 +393,9 @@ static const struct of_device_id tegra186_emc_of_match[= ] =3D { #endif #if defined(CONFIG_ARCH_TEGRA_234_SOC) { .compatible =3D "nvidia,tegra234-emc" }, +#endif +#if defined(CONFIG_ARCH_TEGRA_264_SOC) + { .compatible =3D "nvidia,tegra264-emc" }, #endif { /* sentinel */ } }; diff --git a/drivers/memory/tegra/tegra186.c b/drivers/memory/tegra/tegra18= 6.c index 1b3183951bfe..aee11457bf8e 100644 --- a/drivers/memory/tegra/tegra186.c +++ b/drivers/memory/tegra/tegra186.c @@ -1,6 +1,6 @@ // SPDX-License-Identifier: GPL-2.0-only /* - * Copyright (C) 2017-2021 NVIDIA CORPORATION. All rights reserved. + * Copyright (C) 2017-2025 NVIDIA CORPORATION. All rights reserved. */ =20 #include @@ -26,11 +26,24 @@ static int tegra186_mc_probe(struct tegra_mc *mc) { struct platform_device *pdev =3D to_platform_device(mc->dev); + struct resource *res; unsigned int i; char name[8]; int err; =20 - mc->bcast_ch_regs =3D devm_platform_ioremap_resource_byname(pdev, "broadc= ast"); + /* + * From Tegra264, the SID region is not present in MC node and BROADCAST = is first. + * The common function 'tegra_mc_probe()' already maps first region entry= from DT. + * Check if the SID region is present in DT then map BROADCAST. Otherwise= , consider + * the first entry mapped in mc probe as the BROADCAST region. This is do= ne to avoid + * mapping the region twice when SID is not present and keep backward com= patibility. + */ + res =3D platform_get_resource_byname(pdev, IORESOURCE_MEM, "sid"); + if (res) + mc->bcast_ch_regs =3D devm_platform_ioremap_resource_byname(pdev, "broad= cast"); + else + mc->bcast_ch_regs =3D mc->regs; + if (IS_ERR(mc->bcast_ch_regs)) { if (PTR_ERR(mc->bcast_ch_regs) =3D=3D -EINVAL) { dev_warn(&pdev->dev, diff --git a/drivers/memory/tegra/tegra264-bwmgr.h b/drivers/memory/tegra/t= egra264-bwmgr.h new file mode 100644 index 000000000000..93bfceaac9c8 --- /dev/null +++ b/drivers/memory/tegra/tegra264-bwmgr.h @@ -0,0 +1,50 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ +/* Copyright (C) 2025 NVIDIA CORPORATION. All rights reserved. */ + +#ifndef MEMORY_TEGRA_TEGRA264_BWMGR_H +#define MEMORY_TEGRA_TEGRA264_BWMGR_H + +#define TEGRA264_BWMGR_ICC_PRIMARY 1 +#define TEGRA264_BWMGR_DEBUG 2 +#define TEGRA264_BWMGR_CPU_CLUSTER0 3 +#define TEGRA264_BWMGR_CPU_CLUSTER1 4 +#define TEGRA264_BWMGR_CPU_CLUSTER2 5 +#define TEGRA264_BWMGR_CPU_CLUSTER3 6 +#define TEGRA264_BWMGR_CPU_CLUSTER4 7 +#define TEGRA264_BWMGR_CPU_CLUSTER5 8 +#define TEGRA264_BWMGR_CPU_CLUSTER6 9 +#define TEGRA264_BWMGR_CACTMON 10 +#define TEGRA264_BWMGR_DISPLAY 11 +#define TEGRA264_BWMGR_VI 12 +#define TEGRA264_BWMGR_APE 13 +#define TEGRA264_BWMGR_VIFAL 14 +#define TEGRA264_BWMGR_GPU 15 +#define TEGRA264_BWMGR_EQOS 16 +#define TEGRA264_BWMGR_PCIE_0 17 +#define TEGRA264_BWMGR_PCIE_1 18 +#define TEGRA264_BWMGR_PCIE_2 19 +#define TEGRA264_BWMGR_PCIE_3 20 +#define TEGRA264_BWMGR_PCIE_4 21 +#define TEGRA264_BWMGR_PCIE_5 22 +#define TEGRA264_BWMGR_SDMMC_1 23 +#define TEGRA264_BWMGR_SDMMC_2 24 +#define TEGRA264_BWMGR_NVDEC 25 +#define TEGRA264_BWMGR_NVENC 26 +#define TEGRA264_BWMGR_NVJPG_0 27 +#define TEGRA264_BWMGR_NVJPG_1 28 +#define TEGRA264_BWMGR_OFAA 29 +#define TEGRA264_BWMGR_XUSB_HOST 30 +#define TEGRA264_BWMGR_XUSB_DEV 31 +#define TEGRA264_BWMGR_TSEC 32 +#define TEGRA264_BWMGR_VIC 33 +#define TEGRA264_BWMGR_APEDMA 34 +#define TEGRA264_BWMGR_SE 35 +#define TEGRA264_BWMGR_ISP 36 +#define TEGRA264_BWMGR_HDA 37 +#define TEGRA264_BWMGR_VI2FAL 38 +#define TEGRA264_BWMGR_VI2 39 +#define TEGRA264_BWMGR_RCE 40 +#define TEGRA264_BWMGR_PVA 41 +#define TEGRA264_BWMGR_NVPMODEL 42 + +#endif diff --git a/drivers/memory/tegra/tegra264.c b/drivers/memory/tegra/tegra26= 4.c new file mode 100644 index 000000000000..5203e6c11372 --- /dev/null +++ b/drivers/memory/tegra/tegra264.c @@ -0,0 +1,313 @@ +// SPDX-License-Identifier: GPL-2.0-only +/* + * Copyright (C) 2025, NVIDIA CORPORATION. All rights reserved. + */ + +#include + +#include +#include +#include + +#include +#include + +#include "mc.h" +#include "tegra264-bwmgr.h" + +/* + * MC Client entries are sorted in the increasing order of the + * override and security register offsets. + */ +static const struct tegra_mc_client tegra264_mc_clients[] =3D { + { + .id =3D TEGRA264_MEMORY_CLIENT_HDAR, + .name =3D "hdar", + .bpmp_id =3D TEGRA264_BWMGR_HDA, + .type =3D TEGRA_ICC_ISO_AUDIO, + }, { + .id =3D TEGRA264_MEMORY_CLIENT_HDAW, + .name =3D "hdaw", + .bpmp_id =3D TEGRA264_BWMGR_HDA, + .type =3D TEGRA_ICC_ISO_AUDIO, + }, { + .id =3D TEGRA264_MEMORY_CLIENT_MGBE0R, + .name =3D "mgbe0r", + .bpmp_id =3D TEGRA264_BWMGR_EQOS, + .type =3D TEGRA_ICC_NISO, + }, { + .id =3D TEGRA264_MEMORY_CLIENT_MGBE0W, + .name =3D "mgbe0w", + .bpmp_id =3D TEGRA264_BWMGR_EQOS, + .type =3D TEGRA_ICC_NISO, + }, { + .id =3D TEGRA264_MEMORY_CLIENT_MGBE1R, + .name =3D "mgbe1r", + .bpmp_id =3D TEGRA264_BWMGR_EQOS, + .type =3D TEGRA_ICC_NISO, + }, { + .id =3D TEGRA264_MEMORY_CLIENT_MGBE1W, + .name =3D "mgbe1w", + .bpmp_id =3D TEGRA264_BWMGR_EQOS, + .type =3D TEGRA_ICC_NISO, + }, { + .id =3D TEGRA264_MEMORY_CLIENT_SDMMC0R, + .name =3D "sdmmc0r", + .bpmp_id =3D TEGRA264_BWMGR_SDMMC_1, + .type =3D TEGRA_ICC_NISO, + }, { + .id =3D TEGRA264_MEMORY_CLIENT_SDMMC0W, + .name =3D "sdmmc0w", + .bpmp_id =3D TEGRA264_BWMGR_SDMMC_1, + .type =3D TEGRA_ICC_NISO, + }, { + .id =3D TEGRA264_MEMORY_CLIENT_VICR, + .name =3D "vicr", + .bpmp_id =3D TEGRA264_BWMGR_VIC, + .type =3D TEGRA_ICC_NISO, + }, { + .id =3D TEGRA264_MEMORY_CLIENT_VICW, + .name =3D "vicw", + .bpmp_id =3D TEGRA264_BWMGR_VIC, + .type =3D TEGRA_ICC_NISO, + }, { + .id =3D TEGRA264_MEMORY_CLIENT_APER, + .name =3D "aper", + .bpmp_id =3D TEGRA264_BWMGR_APE, + .type =3D TEGRA_ICC_ISO_AUDIO, + }, { + .id =3D TEGRA264_MEMORY_CLIENT_APEW, + .name =3D "apew", + .bpmp_id =3D TEGRA264_BWMGR_APE, + .type =3D TEGRA_ICC_ISO_AUDIO, + }, { + .id =3D TEGRA264_MEMORY_CLIENT_APEDMAR, + .name =3D "apedmar", + .bpmp_id =3D TEGRA264_BWMGR_APEDMA, + .type =3D TEGRA_ICC_ISO_AUDIO, + }, { + .id =3D TEGRA264_MEMORY_CLIENT_APEDMAW, + .name =3D "apedmaw", + .bpmp_id =3D TEGRA264_BWMGR_APEDMA, + .type =3D TEGRA_ICC_ISO_AUDIO, + }, { + .id =3D TEGRA264_MEMORY_CLIENT_VIFALCONR, + .name =3D "vifalconr", + .bpmp_id =3D TEGRA264_BWMGR_VIFAL, + .type =3D TEGRA_ICC_ISO_VIFAL, + }, { + .id =3D TEGRA264_MEMORY_CLIENT_VIFALCONW, + .name =3D "vifalconw", + .bpmp_id =3D TEGRA264_BWMGR_VIFAL, + .type =3D TEGRA_ICC_ISO_VIFAL, + }, { + .id =3D TEGRA264_MEMORY_CLIENT_RCER, + .name =3D "rcer", + .bpmp_id =3D TEGRA264_BWMGR_RCE, + .type =3D TEGRA_ICC_NISO, + }, { + .id =3D TEGRA264_MEMORY_CLIENT_RCEW, + .name =3D "rcew", + .bpmp_id =3D TEGRA264_BWMGR_RCE, + .type =3D TEGRA_ICC_NISO, + }, { + .id =3D TEGRA264_MEMORY_CLIENT_PCIE0W, + .name =3D "pcie0w", + .bpmp_id =3D TEGRA264_BWMGR_PCIE_0, + .type =3D TEGRA_ICC_NISO, + }, { + .id =3D TEGRA264_MEMORY_CLIENT_PCIE1R, + .name =3D "pcie1r", + .bpmp_id =3D TEGRA264_BWMGR_PCIE_1, + .type =3D TEGRA_ICC_NISO, + }, { + .id =3D TEGRA264_MEMORY_CLIENT_PCIE1W, + .name =3D "pcie1w", + .bpmp_id =3D TEGRA264_BWMGR_PCIE_1, + .type =3D TEGRA_ICC_NISO, + }, { + .id =3D TEGRA264_MEMORY_CLIENT_PCIE2AR, + .name =3D "pcie2ar", + .bpmp_id =3D TEGRA264_BWMGR_PCIE_2, + .type =3D TEGRA_ICC_NISO, + }, { + .id =3D TEGRA264_MEMORY_CLIENT_PCIE2AW, + .name =3D "pcie2aw", + .bpmp_id =3D TEGRA264_BWMGR_PCIE_2, + .type =3D TEGRA_ICC_NISO, + }, { + .id =3D TEGRA264_MEMORY_CLIENT_PCIE3R, + .name =3D "pcie3r", + .bpmp_id =3D TEGRA264_BWMGR_PCIE_3, + .type =3D TEGRA_ICC_NISO, + }, { + .id =3D TEGRA264_MEMORY_CLIENT_PCIE3W, + .name =3D "pcie3w", + .bpmp_id =3D TEGRA264_BWMGR_PCIE_3, + .type =3D TEGRA_ICC_NISO, + }, { + .id =3D TEGRA264_MEMORY_CLIENT_PCIE4R, + .name =3D "pcie4r", + .bpmp_id =3D TEGRA264_BWMGR_PCIE_4, + .type =3D TEGRA_ICC_NISO, + }, { + .id =3D TEGRA264_MEMORY_CLIENT_PCIE4W, + .name =3D "pcie4w", + .bpmp_id =3D TEGRA264_BWMGR_PCIE_4, + .type =3D TEGRA_ICC_NISO, + }, { + .id =3D TEGRA264_MEMORY_CLIENT_PCIE5R, + .name =3D "pcie5r", + .bpmp_id =3D TEGRA264_BWMGR_PCIE_5, + .type =3D TEGRA_ICC_NISO, + }, { + .id =3D TEGRA264_MEMORY_CLIENT_PCIE5W, + .name =3D "pcie5w", + .bpmp_id =3D TEGRA264_BWMGR_PCIE_5, + .type =3D TEGRA_ICC_NISO, + }, { + .id =3D TEGRA264_MEMORY_CLIENT_GPUR02MC, + .name =3D "gpur02mc", + .bpmp_id =3D TEGRA264_BWMGR_GPU, + .type =3D TEGRA_ICC_NISO, + }, { + .id =3D TEGRA264_MEMORY_CLIENT_GPUW02MC, + .name =3D "gpuw02mc", + .bpmp_id =3D TEGRA264_BWMGR_GPU, + .type =3D TEGRA_ICC_NISO, + }, { + .id =3D TEGRA264_MEMORY_CLIENT_NVDECSRD2MC, + .name =3D "nvdecsrd2mc", + .bpmp_id =3D TEGRA264_BWMGR_NVDEC, + .type =3D TEGRA_ICC_NISO, + }, { + .id =3D TEGRA264_MEMORY_CLIENT_NVDECSWR2MC, + .name =3D "nvdecswr2mc", + .bpmp_id =3D TEGRA264_BWMGR_NVDEC, + .type =3D TEGRA_ICC_NISO, + }, +}; + +/* + * tegra264_mc_icc_set() - Pass MC client info to the BPMP-FW + * @src: ICC node for Memory Controller's (MC) Client + * @dst: ICC node for Memory Controller (MC) + * + * Passing the current request info from the MC to the BPMP-FW where + * LA and PTSA registers are accessed and the final EMC freq is set + * based on client_id, type, latency and bandwidth. + * icc_set_bw() makes set_bw calls for both MC and EMC providers in + * sequence. Both the calls are protected by 'mutex_lock(&icc_lock)'. + * So, the data passed won't be updated by concurrent set calls from + * other clients. + */ +static int tegra264_mc_icc_set(struct icc_node *src, struct icc_node *dst) +{ + struct tegra_mc *mc =3D icc_provider_to_tegra_mc(dst->provider); + struct mrq_bwmgr_int_request bwmgr_req =3D { 0 }; + struct mrq_bwmgr_int_response bwmgr_resp =3D { 0 }; + const struct tegra_mc_client *pclient =3D src->data; + struct tegra_bpmp_message msg; + int ret; + + /* + * Same Src and Dst node will happen during boot from icc_node_add(). + * This can be used to pre-initialize and set bandwidth for all clients + * before their drivers are loaded. We are skipping this case as for us, + * the pre-initialization already happened in Bootloader(MB2) and BPMP-FW. + */ + if (src->id =3D=3D dst->id) + return 0; + + if (!mc->bwmgr_mrq_supported) + return 0; + + if (!mc->bpmp) { + dev_err(mc->dev, "BPMP reference NULL\n"); + return -ENOENT; + } + + if (pclient->type =3D=3D TEGRA_ICC_NISO) + bwmgr_req.bwmgr_calc_set_req.niso_bw =3D src->avg_bw; + else + bwmgr_req.bwmgr_calc_set_req.iso_bw =3D src->avg_bw; + + bwmgr_req.bwmgr_calc_set_req.client_id =3D pclient->bpmp_id; + + bwmgr_req.cmd =3D CMD_BWMGR_INT_CALC_AND_SET; + bwmgr_req.bwmgr_calc_set_req.mc_floor =3D src->peak_bw; + bwmgr_req.bwmgr_calc_set_req.floor_unit =3D BWMGR_INT_UNIT_KBPS; + + memset(&msg, 0, sizeof(msg)); + msg.mrq =3D MRQ_BWMGR_INT; + msg.tx.data =3D &bwmgr_req; + msg.tx.size =3D sizeof(bwmgr_req); + msg.rx.data =3D &bwmgr_resp; + msg.rx.size =3D sizeof(bwmgr_resp); + + ret =3D tegra_bpmp_transfer(mc->bpmp, &msg); + if (ret < 0) { + dev_err(mc->dev, "BPMP transfer failed: %d\n", ret); + goto error; + } + if (msg.rx.ret < 0) { + pr_err("failed to set bandwidth for %u: %d\n", + bwmgr_req.bwmgr_calc_set_req.client_id, msg.rx.ret); + ret =3D -EINVAL; + } + +error: + return ret; +} + +static int tegra264_mc_icc_aggregate(struct icc_node *node, u32 tag, u32 a= vg_bw, + u32 peak_bw, u32 *agg_avg, u32 *agg_peak) +{ + struct icc_provider *p =3D node->provider; + struct tegra_mc *mc =3D icc_provider_to_tegra_mc(p); + + if (!mc->bwmgr_mrq_supported) + return 0; + + *agg_avg +=3D avg_bw; + *agg_peak =3D max(*agg_peak, peak_bw); + + return 0; +} + +static int tegra264_mc_icc_get_init_bw(struct icc_node *node, u32 *avg, u3= 2 *peak) +{ + *avg =3D 0; + *peak =3D 0; + + return 0; +} + +static const struct tegra_mc_icc_ops tegra264_mc_icc_ops =3D { + .xlate =3D tegra_mc_icc_xlate, + .aggregate =3D tegra264_mc_icc_aggregate, + .get_bw =3D tegra264_mc_icc_get_init_bw, + .set =3D tegra264_mc_icc_set, +}; + +const struct tegra_mc_soc tegra264_mc_soc =3D { + .num_clients =3D ARRAY_SIZE(tegra264_mc_clients), + .clients =3D tegra264_mc_clients, + .num_address_bits =3D 40, + .num_channels =3D 16, + .client_id_mask =3D 0x1ff, + .intmask =3D MC_INT_DECERR_ROUTE_SANITY | + MC_INT_DECERR_GENERALIZED_CARVEOUT | MC_INT_DECERR_MTS | + MC_INT_SECERR_SEC | MC_INT_DECERR_VPR | + MC_INT_SECURITY_VIOLATION | MC_INT_DECERR_EMEM, + .has_addr_hi_reg =3D true, + .ops =3D &tegra186_mc_ops, + .icc_ops =3D &tegra264_mc_icc_ops, + .ch_intmask =3D 0x0000ff00, + .global_intstatus_channel_shift =3D 8, + /* + * Additionally, there are lite carveouts but those are not currently + * supported. + */ + .num_carveouts =3D 32, +}; --=20 2.50.0