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),
|
.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 = {
|
static const struct aspeed_adc_model_data ast2400_model_data = {
|
||||||
.model_name = "ast2400-adc",
|
.model_name = "ast2400-adc",
|
||||||
.vref_fixed_mv = 2500,
|
.vref_fixed_mv = 2500,
|
||||||
@@ -689,11 +699,35 @@ static const struct aspeed_adc_model_data ast2600_adc1_model_data = {
|
|||||||
.trim_locate = &ast2600_adc1_trim,
|
.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[] = {
|
static const struct of_device_id aspeed_adc_matches[] = {
|
||||||
{ .compatible = "aspeed,ast2400-adc", .data = &ast2400_model_data },
|
{ .compatible = "aspeed,ast2400-adc", .data = &ast2400_model_data },
|
||||||
{ .compatible = "aspeed,ast2500-adc", .data = &ast2500_model_data },
|
{ .compatible = "aspeed,ast2500-adc", .data = &ast2500_model_data },
|
||||||
{ .compatible = "aspeed,ast2600-adc0", .data = &ast2600_adc0_model_data },
|
{ .compatible = "aspeed,ast2600-adc0", .data = &ast2600_adc0_model_data },
|
||||||
{ .compatible = "aspeed,ast2600-adc1", .data = &ast2600_adc1_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);
|
MODULE_DEVICE_TABLE(of, aspeed_adc_matches);
|
||||||
|
|||||||
Reference in New Issue
Block a user