Как заставить драйвер linux обнаруживать и использовать устройство после того, как ядро ​​linux уже загружено? - PullRequest
0 голосов
/ 06 июня 2019

Я использую устройство системного монитора по адресу 0x3f на шине i2c-0.Это устройство настраивается с помощью драйвера pmbus в дереве устройств.

Проблема в том, что это устройство 'Sysmon' не запитывается при загрузке ядра Linux.Поэтому, когда я делаю i2cdetect на шине 0, мы видим '-' в 0x3f, что ожидается.Теперь, когда я включаю Sysmon с помощью своего пользовательского интерфейса, устройство добавляется в linux, и мы видим «3f» при запуске i2cdetect.

Теперь я хочу, чтобы драйвер pmbus обнаружил это устройство и изменил его на «UU», чтобы я мог видеть все атрибуты pmbus в sysfs.

Могу ли я сделать это из пространства пользователя и как?Если нет, можете ли вы предложить, как я могу решить это.

Если я принудительно включу устройство с помощью аппаратного обеспечения, а затем загрузлю Linux, драйвер pmbus обнаружит это устройство и зарезервирует его.Но я не могу принудительно включать устройство.

Дерево устройств:

   i2c@ff020000 

   {

        compatible = "cdns,i2c-r1p14", "cdns,i2c-r1p10";
        status = "okay";
        interrupt-parent = <0x4>;
        interrupts = <0x0 0x11 0x4>;
        reg = <0x0 0xff020000 0x0 0x1000>;
        #address-cells = <0x1>;
        #size-cells = <0x0>;
        power-domains = <0x15>;
        clocks = <0x3 0x3d>;
        clock-frequency = <0x186a0>;
        pinctrl-names = "default", "gpio";
        pinctrl-0 = <0x16>;
        pinctrl-1 = <0x17>;
        scl-gpios = <0x18 0x4a 0x0>;
        sda-gpios = <0x18 0x4b 0x0>;

        fpga1sysmon0@3f {
            compatible = "general,pmbus";
            reg = <0x3f>;
        };

PS: я новичок, и это мой первый вопрос о переполнении стека.Пожалуйста, потерпите меня за любые ошибки, которые я сделал.

...