Ath79: Force usb host mode for ar9331

In commit 00ea16557d the way usb is initiated was changed. Instead of initiate both ehci-platform and ci_hdrc the bootstrap status register is checked and used to determine which platform to initiate.

Unfortunately this break my board since the gpio used to determine this is used for other purposes.

dev-usb.h only exposes one function:
void ath79_register_usb(void);
so there is not much to alter the way usb is initiated.

I tried to write to the bootstrap register but unfortunately this did not seem to work:

u32 t;
t = ath79_reset_rr(AR933X_RESET_REG_BOOTSTRAP);
pr_warn("ath79: Register before %X", t);
t |= AR933X_BOOTSTRAP_USB_MODE_HOST;
ath79_reset_wr(AR933X_RESET_REG_BOOTSTRAP, t);
pr_warn("ath79: Register after %X", ath79_reset_rr(AR933X_RESET_REG_BOOTSTRAP));

Gives the following output:

ath79: Register before 42202
ath79: Register after 42202

How can I solve this?

At this level of depth, I would suggest posting to the openwrt-devel mailing list as well

Thank you.

For anyone in the future coming across this here it is:
http://lists.infradead.org/pipermail/openwrt-devel/2019-November/019931.html

1 Like