Jump to content
    

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

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

В дереве так:

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

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

        [email protected] {
                compatible = "microchip,usb2422";
                reg = <0x2c>;
                reset-gpios = <&gpio2 24 GPIO_ACTIVE_LOW>;
        };

};

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

Share this post


Link to post
Share on other sites

35 minutes ago, toweroff said:

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

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

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

mount -t debugfs - /sys/kernel/debug

cat /sys/kernel/debug/gpio

 

Share this post


Link to post
Share on other sites

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

&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>;

        [email protected] {
                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 тоже не вижу
 

Share this post


Link to post
Share on other sites

25 minutes ago, toweroff said:

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

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

Share this post


Link to post
Share on other sites

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

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

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

Share this post


Link to post
Share on other sites

7 minutes ago, toweroff said:

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

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

Edited by BaN

Share this post


Link to post
Share on other sites

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

dmesg | grep usb251xb

Share this post


Link to post
Share on other sites

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

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

 

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

 

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

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

dmesg | grep usb251xb

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

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

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

[email protected]:~$ sudo echo 88 > /sys/class/gpio/export
[email protected]:~$ sudo rmmod usb251xb
[email protected]:~$ sudo echo "out" > /sys/class/gpio/gpio88/direction
[email protected]:~$ sudo echo "1" > /sys/class/gpio/gpio88/value
[email protected]:~$ sudo modprobe usb251xb
[email protected]:~$ lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
[email protected]:~$ 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: -- -- -- -- -- -- -- --
[email protected]:~$

 

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

Share this post


Link to post
Share on other sites

17 minutes ago, toweroff said:

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

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

Share this post


Link to post
Share on other sites

37 minutes ago, toweroff said:

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

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

Share this post


Link to post
Share on other sites

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

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

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

Share this post


Link to post
Share on other sites

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

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

1832472462_.thumb.png.159a954071312ceacc1fc63527a51523.png

Share this post


Link to post
Share on other sites

1 hour ago, toweroff said:

gpio-88 (LCD_PCLK )

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

 

Screenshot from 2021-10-22 21-01-38.png

Share this post


Link to post
Share on other sites

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

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

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...