mirror of
https://github.com/torvalds/linux.git
synced 2025-12-07 20:06:24 +00:00
iio: adc: aspeed: Add AST2700 ADC support
This patch adds support for the ADCs found on the Aspeed AST2700 SoC, which includes two instances: "ast2700-adc0" and "ast2700-adc1". While they are functionally similar to those on AST2600, the OTP trimming data is located at the same offset (0x820), but uses different bitfields. Signed-off-by: Billy Tsai <billy_tsai@aspeedtech.com> Reviewed-by: David Lechner <dlechner@baylibre.com> Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
This commit is contained in:
committed by
Jonathan Cameron
parent
436cd77125
commit
9d8b88ffb7
@@ -645,6 +645,16 @@ static const struct aspeed_adc_trim_locate ast2600_adc1_trim = {
|
||||
.field = GENMASK(7, 4),
|
||||
};
|
||||
|
||||
static const struct aspeed_adc_trim_locate ast2700_adc0_trim = {
|
||||
.offset = 0x820,
|
||||
.field = GENMASK(3, 0),
|
||||
};
|
||||
|
||||
static const struct aspeed_adc_trim_locate ast2700_adc1_trim = {
|
||||
.offset = 0x820,
|
||||
.field = GENMASK(7, 4),
|
||||
};
|
||||
|
||||
static const struct aspeed_adc_model_data ast2400_model_data = {
|
||||
.model_name = "ast2400-adc",
|
||||
.vref_fixed_mv = 2500,
|
||||
@@ -689,11 +699,35 @@ static const struct aspeed_adc_model_data ast2600_adc1_model_data = {
|
||||
.trim_locate = &ast2600_adc1_trim,
|
||||
};
|
||||
|
||||
static const struct aspeed_adc_model_data ast2700_adc0_model_data = {
|
||||
.model_name = "ast2700-adc0",
|
||||
.min_sampling_rate = 10000,
|
||||
.max_sampling_rate = 500000,
|
||||
.wait_init_sequence = true,
|
||||
.bat_sense_sup = true,
|
||||
.scaler_bit_width = 16,
|
||||
.num_channels = 8,
|
||||
.trim_locate = &ast2700_adc0_trim,
|
||||
};
|
||||
|
||||
static const struct aspeed_adc_model_data ast2700_adc1_model_data = {
|
||||
.model_name = "ast2700-adc1",
|
||||
.min_sampling_rate = 10000,
|
||||
.max_sampling_rate = 500000,
|
||||
.wait_init_sequence = true,
|
||||
.bat_sense_sup = true,
|
||||
.scaler_bit_width = 16,
|
||||
.num_channels = 8,
|
||||
.trim_locate = &ast2700_adc1_trim,
|
||||
};
|
||||
|
||||
static const struct of_device_id aspeed_adc_matches[] = {
|
||||
{ .compatible = "aspeed,ast2400-adc", .data = &ast2400_model_data },
|
||||
{ .compatible = "aspeed,ast2500-adc", .data = &ast2500_model_data },
|
||||
{ .compatible = "aspeed,ast2600-adc0", .data = &ast2600_adc0_model_data },
|
||||
{ .compatible = "aspeed,ast2600-adc1", .data = &ast2600_adc1_model_data },
|
||||
{ .compatible = "aspeed,ast2700-adc0", .data = &ast2700_adc0_model_data },
|
||||
{ .compatible = "aspeed,ast2700-adc1", .data = &ast2700_adc1_model_data },
|
||||
{ }
|
||||
};
|
||||
MODULE_DEVICE_TABLE(of, aspeed_adc_matches);
|
||||
|
||||
Reference in New Issue
Block a user