pch_phub: Support new device LAPIS Semiconductor ML7831 IOH
ML7831 is companion chip for Intel Atom E6xx series. Signed-off-by: Tomoya MORINAGA <tomoya-linux@dsn.lapis-semi.com> Cc: stable <stable@vger.kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
parent
161f14191d
commit
584ad00ce4
@ -472,7 +472,7 @@ config BMP085
|
|||||||
module will be called bmp085.
|
module will be called bmp085.
|
||||||
|
|
||||||
config PCH_PHUB
|
config PCH_PHUB
|
||||||
tristate "Intel EG20T PCH / OKI SEMICONDUCTOR IOH(ML7213/ML7223) PHUB"
|
tristate "Intel EG20T PCH/LAPIS Semicon IOH(ML7213/ML7223/ML7831) PHUB"
|
||||||
depends on PCI
|
depends on PCI
|
||||||
help
|
help
|
||||||
This driver is for PCH(Platform controller Hub) PHUB(Packet Hub) of
|
This driver is for PCH(Platform controller Hub) PHUB(Packet Hub) of
|
||||||
@ -480,12 +480,13 @@ config PCH_PHUB
|
|||||||
processor. The Topcliff has MAC address and Option ROM data in SROM.
|
processor. The Topcliff has MAC address and Option ROM data in SROM.
|
||||||
This driver can access MAC address and Option ROM data in SROM.
|
This driver can access MAC address and Option ROM data in SROM.
|
||||||
|
|
||||||
This driver also can be used for OKI SEMICONDUCTOR IOH(Input/
|
This driver also can be used for LAPIS Semiconductor's IOH,
|
||||||
Output Hub), ML7213 and ML7223.
|
ML7213/ML7223/ML7831.
|
||||||
ML7213 IOH is for IVI(In-Vehicle Infotainment) use and ML7223 IOH is
|
ML7213 which is for IVI(In-Vehicle Infotainment) use.
|
||||||
for MP(Media Phone) use.
|
ML7223 IOH is for MP(Media Phone) use.
|
||||||
ML7213/ML7223 is companion chip for Intel Atom E6xx series.
|
ML7831 IOH is for general purpose use.
|
||||||
ML7213/ML7223 is completely compatible for Intel EG20T PCH.
|
ML7213/ML7223/ML7831 is companion chip for Intel Atom E6xx series.
|
||||||
|
ML7213/ML7223/ML7831 is completely compatible for Intel EG20T PCH.
|
||||||
|
|
||||||
To compile this driver as a module, choose M here: the module will
|
To compile this driver as a module, choose M here: the module will
|
||||||
be called pch_phub.
|
be called pch_phub.
|
||||||
|
@ -73,6 +73,9 @@
|
|||||||
#define PCI_DEVICE_ID_ROHM_ML7223_mPHUB 0x8012 /* for Bus-m */
|
#define PCI_DEVICE_ID_ROHM_ML7223_mPHUB 0x8012 /* for Bus-m */
|
||||||
#define PCI_DEVICE_ID_ROHM_ML7223_nPHUB 0x8002 /* for Bus-n */
|
#define PCI_DEVICE_ID_ROHM_ML7223_nPHUB 0x8002 /* for Bus-n */
|
||||||
|
|
||||||
|
/* Macros for ML7831 */
|
||||||
|
#define PCI_DEVICE_ID_ROHM_ML7831_PHUB 0x8801
|
||||||
|
|
||||||
/* SROM ACCESS Macro */
|
/* SROM ACCESS Macro */
|
||||||
#define PCH_WORD_ADDR_MASK (~((1 << 2) - 1))
|
#define PCH_WORD_ADDR_MASK (~((1 << 2) - 1))
|
||||||
|
|
||||||
@ -763,6 +766,22 @@ static int __devinit pch_phub_probe(struct pci_dev *pdev,
|
|||||||
chip->pch_opt_rom_start_address =\
|
chip->pch_opt_rom_start_address =\
|
||||||
PCH_PHUB_ROM_START_ADDR_ML7223;
|
PCH_PHUB_ROM_START_ADDR_ML7223;
|
||||||
chip->pch_mac_start_address = PCH_PHUB_MAC_START_ADDR_ML7223;
|
chip->pch_mac_start_address = PCH_PHUB_MAC_START_ADDR_ML7223;
|
||||||
|
} else if (id->driver_data == 5) { /* ML7831 */
|
||||||
|
retval = sysfs_create_file(&pdev->dev.kobj,
|
||||||
|
&dev_attr_pch_mac.attr);
|
||||||
|
if (retval)
|
||||||
|
goto err_sysfs_create;
|
||||||
|
|
||||||
|
retval = sysfs_create_bin_file(&pdev->dev.kobj, &pch_bin_attr);
|
||||||
|
if (retval)
|
||||||
|
goto exit_bin_attr;
|
||||||
|
|
||||||
|
/* set the prefech value */
|
||||||
|
iowrite32(0x000affaa, chip->pch_phub_base_address + 0x14);
|
||||||
|
/* set the interrupt delay value */
|
||||||
|
iowrite32(0x25, chip->pch_phub_base_address + 0x44);
|
||||||
|
chip->pch_opt_rom_start_address = PCH_PHUB_ROM_START_ADDR_EG20T;
|
||||||
|
chip->pch_mac_start_address = PCH_PHUB_MAC_START_ADDR_EG20T;
|
||||||
}
|
}
|
||||||
|
|
||||||
chip->ioh_type = id->driver_data;
|
chip->ioh_type = id->driver_data;
|
||||||
@ -847,6 +866,7 @@ static struct pci_device_id pch_phub_pcidev_id[] = {
|
|||||||
{ PCI_VDEVICE(ROHM, PCI_DEVICE_ID_ROHM_ML7213_PHUB), 2, },
|
{ PCI_VDEVICE(ROHM, PCI_DEVICE_ID_ROHM_ML7213_PHUB), 2, },
|
||||||
{ PCI_VDEVICE(ROHM, PCI_DEVICE_ID_ROHM_ML7223_mPHUB), 3, },
|
{ PCI_VDEVICE(ROHM, PCI_DEVICE_ID_ROHM_ML7223_mPHUB), 3, },
|
||||||
{ PCI_VDEVICE(ROHM, PCI_DEVICE_ID_ROHM_ML7223_nPHUB), 4, },
|
{ PCI_VDEVICE(ROHM, PCI_DEVICE_ID_ROHM_ML7223_nPHUB), 4, },
|
||||||
|
{ PCI_VDEVICE(ROHM, PCI_DEVICE_ID_ROHM_ML7831_PHUB), 5, },
|
||||||
{ }
|
{ }
|
||||||
};
|
};
|
||||||
MODULE_DEVICE_TABLE(pci, pch_phub_pcidev_id);
|
MODULE_DEVICE_TABLE(pci, pch_phub_pcidev_id);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user