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