提交 584ad00c 编写于 作者: T Tomoya MORINAGA 提交者: Greg Kroah-Hartman

pch_phub: Support new device LAPIS Semiconductor ML7831 IOH

ML7831 is companion chip for Intel Atom E6xx series.
Signed-off-by: NTomoya MORINAGA <tomoya-linux@dsn.lapis-semi.com>
Cc: stable <stable@vger.kernel.org>
Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
上级 161f1419
...@@ -472,7 +472,7 @@ config BMP085 ...@@ -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 ...@@ -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 @@ ...@@ -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, ...@@ -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[] = { ...@@ -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);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册