Дерево устройств регулятора vbus - PullRequest
0 голосов
/ 16 мая 2018

Может кто-нибудь объяснить настройки дерева устройства?Что они будут делать на процессоре 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";
};

1 Ответ

0 голосов
/ 27 августа 2018

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

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. Включение узла путем установки состояния на okay .

Дополнительные сведения см. В документации по привязкам дерева устройств ядра 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/drivers/regulator/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

...