Looking for Serial-controlled PWM generator
My end goal is to control 4 H-bridge motor controllers from a Raspberry Pi


Sounds like you actually want an H-Bridge that is controllable via serial line, not an H-Bridge driver that is controllable + H-Bridge. 

TI has such devices, e.g. DRV8830, but that's more designed for smaller motors (&lt;= 1A). But the motor driver category has loads of things!

If this is for a stepper motor: there's dedicated stepper motor drivers, that actually take care of generating the offset-phased PWMs for you from a single control! That makes things easier, and cheaper. They also exist with built-in H-Bridges, if you want to save on complexity, space or cost (and your motor isn't too beefy).

If you really need to control your own H-Bridge drivers: I'm pretty certain that the easiest, and most cost-efficient, way to do that is getting a microcontroller to do that. Since controlling multiple whatever-drivers as a slave to a main controller is an extremely common job, e.g. in automotive applications, there's loads and loads of microcontrollers that have more than plenty PWM units. In fact, there's dedicated product lines that are advertised for exactly that, motor control. (but to be honest, every mid-range microcontroller, eg. STM32F100 and up, would have sufficient PWM units.)

The NXP Kinetis-V series comes to mind. Those are relatively mighty processors, but they come with all the bells and whistles you'd need for motor control, and things like motor control designer software (which I've never tried).

Lower-cost controllers like the STM32F10? can be had shy of 2€ and have 7 timers, of which TIM1 alone would suffice to generate 4 different PWMs from the same clock source, including automatic dead times (super important for H-Bridge control).

That's still a relatively mighty controller – 32 bit core, lots of serial peripherals to choose from (3× UART, 2× SPI, 2× I²C, and you can still bitbang or write your own interrupt-driven synchronous serial), and it comes with a widely supported architecture; there's multiple RTOSes that you can choose from, so that you don't have to write your own task management (getting commands from the serial peripheral, and translating that to PWM settings).