Перейти к содержанию
    

USB хаб на плате -- сброс

Добрый день
Есть на плате USB2422, пин сброса которого подключен к пину SoC (AM3352), I2C на I2C1

В дереве так:

&i2c1 {
        pinctrl-names = "default";
        pinctrl-0 = <&i2c1_pins>;

        status = "okay";
        clock-frequency = <100000>;

        usb2422@2c {
                compatible = "microchip,usb2422";
                reg = <0x2c>;
                reset-gpios = <&gpio2 24 GPIO_ACTIVE_LOW>;
        };

};

Нужно как-то этот пин ещё описывать (GPIO2.24)?
У меня там постоянно ноль и, соответственно, хаб не определяется ни по I2C, но по USB
 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

35 minutes ago, toweroff said:

Нужно как-то этот пин ещё описывать (GPIO2.24)?

Зависит от реализации, возможно, нужно pinctrl добавить.

А что система думает по поводу этого пина?

mount -t debugfs - /sys/kernel/debug

cat /sys/kernel/debug/gpio

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В общем, что-то я совсем ничего не понимаю... Вот мои изыскания:

&am33xx_pinmux {
        pinctrl-names = "default";

  		user_leds_s0: user_leds_s0 {
                pinctrl-single,pins = <
                        AM33XX_IOPAD(0x994, PIN_OUTPUT | MUX_MODE7) /* (B13) mcasp0_fsx.gpio3[15] */
                        AM33XX_IOPAD(0x9a4, PIN_OUTPUT | MUX_MODE7) /* (C13) mcasp0_fsr.gpio3[19] */
                >;
        };

        i2c1_pins: i2c1_pins {
                pinctrl-single,pins = <
                        AM33XX_IOPAD(0x910, PIN_INPUT | MUX_MODE3) /* (J15) gmii1_rxer.I2C1_SCL */
                        AM33XX_IOPAD(0x90c, PIN_INPUT | MUX_MODE3) /* (H17) gmii1_crs.I2C1_SDA */
                >;
        };

        usbhub_pins: usbhub_pins {
                pinctrl-single,pins = <
                        AM33XX_IOPAD(0x8e8, PIN_OUTPUT | MUX_MODE7) /* (V5) PIN_LCD_PCLK - USB Hub reset */
                >;
        };
};

&usb {
        status = "okay";
};

&usb_ctrl_mod {
        status = "okay";
};

&usb1_phy {
        status = "okay";
};

&usb1 {
        status = "okay";
        dr_mode = "host";
};

&i2c1 {
        pinctrl-names = "default";
        pinctrl-0 = <&i2c1_pins>;

        status = "okay";
        clock-frequency = <100000>;

        usb2422@2c {
                pinctrl-names = "default";
                pinctrl-0 = <&usbhub_pins>;
                compatible = "microchip,usb2422";
                reg = <0x2c>;
                reset-gpios = <&gpio2 24 GPIO_ACTIVE_LOW>;
                status = "okay";
        };

};


вот что показывает дебаг:
 

gpiochip2: GPIOs 64-95, parent: platform/481ac000.gpio, gpio-64-95:
 gpio-64  (GPMC_CSN3           )
 gpio-65  (GPMC_CLK            )
 gpio-66  (GPMC_ADVN_ALE       )
 gpio-67  (GPMC_OEN_REN        )
 gpio-68  (GPMC_WEN            )
 gpio-69  (GPMC_BE0N_CLE       )
 gpio-70  (LCD_DATA0           )
 gpio-71  (LCD_DATA1           )
 gpio-72  (LCD_DATA2           )
 gpio-73  (LCD_DATA3           )
 gpio-74  (LCD_DATA4           )
 gpio-75  (LCD_DATA5           )
 gpio-76  (LCD_DATA6           )
 gpio-77  (LCD_DATA7           )
 gpio-78  (LCD_DATA8           )
 gpio-79  (LCD_DATA9           )
 gpio-80  (LCD_DATA10          )
 gpio-81  (LCD_DATA11          )
 gpio-82  (GMII1_RXD3          )
 gpio-83  (GMII1_RXD2          )
 gpio-84  (GMII1_RXD1          )
 gpio-85  (GMII1_RXD0          )
 gpio-86  (LCD_VSYNC           )
 gpio-87  (LCD_HSYNC           )
 gpio-88  (LCD_PCLK            )
 gpio-89  (LCD_AC_BIAS_EN      )
 gpio-90  (MMC0_DAT3           )
 gpio-91  (MMC0_DAT2           )
 gpio-92  (MMC0_DAT1           )
 gpio-93  (MMC0_DAT0           )
 gpio-94  (MMC0_CLK            )
 gpio-95  (MMC0_CMD            )

к примеру, для uSD пин контроля карты описан вот так:
 

&mmc1 {
        status = "okay";
        bus-width = <0x4>;
        pinctrl-names = "default";
        pinctrl-0 = <&mmc1_pins>;
        cd-gpios = <&gpio3 18 GPIO_ACTIVE_LOW>;
};

и вполне себе отображается:
 

gpiochip3: GPIOs 96-127, parent: platform/481ae000.gpio, gpio-96-127:
 gpio-96  (GMII1_COL           )
 gpio-97  (GMII1_CRS           )
 gpio-98  (GMII1_RXER          )
 gpio-99  (GMII1_TXEN          )
 gpio-100 (GMII1_RXDV          )
 gpio-101 (I2C0_SDA            )
 gpio-102 (I2C0_SCL            )
 gpio-103 (EMU0                )
 gpio-104 (EMU1                )
 gpio-105 (GMII1_TXCLK         )
 gpio-106 (GMII1_RXCLK         )
 gpio-107 (NC                  )
 gpio-108 (NC                  )
 gpio-109 (USB1_DRVVBUS        )
 gpio-110 (MCASP0_ACLKX        )
 gpio-111 (MCASP0_FSX          |UM40v2:green:heartbe) out lo
 gpio-112 (MCASP0_AXR0         )
 gpio-113 (MCASP0_AHCLKR       )
 gpio-114 (MCASP0_ACLKR        |cd                  ) in  lo IRQ ACTIVE LOW
 gpio-115 (MCASP0_FSR          |UM40v2:green:mmc0   ) out lo
 gpio-116 (MCASP0_AXR1         )
 gpio-117 (MCASP0_AHCLKX       )
 gpio-118 (NC                  )
 gpio-119 (NC                  )
 gpio-120 (NC                  )
 gpio-121 (NC                  )
 gpio-122 (NC                  )
 gpio-123 (NC                  )
 gpio-124 (NC                  )
 gpio-125 (NC                  )
 gpio-126 (NC                  )
 gpio-127 (NC                  )

 

Дальше интереснее... Если я пин сброса экспортирую, записываю туда 0, 1 - все нормально, вижу 2мВ и 3.31в
При этом хаб на шине USB не вижу... На I2C тоже не вижу
 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

25 minutes ago, toweroff said:

При этом хаб на шине USB не вижу... На I2C тоже не вижу

Тогда дело где-то в железе.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

12 минут назад, aaarrr сказал:

Тогда дело где-то в железе.

Если перемычками отключить от шины I2C, настроить на standalone, прекрасно его вижу через lsusb
пока вопрос в том, что даже сброс не поднимается вверх, а остаётся в нуле; не дёргает драйвер пином, хоть тресни

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

7 minutes ago, toweroff said:

Если перемычками отключить от шины I2C, настроить на standalone, прекрасно его вижу через lsusb
пока вопрос в том, что даже сброс не поднимается вверх, а остаётся в нуле; не дёргает драйвер пином, хоть тресни

Сейчас уже не помню точно, так что может быть ошибочная информация. Но, вроде бы, когда я пытался также на BBB назначить пин на свою функцию, то возникал конфликт из-за того, что пин уже был назначен для другой функции. Например, пин настраивался на HDMI, а когда доходило дело до моего назначения этого пина в device tree, то возникал конфликт и пин оставался назначен как HDMI.

Изменено пользователем BaN

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 минуты назад, BaN сказал:

Сейчас уже не помню точно, так что может быть ошибочная информация. Но, вроде бы, когда я пытался также на BBB назначить пин на свою функцию, то возникал конфликт из-за того, что пин уже был назначен для другой функции. Например, пин настраивался на HDMI, а когда доходило дело до моего назначения этого пина в device tree, то возникал конфликт и пин оставался назначен как HDMI.

 

так я вычистил уже всё. В моём dtsi только то, что мне нужно
 

 

9 минут назад, aaarrr сказал:

Посмотрите, были ли сообщения от драйвера при загрузке:

dmesg | grep usb251xb

нет( руками драйвер грузится, но воз и ныне там. Пробовал поднять сброс в "1", загрузить драйвер -- то же самое

да, чтобы не было недопонимания... на той же шине I2C висит EEPROM, она нормально светится на 0x50

Как-то так это выглядит:
 

debian@beaglebone:~$ sudo echo 88 > /sys/class/gpio/export
debian@beaglebone:~$ sudo rmmod usb251xb
debian@beaglebone:~$ sudo echo "out" > /sys/class/gpio/gpio88/direction
debian@beaglebone:~$ sudo echo "1" > /sys/class/gpio/gpio88/value
debian@beaglebone:~$ sudo modprobe usb251xb
debian@beaglebone:~$ lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
debian@beaglebone:~$ sudo i2cdetect -y -r 1
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: 50 -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
debian@beaglebone:~$

 

может, систему вообще голую накатить? я какую-то от чёрного биглебона взял, жирную

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

17 minutes ago, toweroff said:

так я вычистил уже всё. В моём dtsi только то, что мне нужно

Вы отключили HDMI в capemgr?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

37 minutes ago, toweroff said:

Как-то так это выглядит

Не должно быть так. Может, банально SDA/SCL перепутаны?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 минуту назад, aaarrr сказал:

Не должно быть так. Может, банально SDA/SCL перепутаны?

в смысле? 24C32 видит же

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

8 минут назад, aaarrr сказал:

Ну, 24c32 подключена правильно, а на USB2422 пины попутаны, например.

1832472462_.thumb.png.159a954071312ceacc1fc63527a51523.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

3 минуты назад, BaN сказал:

Отключите HDMI в capemgr. GPIO2.24 у вас назначен на функцию HDMI.

да нет у меня hdmi в дереве давно, вычистил от биглевых всё

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...