This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM625: davinic_gpio driver probe very late, cause GPIO resquest failed, EPROBE_DEFER(517)

Part Number: AM625

Hi Team, 

Customer want to use some gpio to control peripherals to reset. But because the davinci_gpio driver probe is late, the gpio request fails.

davinci_gpio used postcore_initcall, but it is probed later than the gpio_control driver using device_initcall.

How to slove this problem?

Here is the log:

Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034]
...
[    0.690607] Asymmetric key parser 'x509' registered
[    0.695629] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 243)
[    0.703195] io scheduler mq-deadline registered
[    0.707827] io scheduler kyber registered
[    0.714094] pinctrl-single 4084000.pinctrl: 34 pins, size 136
[    0.720401] pinctrl-single f4000.pinctrl: 171 pins, size 684
[    0.734000] Serial: 8250/16550 driver, 10 ports, IRQ sharing enabled
[    0.743994] gpio-control gpio-control: gpio_control_probe --- 59 --------xiagl--------------------------
[    0.753863] gpio-control gpio-control: gpio_control_probe --- 119 --------xiagl-----------1-----(-517)----------
[    0.764362] gpio-control gpio-control: no gpio gpio_usbhub_rest pin available
[    0.771667] gpio-control gpio-control: gpio_control_probe --- 126 --------xiagl-----------1-----(-517)----------
[    0.782163] gpio-control gpio-control: no gpio gpio_usbvbus_en pin available
[    0.789380] gpio-control gpio-control: gpio_control_probe --- 133 --------xiagl-----------1-----(-517)----------
[    0.799875] gpio-control gpio-control: no gpio gpio_usb3vbus_en pin available
[    0.807181] gpio-control gpio-control: gpio_control_probe --- 140 --------xiagl-----------1-----(-517)----------
[    0.817684] gpio-control gpio-control: no gpio gpio_audio_en pin available
[    0.824724] gpio-control gpio-control: gpio_control_probe --- 147 --------xiagl-----------1-----(-517)----------
[    0.835218] gpio-control gpio-control: no gpio gpio_hdmi_en pin available
[    0.842164] --------------gpio_control_probe------probe ok!----------
...
[    1.202336] ti-sci-intr 4210000.interrupt-controller: Interrupt Router 5 domain created
[    1.210669] ti-sci-intr bus@f0000:interrupt-controller@a00000: Interrupt Router 3 domain created
[    1.219914] ti-sci-inta 48000000.interrupt-controller: Interrupt Aggregator domain 28 created
[    1.228820] davinci_gpio_probe --- 219 ------------xiagl-----------------ngpio 24-----------------
[    1.238363] davinci_gpio_probe --- 265 ------------xiagl-----------1------ngpio 24-----------------
[    1.247708] davinci_gpio_probe --- 269 ------------xiagl-----------2------ngpio 24-----------------
[    1.257260] davinci_gpio_probe --- 273 ------------xiagl----------3-------ngpio 24-----------------
[    1.267187] davinci_gpio_probe --- 278 ------------xiagl----------4-------ngpio 24-----------------
[    1.276944] davinci_gpio_probe --- 219 ------------xiagl-----------------ngpio 87-----------------
[    1.286890] davinci_gpio_probe --- 265 ------------xiagl-----------1------ngpio 87-----------------
[    1.296239] davinci_gpio_probe --- 269 ------------xiagl-----------2------ngpio 87-----------------
[    1.305826] davinci_gpio_probe --- 273 ------------xiagl----------3-------ngpio 87-----------------
[    1.316822] davinci_gpio_probe --- 278 ------------xiagl----------4-------ngpio 87-----------------
[    1.326673] davinci_gpio_probe --- 219 ------------xiagl-----------------ngpio 88-----------------
[    1.336617] davinci_gpio_probe --- 265 ------------xiagl-----------1------ngpio 88-----------------
[    1.345970] davinci_gpio_probe --- 269 ------------xiagl-----------2------ngpio 88-----------------
[    1.355562] davinci_gpio_probe --- 273 ------------xiagl----------3-------ngpio 88-----------------
[    1.366615] davinci_gpio_probe --- 278 ------------xiagl----------4-------ngpio 88-----------------
[    1.376563] ti-udma 485c0100.dma-controller: Number of rings: 82
[    1.384686] ti-udma 485c0100.dma-controller: Channels: 48 (bchan: 18, tchan: 12, rchan: 18)
[    1.395728] ti-udma 485c0000.dma-controller: Number of rings: 150
[    1.405645] ti-udma 485c0000.dma-controller: Channels: 35 (tchan: 20, rchan: 15)
...
[    1.508173] davinci_mdio 8000f00.mdio: Configuring MDIO in manual mode
[    1.514826] davinci_mdio_probe --- 631 ----------------xiagl--------1----------------
[    1.522752] davinci_mdio_probe --- 638 ----------------xiagl--------2--------reset_gpio 439 ---------
[    1.532042] davinci_mdio_probe --- 640 ----------------xiagl--------3--------reset_gpio 439 ---------
[    1.541340] davinci_mdio_probe --- 646 ----------------xiagl--------5--------reset_gpio 439 ---------
[    1.597602] davinci_mdio_probe --- 658 ----------------xiagl--------7-----------------
[    1.645607] davinci_mdio 8000f00.mdio: davinci mdio revision 9.7, bus freq 1000000
[    1.667168] mdio_bus 8000f00.mdio: MDIO device at address 0 is missing.
[    1.673774] davinci_mdio_probe --- 681 ----------------xiagl--------8-----------------
[    1.681767] davinci_mdio_probe --- 684 ----------------xiagl--------8-------addr 00----------
[    1.690366] davinci_mdio_probe --- 684 ----------------xiagl--------8-------addr 01----------
[    1.698962] davinci_mdio_probe --- 684 ----------------xiagl--------8-------addr 02----------
[    1.707558] davinci_mdio_probe --- 684 ----------------xiagl--------8-------addr 03----------
[    1.716154] davinci_mdio_probe --- 684 ----------------xiagl--------8-------addr 04----------
[    1.724749] davinci_mdio_probe --- 684 ----------------xiagl--------8-------addr 05----------
[    1.733346] davinci_mdio_probe --- 684 ----------------xiagl--------8-------addr 06----------
[    1.741942] davinci_mdio_probe --- 684 ----------------xiagl--------8-------addr 07----------
[    1.750537] davinci_mdio_probe --- 684 ----------------xiagl--------8-------addr 08----------
[    1.759134] davinci_mdio_probe --- 684 ----------------xiagl--------8-------addr 09----------
[    1.767732] davinci_mdio_probe --- 684 ----------------xiagl--------8-------addr 0a----------
[    1.776332] davinci_mdio_probe --- 684 ----------------xiagl--------8-------addr 0b----------
[    1.784932] davinci_mdio_probe --- 684 ----------------xiagl--------8-------addr 0c----------
[    1.793530] davinci_mdio_probe --- 684 ----------------xiagl--------8-------addr 0d----------
[    1.802128] davinci_mdio_probe --- 684 ----------------xiagl--------8-------addr 0e----------
[    1.810724] davinci_mdio_probe --- 684 ----------------xiagl--------8-------addr 0f----------
[    1.819320] davinci_mdio_probe --- 684 ----------------xiagl--------8-------addr 10----------
[    1.827915] davinci_mdio_probe --- 684 ----------------xiagl--------8-------addr 11----------
[    1.836512] davinci_mdio_probe --- 684 ----------------xiagl--------8-------addr 12----------
[    1.845108] davinci_mdio_probe --- 684 ----------------xiagl--------8-------addr 13----------
[    1.853704] davinci_mdio_probe --- 684 ----------------xiagl--------8-------addr 14----------
[    1.862299] davinci_mdio_probe --- 684 ----------------xiagl--------8-------addr 15----------
[    1.870895] davinci_mdio_probe --- 684 ----------------xiagl--------8-------addr 16----------
[    1.879491] davinci_mdio_probe --- 684 ----------------xiagl--------8-------addr 17----------
[    1.888088] davinci_mdio_probe --- 684 ----------------xiagl--------8-------addr 18----------
[    1.896686] davinci_mdio_probe --- 684 ----------------xiagl--------8-------addr 19----------
[    1.905286] davinci_mdio_probe --- 684 ----------------xiagl--------8-------addr 1a----------
[    1.913885] davinci_mdio_probe --- 684 ----------------xiagl--------8-------addr 1b----------
[    1.922483] davinci_mdio_probe --- 684 ----------------xiagl--------8-------addr 1c----------
[    1.931080] davinci_mdio_probe --- 684 ----------------xiagl--------8-------addr 1d----------
[    1.939676] davinci_mdio_probe --- 684 ----------------xiagl--------8-------addr 1e----------
[    1.948273] davinci_mdio_probe --- 684 ----------------xiagl--------8-------addr 1f----------
[    1.956868] davinci_mdio_probe --- 692 ----------------xiagl--------9-----------------
[    1.965018] am65-cpsw-nuss 8000000.ethernet: initializing am65 cpsw nuss version 0x6BA01103, cpsw version 0x6BA81103 Ports: 3 quirks:00000006
[    1.977937] am65-cpsw-nuss 8000000.ethernet: /bus@f0000/ethernet@8000000/ethernet-ports/port@2 read phy-mode err -22
[    1.989027] am65-cpsw-nuss: probe of 8000000.ethernet failed with error -22
[    1.997926] rtc-ti-k3 2b1f0000.rtc: registered as rtc1
[    2.106908] davinci-mcasp 2b10000.mcasp: IRQ common not found
[    2.107437] mmc0: CQHCI version 5.10
[    2.116310] vdd_mmc1: supplied by vcc_3v3_sys
[    2.121511] sii902x 1-003b: supply iovcc not found, using dummy regulator
[    2.128420] sii902x 1-003b: supply cvcc12 not found, using dummy regulator
[    2.138442] i2c i2c-1: Added multiplexed i2c bus 3
[    2.145267] [drm] Initialized tidss 1.0.0 20180215 for 30200000.dss on minor 0
[    2.153021] tidss 30200000.dss: [drm] Cannot find any crtc or sizes
[    2.157466] mmc0: SDHCI controller on fa10000.mmc [fa10000.mmc] using ADMA 64-bit
[    2.168193] debugfs: Directory 'pd:53' with parent 'pm_genpd' already present!
[    2.169084] mmc1: CQHCI version 5.10
[    2.175470] debugfs: Directory 'pd:52' with parent 'pm_genpd' already present!
[    2.186279] debugfs: Directory 'pd:51' with parent 'pm_genpd' already present!
[    2.193846] debugfs: Directory 'pd:182' with parent 'pm_genpd' already present!
[    2.213149] ALSA device list:
[    2.216131]   No soundcards found.
[    2.220330] mmc1: SDHCI controller on fa00000.mmc [fa00000.mmc] using ADMA 64-bit
[    2.228636] Waiting for root device PARTUUID=c879998c-02...
[    2.246583] mmc0: Command Queue Engine enabled
[    2.251063] mmc0: new HS200 MMC card at address 0001
[    2.256697] mmcblk0: mmc0:0001 8GTF4R 7.28 GiB 
[    2.261410] mmcblk0boot0: mmc0:0001 8GTF4R partition 1 4.00 MiB
[    2.267507] mmcblk0boot1: mmc0:0001 8GTF4R partition 2 4.00 MiB
[    2.273618] mmcblk0rpmb: mmc0:0001 8GTF4R partition 3 512 KiB, chardev (237:0)
[    2.287907] mmc1: new high speed SDHC card at address 1234
[    2.294092] mmcblk1: mmc1:1234 SA08G 7.21 GiB 
[    2.300469]  mmcblk1: p1 p2
[    8.088239] EXT4-fs (mmcblk1p2): recovery complete
[    8.100661] EXT4-fs (mmcblk1p2): mounted filesystem with ordered data mode. Opts: (null)
[    8.108818] VFS: Mounted root (ext4 filesystem) on device 179:98.
[    8.116590] devtmpfs: mounted
[    8.120891] Freeing unused kernel memory: 1920K
[    8.125522] Run /sbin/init as init process
[    8.581463] NET: Registered protocol family 10
[    8.586941] Segment Routing with IPv6
[    8.634274] systemd[1]: systemd 244.5+ running in system mode. (+PAM -AUDIT -SELINUX +IMA -APPARMOR -SMACK +SYSVINIT +UTMP -LIBCRYPTSETUP -GCRYPT -GNUTLS +ACL +XZ -LZ4 -SECCOMP +BLKID -ELFUTILS +KMOD -IDN2 -IDN -PCRE2 default-hierarchy=hybrid)
[    8.656273] systemd[1]: Detected architecture arm64.

Best Regards,

Zane