<?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>topic Re: Disabling default gpio pull-down not working imx8mm in i.MX Processors</title>
    <link>https://community.nxp.com/t5/i-MX-Processors/Disabling-default-gpio-pull-down-not-working-imx8mm/m-p/1568205#M198626</link>
    <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/209335"&gt;@borysszefler&lt;/a&gt;,&lt;/P&gt;
&lt;DIV&gt;&lt;STRONG&gt;pinctrl settings from the device tree will be applied and selected (between default/gpio/init)&amp;nbsp; by&amp;nbsp;&lt;SPAN&gt;devm_pinctrl_get in the bus driver&amp;nbsp;&lt;/SPAN&gt;when a device driver is about to probe.&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;The probe function (aic3x_probe ) must be called as it parses reset-gpio from dts and configures it.&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Please send the complete dts file for further debugging.&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Thanks &amp;amp; Regards,&lt;BR /&gt;Ritesh M Patel&lt;/DIV&gt;</description>
    <pubDate>Mon, 12 Dec 2022 10:24:21 GMT</pubDate>
    <dc:creator>riteshmpatel</dc:creator>
    <dc:date>2022-12-12T10:24:21Z</dc:date>
    <item>
      <title>Disabling default gpio pull-down not working imx8mm</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Disabling-default-gpio-pull-down-not-working-imx8mm/m-p/1564486#M198351</link>
      <description>&lt;P&gt;I have a device connected via i2c and a reset signal from gpio. I prepared device tree, but I have a problem with reset line.&lt;/P&gt;&lt;P&gt;It is the &lt;SPAN&gt;IOMUXC_SW_PAD_CTL_PAD_SAI5_RXC set as GPIO3_20 and it's default state is pull resistor enabled and pull down select. The reset of the i2c device is ACTIVE_LOW so this default pull-down keeps this device in reset state.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;I disabled internal pull down in dts:&lt;/SPAN&gt;&lt;/P&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;MX8MM_IOMUXC_SAI5_RXC_GPIO3_IO20&lt;/SPAN&gt;&lt;SPAN&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;0x00000016&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/DIV&gt;&lt;P&gt;and also added external pull-up, but I cannot see 3.3V there. I can see something about 0.5V so internal pull-down must be still active.&lt;/P&gt;&lt;P&gt;If I set gpio high using libgpio, then I can detect device using i2cdetect command, so the device is working.&lt;/P&gt;&lt;P&gt;My question is, how should I disable this internal pull down to detect the device on the i2c bus?&lt;/P&gt;&lt;P&gt;When gpio settings from device tree are set?&lt;/P&gt;&lt;P&gt;EDIT:&lt;BR /&gt;it looks like pinctrl config has value i set in device tree, but register has still value with pull down enabled. Why is that?&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;root@a:~# dmesg | grep MX8MM_IOMUXC_SAI5_RXC&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0.037921] pinctrl core: registered pin 81 (MX8MM_IOMUXC_SAI5_RXC) on 30330000.pinctrl&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0.040163] imx8mm-pinctrl 30330000.pinctrl: MX8MM_IOMUXC_SAI5_RXC: 0x5 0x00000016&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;root@a:~# devmem 0x303303ac&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;0x00000116&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;root@a:~#&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 06 Dec 2022 10:50:47 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Disabling-default-gpio-pull-down-not-working-imx8mm/m-p/1564486#M198351</guid>
      <dc:creator>borysszefler</dc:creator>
      <dc:date>2022-12-06T10:50:47Z</dc:date>
    </item>
    <item>
      <title>Re: Disabling default gpio pull-down not working imx8mm</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Disabling-default-gpio-pull-down-not-working-imx8mm/m-p/1565918#M198450</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/209335"&gt;@borysszefler&lt;/a&gt;,&lt;/P&gt;
&lt;P&gt;I hope you are doing well.&lt;/P&gt;
&lt;DIV&gt;Please make sure that you have correctly configured the pads in&lt;STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;kernel dts&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;and that any other declaration is not overriding the pad control register.&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;Have you added code to control reset gpio in the i2c device driver as below?&amp;nbsp;&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;in i2c device node&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;&amp;nbsp; reset-gpios = &amp;lt;&amp;amp;gpio3&amp;nbsp;20 GPIO_ACTIVE_HIGH&amp;gt;;&lt;BR /&gt;&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;in i2c driver's probe function&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;struct gpio_desc *gpio;&lt;BR /&gt;&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;gpio = devm_gpiod_get_optional(&amp;amp;&lt;WBR /&gt;client-&amp;gt;dev, "reset", GPIOD_OUT_HIGH);&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;if (IS_ERR(gpio))&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return PTR_ERR(gpio);&lt;BR /&gt;&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Alternatively, one can use the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;gpio-hog&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;property to set a&amp;nbsp;particular&amp;nbsp;gpio as high permanently in dts.&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Please send the kernel device tree file for further debugging.&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Thanks &amp;amp; Regards,&lt;BR /&gt;Ritesh M Patel&lt;/DIV&gt;</description>
      <pubDate>Wed, 07 Dec 2022 12:33:16 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Disabling-default-gpio-pull-down-not-working-imx8mm/m-p/1565918#M198450</guid>
      <dc:creator>riteshmpatel</dc:creator>
      <dc:date>2022-12-07T12:33:16Z</dc:date>
    </item>
    <item>
      <title>Re: Disabling default gpio pull-down not working imx8mm</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Disabling-default-gpio-pull-down-not-working-imx8mm/m-p/1565931#M198456</link>
      <description>&lt;P&gt;HI &lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/201596"&gt;@riteshmpatel&lt;/a&gt;, thank you for your response.&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;&amp;amp;i2c3 {&lt;BR /&gt;tlv320aic3x: tlv320aic3x@18 {&lt;BR /&gt;#sound-dai-cells = &amp;lt;0&amp;gt;;&lt;BR /&gt;compatible = "ti,tlv320aic3x";&lt;BR /&gt;reg = &amp;lt;0x18&amp;gt;;&lt;/P&gt;&lt;P&gt;pinctrl-names = "default";&lt;BR /&gt;pinctrl-0 = &amp;lt;&amp;amp;pinctrl_tlv32&amp;gt;;&lt;BR /&gt;reset-gpios = &amp;lt;&amp;amp;gpio3 20 GPIO_ACTIVE_LOW&amp;gt;;&lt;/P&gt;&lt;P&gt;AVDD-supply = &amp;lt;&amp;amp;reg&amp;gt;;&lt;BR /&gt;IOVDD-supply = &amp;lt;&amp;amp;reg&amp;gt;;&lt;BR /&gt;DRVDD-supply = &amp;lt;&amp;amp;reg&amp;gt;;&lt;BR /&gt;};&lt;BR /&gt;};&lt;/P&gt;&lt;P&gt;&amp;amp;iomuxc {&lt;BR /&gt;pinctrl_tlv32: tlv32grp {&lt;BR /&gt;fsl,pins = &amp;lt;&lt;BR /&gt;MX8MM_IOMUXC_SAI5_RXC_GPIO3_IO20 0x00000016&lt;BR /&gt;&amp;gt;;&lt;BR /&gt;};&lt;/P&gt;&lt;P&gt;};&lt;/P&gt;&lt;P&gt;I can see that driver is registered:&lt;BR /&gt;&lt;BR /&gt;[ 6.080843] i2c i2c-2: of_i2c: register /soc@0/bus@30800000/i2c@30a40000/tlv320aic3x@18&lt;BR /&gt;[ 6.099482] i2c i2c-2: client [tlv320aic3x] registered with bus id 2-0018&lt;BR /&gt;[ 12.267136] i2c-core: driver [tlv320aic3x] registered&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 07 Dec 2022 12:47:56 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Disabling-default-gpio-pull-down-not-working-imx8mm/m-p/1565931#M198456</guid>
      <dc:creator>borysszefler</dc:creator>
      <dc:date>2022-12-07T12:47:56Z</dc:date>
    </item>
    <item>
      <title>Re: Disabling default gpio pull-down not working imx8mm</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Disabling-default-gpio-pull-down-not-working-imx8mm/m-p/1567290#M198549</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/209335"&gt;@borysszefler&lt;/a&gt;,&lt;/P&gt;
&lt;P&gt;Please Cross-check that Any Device tree overlay is not overriding the values of pad control register MX8MM_IOMUXC_SAI5_RXC.&lt;/P&gt;
&lt;P&gt;You can set GPIO to high from the probe function of the i2c device driver.&lt;/P&gt;
&lt;P&gt;Please provide me with the Probe function of the i2c device driver if the issue still persists.&lt;/P&gt;
&lt;P&gt;Thanks &amp;amp; Regards,&lt;BR /&gt;Ritesh M Patel&lt;/P&gt;</description>
      <pubDate>Fri, 09 Dec 2022 06:14:19 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Disabling-default-gpio-pull-down-not-working-imx8mm/m-p/1567290#M198549</guid>
      <dc:creator>riteshmpatel</dc:creator>
      <dc:date>2022-12-09T06:14:19Z</dc:date>
    </item>
    <item>
      <title>Re: Disabling default gpio pull-down not working imx8mm</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Disabling-default-gpio-pull-down-not-working-imx8mm/m-p/1567338#M198554</link>
      <description>&lt;P&gt;Hi &lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/201596"&gt;@riteshmpatel&lt;/a&gt;,&lt;/P&gt;&lt;P&gt;there is nothing overriding values the values of that pad.&lt;/P&gt;&lt;P&gt;Here you have a driver: &lt;A href="https://github.com/torvalds/linux/blob/v5.15/sound/soc/codecs/tlv320aic3x-i2c.c" target="_blank"&gt;https://github.com/torvalds/linux/blob/v5.15/sound/soc/codecs/tlv320aic3x-i2c.c&lt;/A&gt;&lt;/P&gt;&lt;P&gt;But from me debug it looks like probe function is never called.&lt;/P&gt;&lt;P&gt;My question is, when pinctrl settings from device tree are applied? After driver request reset gpio? Or pull-down should be disabled before driver is attached?&lt;/P&gt;</description>
      <pubDate>Fri, 09 Dec 2022 07:43:42 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Disabling-default-gpio-pull-down-not-working-imx8mm/m-p/1567338#M198554</guid>
      <dc:creator>borysszefler</dc:creator>
      <dc:date>2022-12-09T07:43:42Z</dc:date>
    </item>
    <item>
      <title>Re: Disabling default gpio pull-down not working imx8mm</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Disabling-default-gpio-pull-down-not-working-imx8mm/m-p/1568205#M198626</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/209335"&gt;@borysszefler&lt;/a&gt;,&lt;/P&gt;
&lt;DIV&gt;&lt;STRONG&gt;pinctrl settings from the device tree will be applied and selected (between default/gpio/init)&amp;nbsp; by&amp;nbsp;&lt;SPAN&gt;devm_pinctrl_get in the bus driver&amp;nbsp;&lt;/SPAN&gt;when a device driver is about to probe.&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;The probe function (aic3x_probe ) must be called as it parses reset-gpio from dts and configures it.&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Please send the complete dts file for further debugging.&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Thanks &amp;amp; Regards,&lt;BR /&gt;Ritesh M Patel&lt;/DIV&gt;</description>
      <pubDate>Mon, 12 Dec 2022 10:24:21 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Disabling-default-gpio-pull-down-not-working-imx8mm/m-p/1568205#M198626</guid>
      <dc:creator>riteshmpatel</dc:creator>
      <dc:date>2022-12-12T10:24:21Z</dc:date>
    </item>
    <item>
      <title>Re: Disabling default gpio pull-down not working imx8mm</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Disabling-default-gpio-pull-down-not-working-imx8mm/m-p/1568213#M198627</link>
      <description>&lt;P&gt;Hi &lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/201596"&gt;@riteshmpatel&lt;/a&gt;, thank you for you response.&lt;/P&gt;&lt;P&gt;sound-tlv320aic3x {&lt;BR /&gt;compatible = "simple-audio-card";&lt;BR /&gt;simple-audio-card,name = "TLV320DAC32";&lt;BR /&gt;simple-audio-card,format = "i2s";&lt;BR /&gt;simple-audio-card,bitclock-master = &amp;lt;&amp;amp;codec1&amp;gt;;&lt;BR /&gt;simple-audio-card,frame-master = &amp;lt;&amp;amp;codec1&amp;gt;;&lt;BR /&gt;simple-audio-card,widgets = "Buzzer";&lt;BR /&gt;simple-audio-card,routing =&lt;BR /&gt;"Buzzer", "SPR";&lt;BR /&gt;simple-audio-card,cpu {&lt;BR /&gt;sound-dai = &amp;lt;&amp;amp;sai3&amp;gt;;&lt;BR /&gt;};&lt;BR /&gt;};&lt;BR /&gt;&lt;BR /&gt;codec1: simple-audio-card,codec {&lt;BR /&gt;sound-dai = &amp;lt;&amp;amp;tlv320aic3x&amp;gt;;&lt;BR /&gt;system-clock-frequency = &amp;lt;&amp;amp;clk IMX8MM_CLK_SAI3_ROOT&amp;gt;;&lt;BR /&gt;};&lt;/P&gt;&lt;P&gt;&amp;amp;sai3 {&lt;BR /&gt;pinctrl-names = "default";&lt;BR /&gt;pinctrl-0 = &amp;lt;&amp;amp;pinctrl_sai3&amp;gt;;&lt;BR /&gt;status = "okay";&lt;/P&gt;&lt;P&gt;assigned-clocks = &amp;lt;&amp;amp;clk IMX8MM_CLK_SAI3&amp;gt;;&lt;BR /&gt;assigned-clock-parents = &amp;lt;&amp;amp;clk IMX8MM_AUDIO_PLL1_OUT&amp;gt;;&lt;BR /&gt;assigned-clock-rates = &amp;lt;12000000&amp;gt;;&lt;BR /&gt;};&lt;/P&gt;&lt;P&gt;&amp;amp;i2c3 {&lt;BR /&gt;tlv320aic3x: tlv320aic3x@18 {&lt;BR /&gt;#sound-dai-cells = &amp;lt;0&amp;gt;;&lt;BR /&gt;compatible = "ti,tlv320aic3x";&lt;BR /&gt;reg = &amp;lt;0x18&amp;gt;;&lt;/P&gt;&lt;P&gt;pinctrl-names = "default";&lt;BR /&gt;pinctrl-0 = &amp;lt;&amp;amp;pinctrl_tlv32&amp;gt;;&lt;BR /&gt;reset-gpios = &amp;lt;&amp;amp;gpio3 20 GPIO_ACTIVE_LOW&amp;gt;;&lt;/P&gt;&lt;P&gt;AVDD-supply = &amp;lt;&amp;amp;reg&amp;gt;;&lt;BR /&gt;IOVDD-supply = &amp;lt;&amp;amp;reg&amp;gt;;&lt;BR /&gt;DRVDD-supply = &amp;lt;&amp;amp;reg&amp;gt;;&lt;BR /&gt;};&lt;BR /&gt;};&lt;/P&gt;&lt;P&gt;pinctrl_sai3: sai3grp {&lt;BR /&gt;fsl,pins = &amp;lt;&lt;BR /&gt;MX8MM_IOMUXC_SAI3_MCLK_SAI3_MCLK 0x00000016&lt;BR /&gt;MX8MM_IOMUXC_SAI3_TXC_SAI3_TX_BCLK 0x00001816&lt;BR /&gt;MX8MM_IOMUXC_SAI3_TXD_SAI3_TX_DATA0 0x00000016&lt;BR /&gt;MX8MM_IOMUXC_SAI3_TXFS_SAI3_TX_SYNC 0x00000016&lt;BR /&gt;&amp;gt;;&lt;BR /&gt;};&lt;BR /&gt;pinctrl_tlv32: tlv32grp {&lt;BR /&gt;fsl,pins = &amp;lt;&lt;BR /&gt;MX8MM_IOMUXC_SAI5_RXC_GPIO3_IO20 0x00000016&lt;BR /&gt;&amp;gt;;&lt;BR /&gt;};&lt;/P&gt;&lt;P&gt;I found out that the problem is with this part:&lt;/P&gt;&lt;P&gt;AVDD-supply = &amp;lt;&amp;amp;reg&amp;gt;;&lt;BR /&gt;IOVDD-supply = &amp;lt;&amp;amp;reg&amp;gt;;&lt;BR /&gt;DRVDD-supply = &amp;lt;&amp;amp;reg&amp;gt;;&lt;/P&gt;&lt;P&gt;I deleted it and device is probed, pull-down is disabled. I've got only error about dummy-regulator:&lt;/P&gt;&lt;P&gt;[ 13.248007] tlv320aic3x 2-0018: supply IOVDD not found, using dummy regulator&lt;BR /&gt;[ 13.259241] tlv320aic3x 2-0018: supply DVDD not found, using dummy regulator&lt;BR /&gt;[ 13.276491] tlv320aic3x 2-0018: supply AVDD not found, using dummy regulator&lt;BR /&gt;[ 13.283680] tlv320aic3x 2-0018: supply DRVDD not found, using dummy regulator&lt;BR /&gt;[ 13.297426] tlv320aic3x 2-0018: Invalid supply voltage(s) AVDD: -22, DVDD: -22&lt;/P&gt;&lt;P&gt;but the driver works now.&lt;/P&gt;&lt;P&gt;Now I have to work on sai3 part, because this one still not working.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 12 Dec 2022 10:33:48 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Disabling-default-gpio-pull-down-not-working-imx8mm/m-p/1568213#M198627</guid>
      <dc:creator>borysszefler</dc:creator>
      <dc:date>2022-12-12T10:33:48Z</dc:date>
    </item>
  </channel>
</rss>

