mirror of
https://github.com/torvalds/linux.git
synced 2026-11-07 06:17:02 +01:00
mfd: motorola-cpcap: Add support for Mot CPCAP composition
Add a MFD subdevice composition used in Tegra20 based Mot board (Motorola Atrix 4G and Droid X2). Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com> Link: https://patch.msgid.link/20260721095654.429346-7-clamor95@gmail.com Signed-off-by: Lee Jones <lee@kernel.org>
This commit is contained in:
parent
8b8035cbfb
commit
c115afabf0
|
|
@ -236,7 +236,6 @@ static const struct mfd_cell cpcap_common_devices[] = {
|
|||
MFD_CELL_OF("cpcap-led", NULL, NULL, 0, 1, "motorola,cpcap-led-green"),
|
||||
MFD_CELL_OF("cpcap-led", NULL, NULL, 0, 2, "motorola,cpcap-led-blue"),
|
||||
MFD_CELL_OF("cpcap-led", NULL, NULL, 0, 3, "motorola,cpcap-led-adl"),
|
||||
MFD_CELL_OF("cpcap-led", NULL, NULL, 0, 4, "motorola,cpcap-led-cp"),
|
||||
MFD_CELL_NAME("cpcap-codec"),
|
||||
};
|
||||
|
||||
|
|
@ -244,6 +243,7 @@ static const struct mfd_cell cpcap_default_devices[] = {
|
|||
MFD_CELL_OF("cpcap_adc", NULL, NULL, 0, 0, "motorola,cpcap-adc"),
|
||||
MFD_CELL_OF("cpcap-regulator", NULL, NULL, 0, 0, "motorola,cpcap-regulator"),
|
||||
MFD_CELL_OF("cpcap-usb-phy", NULL, NULL, 0, 0, "motorola,cpcap-usb-phy"),
|
||||
MFD_CELL_OF("cpcap-led", NULL, NULL, 0, 4, "motorola,cpcap-led-cp"),
|
||||
};
|
||||
|
||||
static const struct mfd_cell cpcap_mapphone_devices[] = {
|
||||
|
|
@ -251,6 +251,18 @@ static const struct mfd_cell cpcap_mapphone_devices[] = {
|
|||
MFD_CELL_OF("cpcap-charger", NULL, NULL, 0, 0, "motorola,mapphone-cpcap-charger"),
|
||||
MFD_CELL_OF("cpcap-regulator", NULL, NULL, 0, 0, "motorola,mapphone-cpcap-regulator"),
|
||||
MFD_CELL_OF("cpcap-usb-phy", NULL, NULL, 0, 0, "motorola,mapphone-cpcap-usb-phy"),
|
||||
MFD_CELL_OF("cpcap-led", NULL, NULL, 0, 4, "motorola,cpcap-led-cp"),
|
||||
};
|
||||
|
||||
/*
|
||||
* The Mot board features a USB-PHY and charger similar to the ones in
|
||||
* Mapphone; however, because Mot is based on Tegra20, it is incompatible
|
||||
* with the existing implementation, which is tightly interconnected with
|
||||
* the OMAP USB PHY.
|
||||
*/
|
||||
static const struct mfd_cell cpcap_mot_devices[] = {
|
||||
MFD_CELL_OF("cpcap_adc", NULL, NULL, 0, 0, "motorola,mot-cpcap-adc"),
|
||||
MFD_CELL_OF("cpcap-regulator", NULL, NULL, 0, 0, "motorola,mot-cpcap-regulator"),
|
||||
};
|
||||
|
||||
static int cpcap_probe(struct spi_device *spi)
|
||||
|
|
@ -275,6 +287,10 @@ static int cpcap_probe(struct spi_device *spi)
|
|||
cells = cpcap_mapphone_devices;
|
||||
num_cells = ARRAY_SIZE(cpcap_mapphone_devices);
|
||||
break;
|
||||
case CPCAP_MOT:
|
||||
cells = cpcap_mot_devices;
|
||||
num_cells = ARRAY_SIZE(cpcap_mot_devices);
|
||||
break;
|
||||
default:
|
||||
return dev_err_probe(&spi->dev, -ENODEV,
|
||||
"Unknown device %d\n", cpcap->variant);
|
||||
|
|
@ -326,6 +342,7 @@ static int cpcap_probe(struct spi_device *spi)
|
|||
static const struct of_device_id cpcap_of_match[] = {
|
||||
{ .compatible = "motorola,cpcap", .data = (void *)CPCAP_DEFAULT },
|
||||
{ .compatible = "motorola,mapphone-cpcap", .data = (void *)CPCAP_MAPPHONE },
|
||||
{ .compatible = "motorola,mot-cpcap", .data = (void *)CPCAP_MOT },
|
||||
{ /* sentinel */ }
|
||||
};
|
||||
MODULE_DEVICE_TABLE(of, cpcap_of_match);
|
||||
|
|
@ -333,6 +350,7 @@ MODULE_DEVICE_TABLE(of, cpcap_of_match);
|
|||
static const struct spi_device_id cpcap_spi_ids[] = {
|
||||
{ .name = "cpcap", .driver_data = CPCAP_DEFAULT },
|
||||
{ .name = "mapphone-cpcap", .driver_data = CPCAP_MAPPHONE },
|
||||
{ .name = "mot-cpcap", .driver_data = CPCAP_MOT },
|
||||
{ /* sentinel */ }
|
||||
};
|
||||
MODULE_DEVICE_TABLE(spi, cpcap_spi_ids);
|
||||
|
|
|
|||
|
|
@ -28,6 +28,7 @@
|
|||
enum cpcap_variant {
|
||||
CPCAP_DEFAULT = 1,
|
||||
CPCAP_MAPPHONE,
|
||||
CPCAP_MOT,
|
||||
CPCAP_MAX
|
||||
};
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user