<?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のトピックLinux device tree for the SAI device used as a UART (bluetooth)</title>
    <link>https://community.nxp.com/t5/i-MX-Processors/Linux-device-tree-for-the-SAI-device-used-as-a-UART-bluetooth/m-p/1041361#M153412</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I have a custom i.mx7d target with a wl1837mod wifi/bluetooth module connected to sai12, muxed (ALT2) to uart4.&lt;/P&gt;&lt;P&gt;I'm running a linux 4.9 buildroot&lt;SPAN style="font-family: arial, helvetica, sans-serif; font-size: 15px;"&gt; kernel&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;My device tree has defined the pinmux for uart4 to map the sai2 pins.&amp;nbsp; &amp;nbsp;The wifi radio&amp;nbsp;(driven by as SDHC module) is working well, so power to the wl1837mod, sdkc1, and the wifi enable management are correct.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;However hciattach is unable to communciate with the bluetooth radio.&amp;nbsp; &amp;nbsp;I'm not sure how to debug it from here.&lt;/P&gt;&lt;P&gt;My concern is that the power is not being enabled for the sai module.&amp;nbsp; &amp;nbsp;It is disabled by default in the imx7d device tree.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Question is, how should I define the sai2 device tree for use as a uart?&amp;nbsp; &amp;nbsp; The sai2 audio node would make no sense.&lt;/P&gt;&lt;P&gt;This is a place&amp;nbsp;where device tree content is a bit of a dark art.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Is there a definition somewhere of how to configure an sai device for use as a uart (alt2 mode)?&lt;/P&gt;&lt;P&gt;The SAI device tree documentation doesn't address this variant, and all the wl1837mod docs I can find describe the use of the SDHC interface, which I can't use, as the sdhc modules are in use.&amp;nbsp; &amp;nbsp;&lt;BR /&gt;As if nobody would ever have a conflict with the sdhc device.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: arial, helvetica, sans-serif; font-size: 15px;"&gt;Relevant device tree nodes:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;pinctrl_uart4: uart4grp {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;fsl,pins = &amp;lt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/* 100K PU | Pull Enabled | Hysteresis Enabled | Fast Slew Rate | DSE X4 */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MX7D_PAD_SAI2_TX_SYNC__UART4_DCE_RX 0x79&amp;nbsp;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MX7D_PAD_SAI2_TX_BCLK__UART4_DCE_TX 0x79&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MX7D_PAD_SAI2_RX_DATA__UART4_DCE_CTS 0x79&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MX7D_PAD_SAI2_TX_DATA__UART4_DCE_RTS 0x79&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;gt;;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;};&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;pinctrl_usdhc1: usdhc1grp {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;fsl,pins = &amp;lt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MX7D_PAD_SD1_CLK__SD1_CLK 0x0a&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MX7D_PAD_SD1_CMD__SD1_CMD 0x5a&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MX7D_PAD_SD1_DATA0__SD1_DATA0 0x5a&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MX7D_PAD_SD1_DATA1__SD1_DATA1 0x5a&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MX7D_PAD_SD1_DATA2__SD1_DATA2 0x5a&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MX7D_PAD_SD1_DATA3__SD1_DATA3 0x5a&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MX7D_PAD_SD1_CD_B__GPIO5_IO0 0x5a /* WL IRQ */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MX7D_PAD_SD1_RESET_B__GPIO5_IO2 0x5a /* BT EN */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MX7D_PAD_SD1_WP__GPIO5_IO1 0x5a /* WL EN */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;gt;;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;};&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;...&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;reg_wlan: regulator@5 {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;compatible = "regulator-fixed";&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;regulator-min-microvolt = &amp;lt;1800000&amp;gt;;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;regulator-max-microvolt = &amp;lt;1800000&amp;gt;;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;regulator-name = "reg_wlan";&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;startup-delay-us = &amp;lt;70000&amp;gt;;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;gpio = &amp;lt;&amp;amp;gpio5 1 GPIO_ACTIVE_HIGH&amp;gt;;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;enable-active-high;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;};&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;...&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;/ {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;usdhc1_pwrseq: usdhc1_pwrseq {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;compatible = "mmc-pwrseq-simple";&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;clocks = &amp;lt;&amp;amp;clks IMX7D_CLKO2_ROOT_DIV&amp;gt;;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;clock-names = "ext_clock";&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;};&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;...&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;&amp;amp;usdhc1 {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;pinctrl-names = "default";&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;pinctrl-0 = &amp;lt;&amp;amp;pinctrl_usdhc1&amp;gt;;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;keep-power-in-suspend;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;enable-sdio-wakeup;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;bus-width = &amp;lt;4&amp;gt;;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;no-1-8-v;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;wifi-host;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;ti,non-removable;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;ti,needs-special-hs-handling;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;vmmc-supply = &amp;lt;&amp;amp;reg_wlan&amp;gt;;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;mmc-pwrseq = &amp;lt;&amp;amp;usdhc1_pwrseq&amp;gt;;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;status = "okay";&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;max-frequency = &amp;lt;10000000&amp;gt;;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;#address-cells = &amp;lt;1&amp;gt;;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;#size-cells = &amp;lt;0&amp;gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;wlcore: wlcore@0 {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;compatible = "ti,wl1837";&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;reg = &amp;lt;2&amp;gt;;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;interrupt-parent = &amp;lt;&amp;amp;gpio5&amp;gt;;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;interrupts = &amp;lt;0 IRQ_TYPE_LEVEL_HIGH&amp;gt;;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;};&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;...&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;/* ************************************************************************* */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;/* bluetooth: tell uart4 to use rts/cts */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;/* ************************************************************************* */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;&amp;amp;uart4 {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;pinctrl-names = "default";&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;pinctrl-0 = &amp;lt;&amp;amp;pinctrl_uart4&amp;gt;;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;assigned-clocks = &amp;lt;&amp;amp;clks IMX7D_UART4_ROOT_SRC&amp;gt;;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;assigned-clock-parents = &amp;lt;&amp;amp;clks IMX7D_PLL_SYS_MAIN_240M_CLK&amp;gt;;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;fsl,uart-has-rtscts;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;status = "okay";&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;};&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;...&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;SPAN style="font-family: terminal, monaco, monospace;"&gt;&lt;BR /&gt;/delete-node/ &amp;amp;sai2;&lt;BR /&gt;&lt;BR /&gt;&lt;STRONG style="color: #ff0000; "&gt;&amp;amp;sai2 {&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG style="color: #ff0000; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;/* WHAT ELSE? */&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG style="color: #ff0000; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;status = "okay";&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG style="color: #ff0000; "&gt;};&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: terminal, monaco, monospace;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 18 May 2020 21:25:45 GMT</pubDate>
    <dc:creator>-dan_l</dc:creator>
    <dc:date>2020-05-18T21:25:45Z</dc:date>
    <item>
      <title>Linux device tree for the SAI device used as a UART (bluetooth)</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Linux-device-tree-for-the-SAI-device-used-as-a-UART-bluetooth/m-p/1041361#M153412</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I have a custom i.mx7d target with a wl1837mod wifi/bluetooth module connected to sai12, muxed (ALT2) to uart4.&lt;/P&gt;&lt;P&gt;I'm running a linux 4.9 buildroot&lt;SPAN style="font-family: arial, helvetica, sans-serif; font-size: 15px;"&gt; kernel&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;My device tree has defined the pinmux for uart4 to map the sai2 pins.&amp;nbsp; &amp;nbsp;The wifi radio&amp;nbsp;(driven by as SDHC module) is working well, so power to the wl1837mod, sdkc1, and the wifi enable management are correct.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;However hciattach is unable to communciate with the bluetooth radio.&amp;nbsp; &amp;nbsp;I'm not sure how to debug it from here.&lt;/P&gt;&lt;P&gt;My concern is that the power is not being enabled for the sai module.&amp;nbsp; &amp;nbsp;It is disabled by default in the imx7d device tree.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Question is, how should I define the sai2 device tree for use as a uart?&amp;nbsp; &amp;nbsp; The sai2 audio node would make no sense.&lt;/P&gt;&lt;P&gt;This is a place&amp;nbsp;where device tree content is a bit of a dark art.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Is there a definition somewhere of how to configure an sai device for use as a uart (alt2 mode)?&lt;/P&gt;&lt;P&gt;The SAI device tree documentation doesn't address this variant, and all the wl1837mod docs I can find describe the use of the SDHC interface, which I can't use, as the sdhc modules are in use.&amp;nbsp; &amp;nbsp;&lt;BR /&gt;As if nobody would ever have a conflict with the sdhc device.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: arial, helvetica, sans-serif; font-size: 15px;"&gt;Relevant device tree nodes:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;pinctrl_uart4: uart4grp {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;fsl,pins = &amp;lt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/* 100K PU | Pull Enabled | Hysteresis Enabled | Fast Slew Rate | DSE X4 */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MX7D_PAD_SAI2_TX_SYNC__UART4_DCE_RX 0x79&amp;nbsp;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MX7D_PAD_SAI2_TX_BCLK__UART4_DCE_TX 0x79&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MX7D_PAD_SAI2_RX_DATA__UART4_DCE_CTS 0x79&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MX7D_PAD_SAI2_TX_DATA__UART4_DCE_RTS 0x79&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;gt;;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;};&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;pinctrl_usdhc1: usdhc1grp {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;fsl,pins = &amp;lt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MX7D_PAD_SD1_CLK__SD1_CLK 0x0a&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MX7D_PAD_SD1_CMD__SD1_CMD 0x5a&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MX7D_PAD_SD1_DATA0__SD1_DATA0 0x5a&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MX7D_PAD_SD1_DATA1__SD1_DATA1 0x5a&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MX7D_PAD_SD1_DATA2__SD1_DATA2 0x5a&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MX7D_PAD_SD1_DATA3__SD1_DATA3 0x5a&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MX7D_PAD_SD1_CD_B__GPIO5_IO0 0x5a /* WL IRQ */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MX7D_PAD_SD1_RESET_B__GPIO5_IO2 0x5a /* BT EN */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MX7D_PAD_SD1_WP__GPIO5_IO1 0x5a /* WL EN */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;gt;;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;};&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;...&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;reg_wlan: regulator@5 {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;compatible = "regulator-fixed";&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;regulator-min-microvolt = &amp;lt;1800000&amp;gt;;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;regulator-max-microvolt = &amp;lt;1800000&amp;gt;;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;regulator-name = "reg_wlan";&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;startup-delay-us = &amp;lt;70000&amp;gt;;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;gpio = &amp;lt;&amp;amp;gpio5 1 GPIO_ACTIVE_HIGH&amp;gt;;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;enable-active-high;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;};&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;...&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;/ {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;usdhc1_pwrseq: usdhc1_pwrseq {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;compatible = "mmc-pwrseq-simple";&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;clocks = &amp;lt;&amp;amp;clks IMX7D_CLKO2_ROOT_DIV&amp;gt;;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;clock-names = "ext_clock";&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;};&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;...&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;&amp;amp;usdhc1 {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;pinctrl-names = "default";&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;pinctrl-0 = &amp;lt;&amp;amp;pinctrl_usdhc1&amp;gt;;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;keep-power-in-suspend;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;enable-sdio-wakeup;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;bus-width = &amp;lt;4&amp;gt;;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;no-1-8-v;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;wifi-host;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;ti,non-removable;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;ti,needs-special-hs-handling;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;vmmc-supply = &amp;lt;&amp;amp;reg_wlan&amp;gt;;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;mmc-pwrseq = &amp;lt;&amp;amp;usdhc1_pwrseq&amp;gt;;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;status = "okay";&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;max-frequency = &amp;lt;10000000&amp;gt;;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;#address-cells = &amp;lt;1&amp;gt;;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;#size-cells = &amp;lt;0&amp;gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;wlcore: wlcore@0 {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;compatible = "ti,wl1837";&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;reg = &amp;lt;2&amp;gt;;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;interrupt-parent = &amp;lt;&amp;amp;gpio5&amp;gt;;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;interrupts = &amp;lt;0 IRQ_TYPE_LEVEL_HIGH&amp;gt;;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;};&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;...&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;/* ************************************************************************* */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;/* bluetooth: tell uart4 to use rts/cts */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;/* ************************************************************************* */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;&amp;amp;uart4 {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;pinctrl-names = "default";&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;pinctrl-0 = &amp;lt;&amp;amp;pinctrl_uart4&amp;gt;;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;assigned-clocks = &amp;lt;&amp;amp;clks IMX7D_UART4_ROOT_SRC&amp;gt;;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;assigned-clock-parents = &amp;lt;&amp;amp;clks IMX7D_PLL_SYS_MAIN_240M_CLK&amp;gt;;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;fsl,uart-has-rtscts;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;status = "okay";&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;};&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: terminal, monaco, monospace; font-size: 13px;"&gt;...&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px;"&gt;&lt;SPAN style="font-family: terminal, monaco, monospace;"&gt;&lt;BR /&gt;/delete-node/ &amp;amp;sai2;&lt;BR /&gt;&lt;BR /&gt;&lt;STRONG style="color: #ff0000; "&gt;&amp;amp;sai2 {&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG style="color: #ff0000; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;/* WHAT ELSE? */&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG style="color: #ff0000; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;status = "okay";&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG style="color: #ff0000; "&gt;};&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: terminal, monaco, monospace;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 18 May 2020 21:25:45 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Linux-device-tree-for-the-SAI-device-used-as-a-UART-bluetooth/m-p/1041361#M153412</guid>
      <dc:creator>-dan_l</dc:creator>
      <dc:date>2020-05-18T21:25:45Z</dc:date>
    </item>
    <item>
      <title>Re: Linux device tree for the SAI device used as a UART (bluetooth)</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Linux-device-tree-for-the-SAI-device-used-as-a-UART-bluetooth/m-p/1041362#M153413</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Dan&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;gt;My concern is that the power is not being enabled for the sai module.&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;gt;It is disabled by default in the imx7d device tree.&lt;/P&gt;&lt;P&gt;&amp;gt;Question is, how should I define the sai2 device tree for use as a uart?&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;gt;The sai2 audio node would make no sense.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;when sai pins are configured as uarts, no need to pay attention to sai.&lt;/P&gt;&lt;P&gt;One can verify that uart is enabed in dts and check Table 102. i.MX 7Dual 19 x 19 mm&lt;/P&gt;&lt;P&gt;functional contact assignments column "Power Group" &lt;/P&gt;&lt;P&gt;&lt;A href="https://www.nxp.com/docs/en/data-sheet/IMX7DCEC.pdf" target="_blank"&gt;&lt;STRONG&gt;i.MX 7Dual Family of Applications Processors Datasheet&lt;/STRONG&gt;&lt;/A&gt;&lt;/P&gt;&lt;P&gt;For sai multiplexed as a uart one can look at example pinctrl_uart5: uart5grp:&lt;BR /&gt;MX7D_PAD_SAI1_RX_DATA__UART5_DCE_RX&lt;BR /&gt;&lt;A href="https://source.codeaurora.org/external/imx/linux-imx/tree/arch/arm/boot/dts/imx7d-sdb.dts?h=imx_5.4.3_2.0.0" target="test_blank"&gt;https://source.codeaurora.org/external/imx/linux-imx/tree/arch/arm/boot/dts/imx7d-sdb.dts?h=imx_5.4.3_2.0.0&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A class="link-titled" href="https://source.codeaurora.org/external/imx/linux-imx/tree/arch/arm/boot/dts/imx7d-sdb.dts?h=imx_4.9.11_1.0.0_ga" title="https://source.codeaurora.org/external/imx/linux-imx/tree/arch/arm/boot/dts/imx7d-sdb.dts?h=imx_4.9.11_1.0.0_ga"&gt;imx7d-sdb.dts\dts\boot\arm\arch - linux-imx - i.MX Linux kernel&lt;/A&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Also may be helpful help AN5125 Introduction to Device Trees&lt;/P&gt;&lt;P&gt;&lt;A class="link-titled" href="https://www.nxp.com/docs/en/application-note/AN5125.pdf" title="https://www.nxp.com/docs/en/application-note/AN5125.pdf"&gt;https://www.nxp.com/docs/en/application-note/AN5125.pdf&lt;/A&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;for hciattach one can look at murata linux wifi/bt documentation:&lt;/P&gt;&lt;P&gt;wireless.murata.com/eng/products/rf-modules-1/wi-fi-bluetooth-for-freescale-i-mx.html&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best regards&lt;BR /&gt;igor&lt;BR /&gt;-----------------------------------------------------------------------------------------------------------------------&lt;BR /&gt;Note: If this post answers your question, please click the Correct Answer button. Thank you!&lt;BR /&gt;-----------------------------------------------------------------------------------------------------------------------&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 19 May 2020 00:56:20 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Linux-device-tree-for-the-SAI-device-used-as-a-UART-bluetooth/m-p/1041362#M153413</guid>
      <dc:creator>igorpadykov</dc:creator>
      <dc:date>2020-05-19T00:56:20Z</dc:date>
    </item>
  </channel>
</rss>

