Jump to content

    
Sign in to follow this  
toweroff

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

Recommended Posts

Добрый день
Есть на плате 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
 

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

        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 тоже не вижу
 

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
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:~$

 

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

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.

Sign in to follow this