Regulator updates in 3.5

There’s been a bit of an increase in the amount of core work in version 3.5, regmap has enabled a lot of code to be factored out of drivers and into the core so drivers only need to provide data. This makes things a lot simpler to implement and review, it’s hoped that it will […]

regulator updates in 3.4

This has been a fairly quiet release from a regulator point of view, the only real framework features added were devm support and a convenience helper for setting up fixed voltage regulators. Much more coming next time, though! The most noticeable thing in the changelog is that Axel Lin continued his relentless and generally awesome […]

regmap updates in 3.4

Things are really quieting down with the regmap API, while we’re still seeing a trickle of new features coming in they’re getting much smaller than they were. Support for padding between the register and the value when interacting with the device. This is required by some devices with high speed control interfaces in order to […]

ASoC updates in 3.4

Linux version 3.4 has been released. This was a very active release for ASoC in framework terms, in addition to the usual bug fixes and so on there were a large number of framework enhancements though most are fairly small or are laying the groundwork for more user visible features like dynamic PCM. Support for […]

regulator updates in 3.3

Linux 3.3 was released today. This was the biggest release for the regulator API for quite some time thanks to the contribution of device tree bindings for the API by┬áRajendra Nayak, the first substantial framework update for a long time, but otherwise was fairly quiet: OpenFirmware bindings for the core and for the fixed regulator […]

regmap updates in 3.3

After the rush of new features in version 3.2 this has been a fairly quiet cycle for the regmap API, the main change being the wider usage by drivers. In terms of development of the subsystem itself this release sees: Introduction of a generic interrupt controller for regmap based devices, this is already used by […]

regmap updates in 3.2

Version 3.1 of the Linux kernel was the first release to include regmap support and only included a bare minimum of features in order to ease review so version 3.2 has been a pretty big one for regmap development with some pretty major features being built on top of the core code. Support for register […]

What’s wrong with switch statements?

Recently I’ve been noticing a surprising pattern in code I’m reviewing for the kernel. A lot of people seem to have taken to writing code that I’d expect to look like this: switch (thing) { case VALUE: /* Stuff */ break; case BAR: /* Nonsense */ break; default: /* Whatever */ break; } with if […]

regmap – a register map abstraction for the Linux kernel

A good proportion of I2C and SPI device drivers in the kernel contain some very similar code for accessing the register maps of hardware connected to those buses – most hardware designers have solved the problem of providing very similar ways. Linux 3.1 introduces a new kernel API called regmap which factors out this code […]

ASoC updates in 3.0

Linux 3.0 was released today – another fairly quiet release for the ASoC core, plus the usual collection of new drivers: Support DAPM controls that affect multiple paths – mainly used for single register bits that affect the routing for a stereo pair of audio streams. Simplifications in the cache infrastructure. New machine drivers for […]