<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>i.MX ProcessorsのトピックDevice Tree Compilation warning on interrupts_property</title>
    <link>https://community.nxp.com/t5/i-MX-Processors/Device-Tree-Compilation-warning-on-interrupts-property/m-p/1710999#M211407</link>
    <description>&lt;P&gt;I am using the i.MX6ULL with the PCA953X driver.&amp;nbsp;&lt;/P&gt;&lt;P&gt;My 1st question is how do I pick an interrupt? I picked 31 (decimal) because it does not occur elsewhere in device tree.&lt;/P&gt;&lt;P&gt;My 2nd question is on the cause of a warning.&lt;/P&gt;&lt;P&gt;When I try to compile my tree I get a warning:&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;LI-CODE lang="c"&gt;/home/jklug/mlinux-iotr/build/tmp/work-shared/iotr/kernel-source/arch/arm/boot/dts/imx6ul.dtsi:547.5-28: Warning (interrupts_property): /soc/aips-bus@2100000/i2c@21a8000/pca9538@71:#interrupt-cells: size is (12), expected multiple of 8&lt;/LI-CODE&gt;&lt;P&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;Since #interrupt-cells is used frequently without any warnings, I am assuming something is wrong with my device tree.&lt;/P&gt;&lt;P&gt;Here is a segment of the input.&amp;nbsp; I am using the i.MX6ULL processor:&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;LI-CODE lang="c"&gt;   gpio6:pca9538@71 {  // GPIO Expander
        pinctrl-0 = &amp;lt;&amp;amp;pinctrl_gpio6_int&amp;gt;;
        compatible = "nxp,pca9538";
        reg = &amp;lt;0x71&amp;gt;;
        gpio-controller;
        #gpio-cells = &amp;lt;2&amp;gt;;
        vcc-supply = &amp;lt;&amp;amp;dummy_reg_33&amp;gt;;  // Driver wants a regulator?
        #interrupt-cells = &amp;lt;2&amp;gt;;
        interrupt-parent = &amp;lt;&amp;amp;gpio3&amp;gt;;
        interrupts = &amp;lt;GIC_SPI 31 IRQ_TYPE_LEVEL_LOW&amp;gt;;
        gpio-line-names = "g6_0", "g6_1", "RS232_RS485_UART3_EN",
                      "RS232_UART2_EN", "RS485_TERM_EN",
                      "g6_5", "USER_DIO_IN", "USER_DIO_OUT";
    };&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;BR /&gt;I derived this from examples here:&lt;BR /&gt;&lt;A href="https://github.com/nxp-imx/linux-imx/blob/git.kernel.org/linux-stable/linux-5.4.y/arch/arm/boot/dts/imx28-cfa10049.dts#L66" target="_self"&gt;PCA9555&lt;/A&gt;&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;and here:&lt;BR /&gt;&lt;A href="https://github.com/nxp-imx/linux-imx/blob/git.kernel.org/linux-stable/linux-5.4.y/arch/arm/boot/dts/armada-385-turris-omnia.dts#L209" target="_self"&gt;PCA9538&lt;/A&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Thu, 24 Aug 2023 21:20:51 GMT</pubDate>
    <dc:creator>JohnKlug</dc:creator>
    <dc:date>2023-08-24T21:20:51Z</dc:date>
    <item>
      <title>Device Tree Compilation warning on interrupts_property</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Device-Tree-Compilation-warning-on-interrupts-property/m-p/1710999#M211407</link>
      <description>&lt;P&gt;I am using the i.MX6ULL with the PCA953X driver.&amp;nbsp;&lt;/P&gt;&lt;P&gt;My 1st question is how do I pick an interrupt? I picked 31 (decimal) because it does not occur elsewhere in device tree.&lt;/P&gt;&lt;P&gt;My 2nd question is on the cause of a warning.&lt;/P&gt;&lt;P&gt;When I try to compile my tree I get a warning:&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;LI-CODE lang="c"&gt;/home/jklug/mlinux-iotr/build/tmp/work-shared/iotr/kernel-source/arch/arm/boot/dts/imx6ul.dtsi:547.5-28: Warning (interrupts_property): /soc/aips-bus@2100000/i2c@21a8000/pca9538@71:#interrupt-cells: size is (12), expected multiple of 8&lt;/LI-CODE&gt;&lt;P&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;Since #interrupt-cells is used frequently without any warnings, I am assuming something is wrong with my device tree.&lt;/P&gt;&lt;P&gt;Here is a segment of the input.&amp;nbsp; I am using the i.MX6ULL processor:&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;LI-CODE lang="c"&gt;   gpio6:pca9538@71 {  // GPIO Expander
        pinctrl-0 = &amp;lt;&amp;amp;pinctrl_gpio6_int&amp;gt;;
        compatible = "nxp,pca9538";
        reg = &amp;lt;0x71&amp;gt;;
        gpio-controller;
        #gpio-cells = &amp;lt;2&amp;gt;;
        vcc-supply = &amp;lt;&amp;amp;dummy_reg_33&amp;gt;;  // Driver wants a regulator?
        #interrupt-cells = &amp;lt;2&amp;gt;;
        interrupt-parent = &amp;lt;&amp;amp;gpio3&amp;gt;;
        interrupts = &amp;lt;GIC_SPI 31 IRQ_TYPE_LEVEL_LOW&amp;gt;;
        gpio-line-names = "g6_0", "g6_1", "RS232_RS485_UART3_EN",
                      "RS232_UART2_EN", "RS485_TERM_EN",
                      "g6_5", "USER_DIO_IN", "USER_DIO_OUT";
    };&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;BR /&gt;I derived this from examples here:&lt;BR /&gt;&lt;A href="https://github.com/nxp-imx/linux-imx/blob/git.kernel.org/linux-stable/linux-5.4.y/arch/arm/boot/dts/imx28-cfa10049.dts#L66" target="_self"&gt;PCA9555&lt;/A&gt;&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;and here:&lt;BR /&gt;&lt;A href="https://github.com/nxp-imx/linux-imx/blob/git.kernel.org/linux-stable/linux-5.4.y/arch/arm/boot/dts/armada-385-turris-omnia.dts#L209" target="_self"&gt;PCA9538&lt;/A&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 24 Aug 2023 21:20:51 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Device-Tree-Compilation-warning-on-interrupts-property/m-p/1710999#M211407</guid>
      <dc:creator>JohnKlug</dc:creator>
      <dc:date>2023-08-24T21:20:51Z</dc:date>
    </item>
    <item>
      <title>Re: Device Tree Compilation warning on interrupts_property</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Device-Tree-Compilation-warning-on-interrupts-property/m-p/1711561#M211458</link>
      <description>&lt;P&gt;I think I now understand this.&amp;nbsp; interrupt-cells is the number of 32 bit words that is used to describe a single interrupt specified by the "interrupts" property in children.&lt;BR /&gt;&lt;BR /&gt;Some interrupt parents require 3 parameters, and some require 2 from the imx6ul.dtsi portion of device tree.&lt;BR /&gt;&lt;BR /&gt;Example:&lt;/P&gt;&lt;LI-CODE lang="c"&gt;                     gpc: gpc@20dc000 {
                                compatible = "fsl,imx6ul-gpc", "fsl,imx6q-gpc";
                                reg = &amp;lt;0x020dc000 0x4000&amp;gt;;
                                interrupt-controller;
                                #interrupt-cells = &amp;lt;3&amp;gt;;
                                interrupts = &amp;lt;GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH&amp;gt;;
                                interrupt-parent = &amp;lt;&amp;amp;intc&amp;gt;;
                                fsl,mf-mix-wakeup-irq = &amp;lt;0x7c00000 0x7d00 0x0 0x1400640&amp;gt;;
                        };&lt;/LI-CODE&gt;&lt;P&gt;&lt;BR /&gt;When this interrupt controller is used, we need 3 parameters to the interrupt:&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;LI-CODE lang="c"&gt;        tempmon: tempmon {
                compatible = "fsl,imx6ul-tempmon", "fsl,imx6sx-tempmon";
                interrupt-parent = &amp;lt;&amp;amp;gpc&amp;gt;;
                interrupts = &amp;lt;GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH&amp;gt;;
                fsl,tempmon = &amp;lt;&amp;amp;anatop&amp;gt;;
                nvmem-cells = &amp;lt;&amp;amp;tempmon_calib&amp;gt;, &amp;lt;&amp;amp;tempmon_temp_grade&amp;gt;;
                nvmem-cell-names = "calib", "temp_grade";
                clocks = &amp;lt;&amp;amp;clks IMX6UL_CLK_PLL3_USB_OTG&amp;gt;;
        };&lt;/LI-CODE&gt;&lt;P&gt;&lt;BR /&gt;So because the gic controller requires 3 parameters in the interrupts property, three thirty-two bit words are specified.&lt;BR /&gt;&lt;BR /&gt;In my case, the parent is the GPIO controller built into the i.MX6:&lt;/P&gt;&lt;LI-CODE lang="c"&gt;                       gpio3: gpio@20a4000 {
                                compatible = "fsl,imx6ul-gpio", "fsl,imx35-gpio";
                                reg = &amp;lt;0x020a4000 0x4000&amp;gt;;
                                interrupts = &amp;lt;GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH&amp;gt;,
                                             &amp;lt;GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH&amp;gt;;
                                clocks = &amp;lt;&amp;amp;clks IMX6UL_CLK_GPIO3&amp;gt;;
                                gpio-controller;
                                #gpio-cells = &amp;lt;2&amp;gt;;
                                interrupt-controller;
                                #interrupt-cells = &amp;lt;2&amp;gt;;
                                gpio-ranges = &amp;lt;&amp;amp;iomuxc 0 65 29&amp;gt;;
                        };&lt;/LI-CODE&gt;&lt;P&gt;&lt;BR /&gt;It specified gpio-cells of 2, so my gpio6 interrupt controller, which has a parent interrupt controller of gpio3 must only use 2 words per "interrupts" interrupt.&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 25 Aug 2023 15:34:50 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Device-Tree-Compilation-warning-on-interrupts-property/m-p/1711561#M211458</guid>
      <dc:creator>JohnKlug</dc:creator>
      <dc:date>2023-08-25T15:34:50Z</dc:date>
    </item>
  </channel>
</rss>

