From nobody Wed Oct 8 20:02:00 2025 Received: from mail-wm1-f53.google.com (mail-wm1-f53.google.com [209.85.128.53]) (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 804642D9ECB; Wed, 25 Jun 2025 10:45:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.53 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750848342; cv=none; b=kLxyKaVQYWZ2WlhJO3yxCM4XnbfUWW0CfolxwdpB83SKoeWV6pZ2rxCnO/i9dWhsHVhgkRM/gkw/Fe3xIwgMpGCrSSvDBT+XvJ9cEvRnbjFotl3SzrSTSYkQ25kezNSb+ts2Rahlj1mEgWhik8QYFoDFUJduKO3nWkMzbgZZJjI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750848342; c=relaxed/simple; bh=mUD2833JuG8J5scV+YsordChuNvzXCArXz8G600luX8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=k6kcpblljo5rcxfj1OShUaX4NwK2KYQlyy0Y3EfHNCPYJzPrhknmWo7iUPGiWJsvOaRxdX92KAcd+O/5R+T2/+FIbKOP6QQ8B9T2Tf57oO+4o4ARRSaHdh2U6kPLJ/3UaaV7iyF7Qn5E+AkVG2pAhnrCTSS1koB62MQFFn/YslE= 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=ldnEr61e; arc=none smtp.client-ip=209.85.128.53 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="ldnEr61e" Received: by mail-wm1-f53.google.com with SMTP id 5b1f17b1804b1-45310223677so47897765e9.0; Wed, 25 Jun 2025 03:45:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1750848338; x=1751453138; 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=rkRy3nKrFGbSul+q17335EOgr/sgvrBWKgqg7xNqJtk=; b=ldnEr61elx/lWj7FOv8+YZmufHhp289LWeUYLNvBkJc69sSszhcNQ6XnBnRJAOTZJM jwoFLVx6ZQ2f8UfRZf3WmIsNFTbj4i1e4AxpJNvg2x9uCUq64sWXNu/S5dwB1KBc28Xo cAcGaC98QxFLDcpYGcya9d0HzXve1N6S17oQWvB+pbLORaGkuhU4WkHWOO5Ik6/GKhj8 VmTjE+TsPu77VOfBtNAte8ETcrqqmjJj4dSifL5yPahw97c/lnyWC1USoEjOm+ACmBoI 8JoaEsit6OZzQABlm+gZ/unOWg5AP4fGz7gk8O6HkOyWAkDe0TKmwJHfJBEdgq4zyOWc Yr2g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1750848338; x=1751453138; 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=rkRy3nKrFGbSul+q17335EOgr/sgvrBWKgqg7xNqJtk=; b=rppa7GpLommwc9l+dQITyELoHqzQWyqqR9wt1mHMRhqQxQMUGm3HA/I/sAyaWUWvG3 V6qnE8+o12SNa/OsWN9A5ghWEvHI2+yNH0tt2/45oHaHOvzrQ6OM9m1TRz0DbZ6AeQXP HljieA5GkFA3JaflVdsm3a/ZEuNQnjZTNnrB/q59kWf7GOcVZZ4EyAAA9dLrfIV/CIZE TUp8a/vD1I/D+Yf5dr0bVA5t3sFDDZDFq7bGaOMu/n9YOB4PNEl1psFGh/48B0e4tx9f Pv5owh97B3d393TkfHR5tA54ilF2J9s2r2BFHhLlR/1p94xNgOZwZ1PaeTA2Ic+rXTU9 IErg== X-Forwarded-Encrypted: i=1; AJvYcCUVX/vAJX959h/kH5yXc75RRHGFZvH48F9nLCGQIM6j+4AkGXqpO+a11ohEe5O6vgTeAUSzlGGq1fvhoBhE@vger.kernel.org, AJvYcCUk+jF+M3tCkYTli4Rq3yy4HmIhZ5QvqfEd+BL5tnRE5gni+E4NKcdawsKb7nBnfpGtcxdferiZ0jlO@vger.kernel.org, AJvYcCWOQmX0gix5yMZ0oeMXJ6e6gU8aSJ+w2AkyTCTTsQecjjERVzSYBS7LbOpveSk5FkYZmzol9vgFjzuq@vger.kernel.org X-Gm-Message-State: AOJu0Yw+9eC0lbqlPVZXcrMGlEUOAb+ddcAoTcdmtlMMPjXbBVmNNKzt tVCWmFtXy5v5SArlJrYnIe+knfswNIcjbd6qpgEv1vWff1c9WrV/WrXa X-Gm-Gg: ASbGncuBXjF8GHXyj27bRDZYqPJCdWCgb8XLqGx1qdhXjb2p3S5YdDHKVE76CR1jh2C SfuEeb1r3+/Vkuerme83W5iGj71moZNqV6tC0oKElv84YxKv2Ut+JJIh453wgzLFiBFVmZ+OBpu 5XBQhx/gKBXXKXX/EK4d4KyHsGGFWyVwfg6odR380IEkKvTwe5sW6QSrI49+ZI5oQ0dDBwYBoDi ZOVc7rVlnxftnjPmJ8xldiEYA7TjZZDsnps04pmFNIeckPkyo7qkjjwUDWUlHYKlbcM7gopD+Th LHoZWLwQirBRkW2MsFLVzfWUaddnorG3yOZBKCLNJrKpAgx0dwlmh68BtlsjT7gQiHoJ6giD2vl K5Wzrk0FYloiRkpbDUAQj X-Google-Smtp-Source: AGHT+IF+EGGV8eMv8qPl+jjcHTvqLF4NLnWLmmU5RvgVVGrK//Za2i6uYKHL14id6c/9EEFn24WyaA== X-Received: by 2002:a05:600c:4689:b0:450:30e4:bdf6 with SMTP id 5b1f17b1804b1-453837b27admr15558415e9.19.1750848337449; Wed, 25 Jun 2025 03:45:37 -0700 (PDT) Received: from iku.example.org ([2a06:5906:61b:2d00:c47e:d783:f875:2c7c]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4538233c1easm16036175e9.3.2025.06.25.03.45.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 25 Jun 2025 03:45:36 -0700 (PDT) From: Prabhakar X-Google-Original-From: Prabhakar To: Chris Brandt , Andi Shyti , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Geert Uytterhoeven , Magnus Damm , Wolfram Sang , Andy Shevchenko Cc: linux-renesas-soc@vger.kernel.org, linux-i2c@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Prabhakar , Biju Das , Fabrizio Castro , Lad Prabhakar Subject: [PATCH v4 3/5] i2c: riic: Pass IRQ desc array as part of OF data Date: Wed, 25 Jun 2025 11:45:24 +0100 Message-ID: <20250625104526.101004-4-prabhakar.mahadev-lad.rj@bp.renesas.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250625104526.101004-1-prabhakar.mahadev-lad.rj@bp.renesas.com> References: <20250625104526.101004-1-prabhakar.mahadev-lad.rj@bp.renesas.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: Lad Prabhakar In preparation for adding support for Renesas RZ/T2H and RZ/N2H SoCs, which feature a combined error interrupt instead of individual error interrupts per condition, update the driver to support configurable IRQ layouts via OF data. Introduce a new `irqs` field and `num_irqs` count in `riic_of_data` to allow future SoCs to provide a custom IRQ layout. This patch is a non-functional change for existing SoCs and maintains compatibility with the current `riic_irqs` array. Signed-off-by: Lad Prabhakar Reviewed-by: Wolfram Sang Tested-by: Wolfram Sang # on RZ/A1 Reviewed-by: Geert Uytterhoeven Tested-by: Geert Uytterhoeven Reviewed-by: Andy Shevchenko --- v3->v4: - No changes. v2->v3: - No changes. v1->v2: - Added Acked-by and Reviewed-by tags. --- drivers/i2c/busses/i2c-riic.c | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/drivers/i2c/busses/i2c-riic.c b/drivers/i2c/busses/i2c-riic.c index 23375f7fe3ad..ecd1c78eecfd 100644 --- a/drivers/i2c/busses/i2c-riic.c +++ b/drivers/i2c/busses/i2c-riic.c @@ -102,6 +102,8 @@ enum riic_reg_list { =20 struct riic_of_data { const u8 *regs; + const struct riic_irq_desc *irqs; + u8 num_irqs; bool fast_mode_plus; }; =20 @@ -520,21 +522,23 @@ static int riic_i2c_probe(struct platform_device *pde= v) return dev_err_probe(dev, PTR_ERR(riic->rstc), "failed to acquire deasserted reset\n"); =20 - for (i =3D 0; i < ARRAY_SIZE(riic_irqs); i++) { + riic->info =3D of_device_get_match_data(dev); + + for (i =3D 0; i < riic->info->num_irqs; i++) { + const struct riic_irq_desc *irq_desc; int irq; =20 - irq =3D platform_get_irq(pdev, riic_irqs[i].res_num); + irq_desc =3D &riic->info->irqs[i]; + irq =3D platform_get_irq(pdev, irq_desc->res_num); if (irq < 0) return irq; =20 - ret =3D devm_request_irq(dev, irq, riic_irqs[i].isr, - 0, riic_irqs[i].name, riic); + ret =3D devm_request_irq(dev, irq, irq_desc->isr, 0, irq_desc->name, rii= c); if (ret) return dev_err_probe(dev, ret, "failed to request irq %s\n", - riic_irqs[i].name); + irq_desc->name); } =20 - riic->info =3D of_device_get_match_data(dev); =20 adap =3D &riic->adapter; i2c_set_adapdata(adap, riic); @@ -606,11 +610,15 @@ static const u8 riic_rz_a_regs[RIIC_REG_END] =3D { =20 static const struct riic_of_data riic_rz_a_info =3D { .regs =3D riic_rz_a_regs, + .irqs =3D riic_irqs, + .num_irqs =3D ARRAY_SIZE(riic_irqs), .fast_mode_plus =3D true, }; =20 static const struct riic_of_data riic_rz_a1h_info =3D { .regs =3D riic_rz_a_regs, + .irqs =3D riic_irqs, + .num_irqs =3D ARRAY_SIZE(riic_irqs), }; =20 static const u8 riic_rz_v2h_regs[RIIC_REG_END] =3D { @@ -630,6 +638,8 @@ static const u8 riic_rz_v2h_regs[RIIC_REG_END] =3D { =20 static const struct riic_of_data riic_rz_v2h_info =3D { .regs =3D riic_rz_v2h_regs, + .irqs =3D riic_irqs, + .num_irqs =3D ARRAY_SIZE(riic_irqs), .fast_mode_plus =3D true, }; =20 --=20 2.49.0