Linux驱动适配I2C/SPI例子

栗子:
TI的PCM3060
/sound/soc/codecs/pcm3060-i2c.c
/sound/soc/codecs/pcm3060-spi.c

/sound/soc/codecs/pcm3060.c 主驱动
/sound/soc/codecs/pcm3060.h
导出一个probe符号给iic/spi probe时传入spi_client/i2c_client的->device

i2c/spi对寄存器的操作通过 regmap框架进行,即 xxx_client-> dev/priv->regmap

  • devm_regmap_init_xxx(client, regmap)
    • map->reg_read = _regmap_bus_read;
      • map->bus->read()
        • spi/iic read()

注意regmap可以设置缓存

regmap分析栗子 see: https://www.cnblogs.com/schips/p/linix_regmap.html

posted @ 2025-09-21 06:52  蓝天上的云℡  阅读(8)  评论(0)    收藏  举报