LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
* [PATCH] pch_phub: add new device ML7213
@ 2010-12-22 4:33 Tomoya MORINAGA
2010-12-22 4:43 ` Greg KH
2010-12-22 4:44 ` Greg KH
0 siblings, 2 replies; 6+ messages in thread
From: Tomoya MORINAGA @ 2010-12-22 4:33 UTC (permalink / raw)
To: linux-kernel, alan, gregkh
Cc: qi.wang, yong.y.wang, joel.clark, kok.howg.ewe, Tomoya MORINAGA
Add ML7213 device information.
ML7213 is companion chip of Intel Atom E6xx series for IVI(In-Vehicle Infotainment).
ML7213 is completely compatible for Intel EG20T PCH.
Signed-off-by: Tomoya MORINAGA <tomoya-linux@dsn.okisemi.com>
---
drivers/misc/Kconfig | 7 ++++-
drivers/misc/pch_phub.c | 73 ++++++++++++++++++++++++++++++++++-------------
2 files changed, 59 insertions(+), 21 deletions(-)
diff --git a/drivers/misc/Kconfig b/drivers/misc/Kconfig
index 4d073f1..4852595 100644
--- a/drivers/misc/Kconfig
+++ b/drivers/misc/Kconfig
@@ -441,7 +441,7 @@ config BMP085
module will be called bmp085.
config PCH_PHUB
- tristate "PCH Packet Hub of Intel Topcliff"
+ tristate "PCH Packet Hub of Intel Topcliff / OKI SEMICONDUCTOR ML7213"
depends on PCI
help
This driver is for PCH(Platform controller Hub) PHUB(Packet Hub) of
@@ -449,6 +449,11 @@ config PCH_PHUB
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 also can be used for OKI SEMICONDUCTOR's ML7213 which is
+ for IVI(In-Vehicle Infotainment) use.
+ ML7213 is companion chip for Intel Atom E6xx series.
+ ML7213 is completely compatible for Intel EG20T PCH.
+
To compile this driver as a module, choose M here: the module will
be called pch_phub.
diff --git a/drivers/misc/pch_phub.c b/drivers/misc/pch_phub.c
index 744b804..a365e03 100644
--- a/drivers/misc/pch_phub.c
+++ b/drivers/misc/pch_phub.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2010 OKI SEMICONDUCTOR Co., LTD.
+ * Copyright (C) 2010 OKI SEMICONDUCTOR CO., LTD.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -33,7 +33,12 @@
#define PHUB_TIMEOUT 0x05 /* Time out value for Status Register */
#define PCH_PHUB_ROM_WRITE_ENABLE 0x01 /* Enabling for writing ROM */
#define PCH_PHUB_ROM_WRITE_DISABLE 0x00 /* Disabling for writing ROM */
-#define PCH_PHUB_ROM_START_ADDR 0x14 /* ROM data area start address offset */
+#define PCH_PHUB_MAC_START_ADDR 0x20C /* MAC data area start address offset */
+#define PCH_PHUB_ROM_START_ADDR_EG20T 0x14 /* ROM data area start address offset
+ (Intel EG20T PCH)*/
+#define PCH_PHUB_ROM_START_ADDR_ML7213 0x400 /* ROM data area start address
+ offset(OKI SEMICONDUCTOR ML7213)
+ */
/* MAX number of INT_REDUCE_CONTROL registers */
#define MAX_NUM_INT_REDUCE_CONTROL_REG 128
@@ -42,6 +47,10 @@
#define CLKCFG_CAN_50MHZ 0x12000000
#define CLKCFG_CANCLK_MASK 0xFF000000
+/* Macros for ML7213 */
+#define PCI_VENDOR_ID_ROHM 0x10db
+#define PCI_DEVICE_ID_ROHM_ML7213_PHUB 0x801A
+
/* SROM ACCESS Macro */
#define PCH_WORD_ADDR_MASK (~((1 << 2) - 1))
@@ -62,6 +71,11 @@
#define PCH_PHUB_OROM_SIZE 15360
+enum pch_phub_type {
+ PCH_EG20T, /* Intel EG20T PCH */
+ PCH_ML7213, /* OKI SEMICONDUCTOR ML7213 for IVI */
+};
+
/**
* struct pch_phub_reg - PHUB register structure
* @phub_id_reg: PHUB_ID register val
@@ -96,6 +110,7 @@ struct pch_phub_reg {
u32 clkcfg_reg;
void __iomem *pch_phub_base_address;
void __iomem *pch_phub_extrom_base_address;
+ int type;
};
/* SROM SPEC for MAC address assignment offset */
@@ -298,7 +313,7 @@ static void pch_phub_read_serial_rom_val(struct pch_phub_reg *chip,
{
unsigned int mem_addr;
- mem_addr = PCH_PHUB_ROM_START_ADDR +
+ mem_addr = PCH_PHUB_ROM_START_ADDR_EG20T +
pch_phub_mac_offset[offset_address];
pch_phub_read_serial_rom(chip, mem_addr, data);
@@ -315,7 +330,7 @@ static int pch_phub_write_serial_rom_val(struct pch_phub_reg *chip,
int retval;
unsigned int mem_addr;
- mem_addr = PCH_PHUB_ROM_START_ADDR +
+ mem_addr = PCH_PHUB_ROM_START_ADDR_EG20T +
pch_phub_mac_offset[offset_address];
retval = pch_phub_write_serial_rom(chip, mem_addr, data);
@@ -594,23 +609,40 @@ static int __devinit pch_phub_probe(struct pci_dev *pdev,
"pch_phub_extrom_base_address variable is %p\n", __func__,
chip->pch_phub_extrom_base_address);
- pci_set_drvdata(pdev, chip);
-
- 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;
-
- pch_phub_read_modify_write_reg(chip, (unsigned int)CLKCFG_REG_OFFSET,
- CLKCFG_CAN_50MHZ, CLKCFG_CANCLK_MASK);
+ if (id->device == PCI_DEVICE_ID_PCH1_PHUB) {
+ chip->type = PCH_EG20T;
+ retval = sysfs_create_file(&pdev->dev.kobj,
+ &dev_attr_pch_mac.attr);
+ if (retval)
+ goto err_sysfs_create;
- /* 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);
+ retval = sysfs_create_bin_file(&pdev->dev.kobj, &pch_bin_attr);
+ if (retval)
+ goto exit_bin_attr;
+
+ pch_phub_read_modify_write_reg(chip,
+ (unsigned int)CLKCFG_REG_OFFSET,
+ CLKCFG_CAN_50MHZ,
+ CLKCFG_CANCLK_MASK);
+
+ /* 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);
+ } else if (id->device == PCI_DEVICE_ID_ROHM_ML7213_PHUB) {
+ chip->type = PCH_ML7213;
+ retval = sysfs_create_bin_file(&pdev->dev.kobj, &pch_bin_attr);
+ if (retval)
+ goto err_sysfs_create;
+ /* set the prefech value
+ * Device2(USB OHCI #1/ USB EHCI #1/ USB Device):a
+ * Device4(SDIO #0,1,2):f
+ * Device6(SATA 2):f
+ * Device8(USB OHCI #0/ USB EHCI #0):a
+ */
+ iowrite32(0x000affa0, chip->pch_phub_base_address + 0x14);
+ }
+ pci_set_drvdata(pdev, chip);
return 0;
exit_bin_attr:
@@ -688,6 +720,7 @@ static int pch_phub_resume(struct pci_dev *pdev)
static struct pci_device_id pch_phub_pcidev_id[] = {
{PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_PCH1_PHUB)},
+ {PCI_DEVICE(PCI_VENDOR_ID_ROHM, PCI_DEVICE_ID_ROHM_ML7213_PHUB)},
{0,}
};
--
1.6.0.6
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH] pch_phub: add new device ML7213
2010-12-22 4:33 [PATCH] pch_phub: add new device ML7213 Tomoya MORINAGA
@ 2010-12-22 4:43 ` Greg KH
2010-12-22 4:44 ` Greg KH
1 sibling, 0 replies; 6+ messages in thread
From: Greg KH @ 2010-12-22 4:43 UTC (permalink / raw)
To: Tomoya MORINAGA
Cc: linux-kernel, alan, qi.wang, yong.y.wang, joel.clark, kok.howg.ewe
On Wed, Dec 22, 2010 at 01:33:14PM +0900, Tomoya MORINAGA wrote:
> Add ML7213 device information.
> ML7213 is companion chip of Intel Atom E6xx series for IVI(In-Vehicle Infotainment).
> ML7213 is completely compatible for Intel EG20T PCH.
>
> Signed-off-by: Tomoya MORINAGA <tomoya-linux@dsn.okisemi.com>
> ---
> drivers/misc/Kconfig | 7 ++++-
> drivers/misc/pch_phub.c | 73 ++++++++++++++++++++++++++++++++++-------------
> 2 files changed, 59 insertions(+), 21 deletions(-)
>
> diff --git a/drivers/misc/Kconfig b/drivers/misc/Kconfig
> index 4d073f1..4852595 100644
> --- a/drivers/misc/Kconfig
> +++ b/drivers/misc/Kconfig
> @@ -441,7 +441,7 @@ config BMP085
> module will be called bmp085.
>
> config PCH_PHUB
> - tristate "PCH Packet Hub of Intel Topcliff"
> + tristate "PCH Packet Hub of Intel Topcliff / OKI SEMICONDUCTOR ML7213"
> depends on PCI
> help
> This driver is for PCH(Platform controller Hub) PHUB(Packet Hub) of
> @@ -449,6 +449,11 @@ config PCH_PHUB
> 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 also can be used for OKI SEMICONDUCTOR's ML7213 which is
> + for IVI(In-Vehicle Infotainment) use.
> + ML7213 is companion chip for Intel Atom E6xx series.
> + ML7213 is completely compatible for Intel EG20T PCH.
> +
> To compile this driver as a module, choose M here: the module will
> be called pch_phub.
>
> diff --git a/drivers/misc/pch_phub.c b/drivers/misc/pch_phub.c
> index 744b804..a365e03 100644
> --- a/drivers/misc/pch_phub.c
> +++ b/drivers/misc/pch_phub.c
> @@ -1,5 +1,5 @@
> /*
> - * Copyright (C) 2010 OKI SEMICONDUCTOR Co., LTD.
> + * Copyright (C) 2010 OKI SEMICONDUCTOR CO., LTD.
> *
> * This program is free software; you can redistribute it and/or modify
> * it under the terms of the GNU General Public License as published by
> @@ -33,7 +33,12 @@
> #define PHUB_TIMEOUT 0x05 /* Time out value for Status Register */
> #define PCH_PHUB_ROM_WRITE_ENABLE 0x01 /* Enabling for writing ROM */
> #define PCH_PHUB_ROM_WRITE_DISABLE 0x00 /* Disabling for writing ROM */
> -#define PCH_PHUB_ROM_START_ADDR 0x14 /* ROM data area start address offset */
> +#define PCH_PHUB_MAC_START_ADDR 0x20C /* MAC data area start address offset */
> +#define PCH_PHUB_ROM_START_ADDR_EG20T 0x14 /* ROM data area start address offset
> + (Intel EG20T PCH)*/
> +#define PCH_PHUB_ROM_START_ADDR_ML7213 0x400 /* ROM data area start address
> + offset(OKI SEMICONDUCTOR ML7213)
> + */
>
> /* MAX number of INT_REDUCE_CONTROL registers */
> #define MAX_NUM_INT_REDUCE_CONTROL_REG 128
> @@ -42,6 +47,10 @@
> #define CLKCFG_CAN_50MHZ 0x12000000
> #define CLKCFG_CANCLK_MASK 0xFF000000
>
> +/* Macros for ML7213 */
> +#define PCI_VENDOR_ID_ROHM 0x10db
> +#define PCI_DEVICE_ID_ROHM_ML7213_PHUB 0x801A
> +
> /* SROM ACCESS Macro */
> #define PCH_WORD_ADDR_MASK (~((1 << 2) - 1))
>
> @@ -62,6 +71,11 @@
>
> #define PCH_PHUB_OROM_SIZE 15360
>
> +enum pch_phub_type {
> + PCH_EG20T, /* Intel EG20T PCH */
> + PCH_ML7213, /* OKI SEMICONDUCTOR ML7213 for IVI */
> +};
> +
> /**
> * struct pch_phub_reg - PHUB register structure
> * @phub_id_reg: PHUB_ID register val
> @@ -96,6 +110,7 @@ struct pch_phub_reg {
> u32 clkcfg_reg;
> void __iomem *pch_phub_base_address;
> void __iomem *pch_phub_extrom_base_address;
> + int type;
Shouldn't this be enum pch_phub_type instead of an int?
thanks,
greg k-h
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] pch_phub: add new device ML7213
2010-12-22 4:33 [PATCH] pch_phub: add new device ML7213 Tomoya MORINAGA
2010-12-22 4:43 ` Greg KH
@ 2010-12-22 4:44 ` Greg KH
2011-01-12 1:59 ` Tomoya MORINAGA
1 sibling, 1 reply; 6+ messages in thread
From: Greg KH @ 2010-12-22 4:44 UTC (permalink / raw)
To: Tomoya MORINAGA
Cc: linux-kernel, alan, qi.wang, yong.y.wang, joel.clark, kok.howg.ewe
On Wed, Dec 22, 2010 at 01:33:14PM +0900, Tomoya MORINAGA wrote:
> @@ -688,6 +720,7 @@ static int pch_phub_resume(struct pci_dev *pdev)
>
> static struct pci_device_id pch_phub_pcidev_id[] = {
> {PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_PCH1_PHUB)},
> + {PCI_DEVICE(PCI_VENDOR_ID_ROHM, PCI_DEVICE_ID_ROHM_ML7213_PHUB)},
Put the device type here in the device table, so you don't have to check
for it again in the probe function. That way you can save some code and
keep things simpler and more obvious in the future when adding new
device ids, that you also have to pick the type for it.
thanks,
greg k-h
^ permalink raw reply [flat|nested] 6+ messages in thread
* RE: [PATCH] pch_phub: add new device ML7213
2010-12-22 4:44 ` Greg KH
@ 2011-01-12 1:59 ` Tomoya MORINAGA
2011-01-12 3:04 ` Greg KH
0 siblings, 1 reply; 6+ messages in thread
From: Tomoya MORINAGA @ 2011-01-12 1:59 UTC (permalink / raw)
To: 'Greg KH'
Cc: linux-kernel, alan, qi.wang, yong.y.wang, joel.clark,
kok.howg.ewe, Toshiharu Okada
Hi Greg,
On Wednesday, December 22, 2010 1:44 PM, Greg KH wrote:
> Put the device type here in the device table, so you don't
> have to check for it again in the probe function. That way
> you can save some code and keep things simpler and more
> obvious in the future when adding new device ids, that you
> also have to pick the type for it.
Have you reviewed our "v2 patch" which is modified for the above?
Thanks,
-----------------------------------------
Tomoya MORINAGA
OKI SEMICONDUCTOR CO., LTD.
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] pch_phub: add new device ML7213
2011-01-12 1:59 ` Tomoya MORINAGA
@ 2011-01-12 3:04 ` Greg KH
2011-01-28 8:53 ` Tomoya MORINAGA
0 siblings, 1 reply; 6+ messages in thread
From: Greg KH @ 2011-01-12 3:04 UTC (permalink / raw)
To: Tomoya MORINAGA
Cc: linux-kernel, alan, qi.wang, yong.y.wang, joel.clark,
kok.howg.ewe, Toshiharu Okada
On Wed, Jan 12, 2011 at 10:59:35AM +0900, Tomoya MORINAGA wrote:
> Hi Greg,
>
> On Wednesday, December 22, 2010 1:44 PM, Greg KH wrote:
> > Put the device type here in the device table, so you don't
> > have to check for it again in the probe function. That way
> > you can save some code and keep things simpler and more
> > obvious in the future when adding new device ids, that you
> > also have to pick the type for it.
>
> Have you reviewed our "v2 patch" which is modified for the above?
It is in my "to apply" queue. The hollidays here kept me from working
on kernel things for 2 weeks, and now the merge window is happening, but
after .38-rc1 is out, I will get to the patch.
thanks for your patience,
greg k-h
^ permalink raw reply [flat|nested] 6+ messages in thread
* RE: [PATCH] pch_phub: add new device ML7213
2011-01-12 3:04 ` Greg KH
@ 2011-01-28 8:53 ` Tomoya MORINAGA
0 siblings, 0 replies; 6+ messages in thread
From: Tomoya MORINAGA @ 2011-01-28 8:53 UTC (permalink / raw)
To: 'Greg KH'
Cc: linux-kernel, alan, qi.wang, yong.y.wang, joel.clark,
kok.howg.ewe, 'Toshiharu Okada'
Hi Greg,
On Wednesday, January 12, 2011 12:04 PM: Greg KH wrote:
> It is in my "to apply" queue.
It seems our pch_phub patch is not updated to upstream.
Have you reviewed this patch ? or Still in your queue ?
Thanks in advance,
-----------------------------------------
Tomoya MORINAGA
OKI SEMICONDUCTOR CO., LTD.
> -----Original Message-----
> From: Greg KH [mailto:gregkh@suse.de]
> Sent: Wednesday, January 12, 2011 12:04 PM
> To: Tomoya MORINAGA
> Cc: linux-kernel@vger.kernel.org; alan@lxorguk.ukuu.org.uk;
> qi.wang@intel.com; yong.y.wang@intel.com;
> joel.clark@intel.com; kok.howg.ewe@intel.com; Toshiharu Okada
> Subject: Re: [PATCH] pch_phub: add new device ML7213
>
> On Wed, Jan 12, 2011 at 10:59:35AM +0900, Tomoya MORINAGA wrote:
> > Hi Greg,
> >
> > On Wednesday, December 22, 2010 1:44 PM, Greg KH wrote:
> > > Put the device type here in the device table, so you
> don't have to
> > > check for it again in the probe function. That way you can save
> > > some code and keep things simpler and more obvious in the future
> > > when adding new device ids, that you also have to pick
> the type for
> > > it.
> >
> > Have you reviewed our "v2 patch" which is modified for the above?
>
> It is in my "to apply" queue. The hollidays here kept me
> from working on kernel things for 2 weeks, and now the merge
> window is happening, but after .38-rc1 is out, I will get to
> the patch.
>
> thanks for your patience,
>
> greg k-h
>
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2011-01-28 8:53 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-12-22 4:33 [PATCH] pch_phub: add new device ML7213 Tomoya MORINAGA
2010-12-22 4:43 ` Greg KH
2010-12-22 4:44 ` Greg KH
2011-01-12 1:59 ` Tomoya MORINAGA
2011-01-12 3:04 ` Greg KH
2011-01-28 8:53 ` Tomoya MORINAGA
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).