at91_adc.c
{
申请iio_dev
从中提取 at91_adc_state
填充at91_adc_state
填充io_dev at91_adc_info -> at91_adc_read_raw()
获取中断资源申请中断 at91_adc_interrupt()
计算并使能时钟
初始化队列和锁
初始化缓存和触发 at91_adc_buffer_init() at91_adc_trigger_init()
注册iio_dev
}
at91_adc_read_raw()
{
开中断
等wait_event
向上传值
关中断
}
at91_adc_interrupt()
{
获取状态寄存器值
根据寄存器值进行操作
}
industraialio-core.c at91_adc.c
iio_device_register -> iio_device_register_sysfs -> iio_device_add_channel_sysfs -> iio_read_channel_info -> indio_dev->info->read_raw == at91_adc_read_raw
atmel_pwm_probe()
{
开辟空间atmel_pwm_chip
获取映射io资源
获取clk
填充atmel_pwm_chip atmel_pwm_ops
注册pwm_chip pwmchip_add()
}
pwm子系统 貌似还没完善