Question: Is USB a reasonable choice for a local bus?

what are pros and cons?

what reliability concerns are there?

**Bus spec** device count ~4; peripheral devices are permanently connected to same PCB as host (soldered or via headers).

Some device are puny, e.g. serial port or temperature sensor, some are complex, e.g. an LTE modem or ethernet or wifi. Peripherals are such that are available as standalone USB devices or same chips are used in such devices. Linux is supposed to have all the drivers already.

Ideally I'd use only one bus (with hubs if necessary) for simplicity and eventually modifications without some components and with other low-speed components.

**System spec** ARM, Linux, DC powered, roughly equivalent to an Android tablet.

Answer: 
What you are looking at is a problem I like to call *bus hierarchy*.

You have high speed devices that need a fast low-latency path to the CPU (like the LTE modem) and slow devices like the temperature sensor. Connecting a full fledged LTE modem over I2C will seriously bottleneck the system. And connecting a temperature sensor on USB is a serious overkill. You need to prioritize.

What devices are to be accessed most often? Which ones need to respond quickly? And which don't need that much bandwidth?

Feel free to edit your question.

---

**Edit:**

USB may not be such an overkill after all. Only in the latest versions of it (2.0, 3.0) it has gotten the notion of being targeted to fast peripherals only. Before that, it was simply a *Universal Serial Bus*.

This doesn't change anything on the fact that it's implementation cost is very often too high.
SPI 

Pros

* good for 50Mhz
* can communicate with multiple slaves
* simple protocol
* Full duplex
Cons
* Not a standard interface

I2C

Pros

* many slow chips uses I2C
* broadcast protocol where multiple slaves can reside on the bus

Cons

* slow speed
* more complicated than spi

USB

Pros

* standard interface
* probably driver ready and tested

Cons

* very complicated to debug
* with hub, the peripherals will share bandwidth

Other interfaces include SDIO, UART etc

Again as already mentioned, you will have to define the bus hierarchy with your bandwidth requirements. Probably the LTE modem would require a direct memory interface or a PCI interface. 

Also there are phy translators like FTD232 (<http://www.ftdichip.com/FTProducts.htm>) which can do USB-Spi, usb-uart etc and is widely used