дерево устройств регулятора vbus

кто-нибудь может объяснить настройки дерева устройств? Что они будут делать на процессоре i.MX6?

Спасибо!

vbus1_regulator: regulator@1 {
    compatible = "regulator-fixed";
    regulator-name = "vbus1_regulator";
    regulator-min-microvolt = <5000000>;
    regulator-max-microvolt = <5000000>;
    gpio = <&gpio3 22 GPIO_ACTIVE_HIGH>;
    enable-active-high;
};


&usbotg {
    vbus-supply = <&vbus1_regulator>;
    dr_mode = "host";
    status = "okay";
};

person chris8446    schedule 16.05.2018    source источник


Ответы (1)


Протокол USB определяет две роли — хост и клиент. С USB OTG (on-the-go) устройство может иметь как возможности хоста, так и клиента. Видеть:

http://www.usb.org/developers/onthego/ https://www.maximintegrated.com/en/app-notes/index.mvp/id/1822

Чтобы устройство работало как хост, оно должно обеспечить питание для подключенного к нему клиентского устройства, как того требует стандарт USB.

При этом узел &usbotg:

  1. Использование _vbus1_regulator_ в качестве источника питания USB.
  2. Заставьте порт USB OTG работать в качестве хоста, установив для свойства dr_mode значение host.
  3. Включение узла путем установки статуса хорошо.

Дополнительные сведения см. в документации по привязкам дерева устройств ядра Linux: https://www.kernel.org/doc/Documentation/devicetree/bindings/usb/fsl-usb.txt

И узел vbus1_regulator:

  1. Использование драйвера ядра, совместимого с фиксированным регулятором: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/драйверы/регулятор/fixed.c?h=v4.19-rc1#n196
  2. Установка имени регулятора на vbus1_regulator.
  3. Определение минимального и максимального напряжения до одинакового значения 5000000 микровольт, что равнозначно 5 вольтам. Оба одинаковы из-за природы стабилизатора с фиксированным напряжением - у вас есть одно фиксированное значение выходного напряжения.
  4. Использование контакта GPIO (заявленного в другом месте) для управления регулятором (включение/выключение).
  5. Определение того, что уровень GPIO должен быть высоким, чтобы активировать регулятор. Если это свойство опущено, то предполагается, что регулятор активен на низком логическом уровне.

Дополнительные сведения см. в документации по привязкам дерева устройств ядра Linux: https://www.kernel.org/doc/Documentation/devicetree/bindings/regulator/fixed-regulator.txt

person lgraba    schedule 27.08.2018