On 2/26/22 02:51, Tim Harvey wrote:
Greetings,

I've got an octeontx board which uses driver model
(CONFIG_DM/CONFIG_DM_I2C) but I find that the 'i2c_octeon' driver does
not probe automatically on boot until I do something like an 'i2c dev
0 && i2c probe'.

What would cause the i2c_octeon driver to not automatically probe?

It is the general design of U-Boot's driver model to use late probing.
This reduces the boot time.

Cf.
https://u-boot.readthedocs.io/en/latest/develop/driver-model/design.html#driver-lifecycle

Best regards

Heinrich


Here is a dm tree of the board:
Marvell> dm tree
  Class     Index  Probed  Driver                Name
-----------------------------------------------------------
  root          0  [ + ]   root_driver           root_driver
  rsa_mod_ex    0  [   ]   mod_exp_sw            |-- mod_exp_sw
  firmware      0  [   ]   psci                  |-- psci
  regulator     0  [ + ]   regulator_fixed       |-- mmc_supply_3v3
  simple_bus    0  [ + ]   simple_bus            `-- soc@0
  clk           0  [ + ]   fixed_clock               |-- refclkuaa
  clk           1  [ + ]   fixed_clock               |-- sclk
  clk           2  [   ]   fixed_clock               |-- can20m
  serial        0  [ + ]   serial_pl01x              |-- serial@87e028000000
  serial        1  [   ]   serial_pl01x              |-- serial@87e029000000
  serial        2  [   ]   serial_pl01x              |-- serial@87e02a000000
  serial        3  [   ]   serial_pl01x              |-- serial@87e02b000000
  watchdog      0  [ + ]   sbsa_gwdt                 |-- watch-dog@8440000a0000
  pci           0  [ + ]   pci_octeontx              `-- pci@848000000000
  pci           1  [ + ]   pci_bridge_drv                |-- mrml-bridge0@1,0
  misc          0  [ + ]   octeontx_smi                  |   |-- mdio-nexus@1,3
  misc          1  [ + ]   octeontx_hsmmc_host           |   |-- mmc@1,4
  mmc           0  [ + ]   octeontx_hsmmc_slot           |   |   `--
octeontx-mmc0
  blk           0  [ + ]   mmc_blk                       |   |
`-- octeontx-mmc0.blk
  i2c           0  [   ]   i2c_octeon                    |   |-- i2c@9,0
  misc          2  [   ]   gsc                           |   |   `-- gsc@20
  i2c           1  [   ]   i2c_octeon                    |   |-- i2c@9,1
  pci_generi    5  [   ]   pci_generic_drv               |   |-- pci_1:0.0
  pci_generi    6  [   ]   pci_generic_drv               |   |-- pci_1:0.1
  pci_generi    7  [   ]   pci_generic_drv               |   |-- pci_1:1.7
  pci_generi    8  [   ]   pci_generic_drv               |   |-- pci_1:2.0
  pci_generi    9  [   ]   pci_generic_drv               |   |-- pci_1:6.0
  pci_generi   10  [   ]   pci_generic_drv               |   |-- pci_1:7.0
  pci_generi   11  [   ]   pci_generic_drv               |   |-- pci_1:7.4
  pci_generi   12  [   ]   pci_generic_drv               |   |-- pci_1:a.0
  pci_generi   13  [   ]   pci_generic_drv               |   |-- pci_1:c.0
  pci_generi   14  [   ]   pci_generic_drv               |   |-- pci_1:c.1
  pci_generi   15  [   ]   pci_generic_drv               |   |-- pci_1:d.0
  misc          3  [ + ]   octeontx_bgx                  |   |-- octeontx_bgx
  misc          4  [ + ]   octeontx_bgx                  |   `-- octeontx_bgx
  gpio          0  [ + ]   octeon_gpio                   |-- gpio0@6,0
  pci_generi    0  [   ]   pci_generic_drv               |-- pci_0:7.0
  pci_generi    1  [   ]   pci_generic_drv               |-- pci_0:8.0
  pci           2  [ + ]   pci_bridge_drv                |-- pci_0:9.0
  pci_generi   16  [   ]   pci_generic_drv               |   `-- pci_2:0.0
  pci           3  [ + ]   pci_bridge_drv                |-- pci_0:a.0
  pci_generi   17  [   ]   pci_generic_drv               |   `-- pci_3:0.0
  pci_generi    2  [   ]   pci_generic_drv               |-- pci_0:b.0
  pci           4  [ + ]   pci_bridge_drv                |-- pci_0:c.0
  pci_generi   18  [   ]   pci_generic_drv               |   `-- pci_4:0.0
  pci_generi    3  [   ]   pci_generic_drv               |-- pci_0:d.0
  pci_generi    4  [   ]   pci_generic_drv               |-- pci_0:e.0
  pci           5  [ + ]   pci_bridge_drv                |-- pci_0:f.0
  misc          5  [ + ]   octeontx_nic                  |   |-- octeontx_nic
  ethernet      0  [ + ]   vnic                          |   |-- vnic0
  ethernet      1  [ + ]   vnic                          |   `-- vnic1
  usb           0  [   ]   xhci_pci                      |-- xhci_pci
  usb           1  [   ]   xhci_pci                      `-- xhci_pci

Best regards,

Tim

Reply via email to