Re: [PATCH v4 5/8] irqchip/imx-irqsteer: add NXP S32N79 support
From: Ciprian Marian Costea
Date: Mon Mar 09 2026 - 05:40:57 EST
On 3/9/2026 11:23 AM, Thomas Gleixner wrote:
On Fri, Mar 06 2026 at 17:15, Ciprian Costea wrote:
+/* SoC does not implement the CHANCTRL register */
+#define IRQSTEER_QUIRK_NO_CHANCTRL BIT(0)
+
+struct irqsteer_devtype_data {
+ u32 quirks;
+};
+
struct irqsteer_data {
void __iomem *regs;
struct clk *ipg_clk;
@@ -37,8 +44,22 @@ struct irqsteer_data {
struct irq_domain *domain;
u32 *saved_reg;
struct device *dev;
+ const struct irqsteer_devtype_data *devtype_data;
The struct was perfectly tabular formatted before....
https://www.kernel.org/doc/html/latest/process/maintainer-tip.html#struct-declarations-and-initializers
};
+static const struct irqsteer_devtype_data imx_data = {
+ .quirks = 0,
+};
+
+static const struct irqsteer_devtype_data s32n79_data = {
+ .quirks = IRQSTEER_QUIRK_NO_CHANCTRL,
+};
+
+static bool irqsteer_has_chanctrl(const struct irqsteer_devtype_data *data)
+{
+ return !(data->quirks & IRQSTEER_QUIRK_NO_CHANCTRL);
+}
+
static int imx_irqsteer_get_reg_index(struct irqsteer_data *data,
unsigned long irqnum)
{
@@ -188,6 +209,10 @@ static int imx_irqsteer_probe(struct platform_device *pdev)
if (ret)
return ret;
+ data->devtype_data = device_get_match_data(&pdev->dev);
+ if (!data->devtype_data)
+ return dev_err_probe(&pdev->dev, -ENODEV,
+ "failed to match device data\n");
No point for this line break. You have 100 characters. If you have the
line break, then this needs curly brackets. See the bracket rules in the
above linked document.
static const struct of_device_id imx_irqsteer_dt_ids[] = {
- { .compatible = "fsl,imx-irqsteer", },
+ { .compatible = "fsl,imx-irqsteer", .data = &imx_data },
+ { .compatible = "nxp,s32n79-irqsteer", .data = &s32n79_data },
Tabular layout please for readability sake.
Thanks,
tglx
Hello Thomas,
Thank you for your review.
I will address these findings in V5.
Best Regards,
Ciprian