summaryrefslogtreecommitdiff
path: root/arch/arm/mach-pxa
Commit message (Collapse)AuthorAgeFilesLines
* spi: pxa2xx_spi: introduce chipselect GPIO to simplify the common casesEric Miao2009-04-071-0/+1
| | | | | | | | | | | Most SPI peripherals use GPIOs as their chip selects, introduce .gpio_cs for this. Signed-off-by: Eric Miao <eric.miao@marvell.com> Cc: David Brownell <david-b@pacbell.net> Cc: Russell King <rmk@arm.linux.org.uk> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* Merge git://git.infradead.org/mtd-2.6Linus Torvalds2009-04-061-0/+3
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * git://git.infradead.org/mtd-2.6: (53 commits) [MTD] struct device - replace bus_id with dev_name(), dev_set_name() [MTD] [NOR] Fixup for Numonyx M29W128 chips [MTD] mtdpart: Make ecc_stats more realistic. powerpc/85xx: TQM8548: Update DTS file for multi-chip support powerpc: NAND: FSL UPM: document new bindings [MTD] [NAND] FSL-UPM: Add wait flags to support board/chip specific delays [MTD] [NAND] FSL-UPM: add multi chip support [MTD] [NOR] Add device parent info to physmap_of [MTD] [NAND] Add support for NAND on the Socrates board [MTD] [NAND] Add support for 4KiB pages. [MTD] sysfs support should not depend on CONFIG_PROC_FS [MTD] [NAND] Add parent info for CAFÉ controller [MTD] support driver model updates [MTD] driver model updates (part 2) [MTD] driver model updates [MTD] [NAND] move gen_nand's probe function to .devinit.text [MTD] [MAPS] move sa1100 flash's probe function to .devinit.text [MTD] fix use after free in register_mtd_blktrans [MTD] [MAPS] Drop now unused sharpsl-flash map [MTD] ofpart: Check name property to determine partition nodes. ... Manually fix trivial conflict in drivers/mtd/maps/Makefile
| * [MTD] [NAND] pxa3xx_nand: add ability to keep controller settings defined by ↵Mike Rapoport2009-03-201-0/+3
| | | | | | | | | | | | | | | | OBM/bootloader Signed-off-by: Mike Rapoport <mike@compulab.co.il> Acked-by: Eric Miao <eric.miao@marvell.com> Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
* | pxa/magician: remove deprecated .bus_shift from PASIC3 platform_dataPhilipp Zabel2009-04-051-1/+0
| | | | | | | | | | | | | | | | The PASIC3 driver now calculates its register spacing from the resource size. Signed-off-by: Philipp Zabel <philipp.zabel@gmail.com> Signed-off-by: Samuel Ortiz <sameo@openedhand.com>
* | V4L/DVB (11034): soc-camera: remove now unused gpio member of struct ↵Sascha Hauer2009-03-301-1/+0
| | | | | | | | | | | | | | | | soc_camera_link Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de> Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* | V4L/DVB (11031): pcm990 baseboard: add camera bus width switch settingSascha Hauer2009-03-301-9/+45
| | | | | | | | | | | | | | | | | | | | | | | | Some Phytec cameras have a I2C GPIO expander which allows it to switch between different sensor bus widths. This was previously handled in the camera driver. Since handling of this switch varies on several boards the cameras are used on, the board support seems a better place to handle the switch Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de> Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* | Merge branch 'origin' into develRussell King2009-03-286-1/+44
|\ \ | | | | | | | | | | | | Conflicts: sound/soc/pxa/pxa2xx-i2s.c
| * \ Merge branch 'topic/asoc' into for-linusTakashi Iwai2009-03-246-1/+44
| |\ \ | | |/ | |/|
| | * ASoC: add two more bitfields for PXA SSPDaniel Mack2009-03-061-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | Add two more bitfields for the PSP register. As they seem to exist for PXA3xx only, define them conditionally. Signed-off-by: Daniel Mack <daniel@caiaq.de> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
| | * ASoC: Fix name of register bit in pxa-sspDaniel Mack2009-03-061-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | A bit in PXA's SSCR0 register was erroneously named ADC but its name is in fact ACS (audio clock select). Signed-off-by: Daniel Mack <daniel@caiaq.de> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
| | * pxa/spitz: Setup I2S pins for pxa2xx-i2sPhilipp Zabel2009-02-081-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | The spitz has a WM8750 codec connected as I2S slave but doesn't use the PXA I2S system clock. Signed-off-by: Philipp Zabel <philipp.zabel@gmail.com> Acked-by: Eric Miao <eric.miao@marvell.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
| | * pxa/h5000: Setup I2S pins for pxa2xx-i2sPhilipp Zabel2009-02-081-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | The iPAQ h5000 has an AK4535 codec connected as I2S slave, PXA I2S providing SYSCLK. Signed-off-by: Philipp Zabel <philipp.zabel@gmail.com> Acked-by: Eric Miao <eric.miao@marvell.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
| | * ASoC: machine support for Toshiba e740 PDAIan Molton2009-01-192-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch provides suupport for the wm9705 AC97 codec on the Toshiba e740. Note: The e740 has a hard headphone switch that turns the speaker off and is not software detectable or controlable. Also both headphone and speaker amps share a common output enable. Signed-off-by: Ian Molton <ian@mnementh.co.uk> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
| | * ASoC: machine driver for Toshiba e800Ian Molton2009-01-161-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds support for the wm9712 ac97 codec as used in the Toshiba e800 PDA. It includes support for powering up / down the external headphone and speaker amplifiers on this machine. Signed-off-by: Ian Molton <ian@mnementh.co.uk> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
| | * ASoC: machine driver for Toshiba e750Ian Molton2009-01-162-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds support for the wm9705 ac97 codec as used in the Toshiba e750 PDA. It includes support for powering up / down the external headphone and speaker amplifiers on this machine. Signed-off-by: Ian Molton <ian@mnementh.co.uk> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | | Merge branch 'devel' of ↵Russell King2009-03-282-2/+2
|\ \ \ | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/ycmiao/pxa-linux-2.6 into devel
| * | | [ARM] pxa: fix Colibri PXA300 and PXA320 LCD backlight pinsDaniel Mack2009-03-282-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | Reported-by: Matthias Meier <matthias.j.meier@gmx.net> Signed-off-by: Daniel Mack <daniel@caiaq.de> Signed-off-by: Eric Miao <eric.miao@marvell.com>
* | | | Merge branch 'devel' of ↵root2009-03-2428-980/+608
|\ \ \ \ | |/ / / | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/ycmiao/pxa-linux-2.6 into devel
| * | | [ARM] pxa: move common MFP handling code into plat-pxaEric Miao2009-03-2311-316/+32
| | | | | | | | | | | | | | | | Signed-off-by: Eric Miao <eric.miao@marvell.com>
| * | | [ARM] pxa: move common GPIO handling code into plat-pxaEric Miao2009-03-233-397/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1. add common GPIO handling code into [arch/arm/plat-pxa] 2. common code in <mach/gpio.h> moved into <plat/gpio.h>, new processors should implement its own <mach/gpio.h>, provide the following required definitions and '#include <plat/gpio.h>' in the end: - GPIO_REGS_VIRT for mapped virtual address of the GPIO registers' physical I/O memory - macros of GPLR(), GPSR(), GPDR() for constant optimization for functions gpio_{set,get}_value() (so that bit-bang code can still have tolerable performance) - NR_BUILTIN_GPIO for the number of onchip GPIO - definitions of __gpio_is_inverted() and __gpio_is_occupied(), they can be either macros or inlined functions Signed-off-by: Eric Miao <eric.miao@marvell.com>
| * | | [ARM] pxa: introduce plat-pxa for PXA common code and add DMA supportEric Miao2009-03-233-227/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1. introduce folder of 'arch/arm/plat-pxa' for common code across different PXA processor families 2. initially moved DMA code into plat-pxa 3. common code in <mach/dma.h> moved into <plat/dma.h>, new processors should implement its own <mach/dma.h>, provide the following required definitions and '#include <plat/dma.h>' in the end: - DMAC_REGS_VIRT for mapped virtual address of the DMA registers' physical I/O memory Signed-off-by: Eric Miao <eric.miao@marvell.com>
| * | | [ARM] pxa: AC97 pin functions for Colibri PXA310/320Daniel Mack2009-03-232-0/+44
| | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Daniel Mack <daniel@caiaq.de> Cc: Matthias Meier <matthias.j.meier@gmx.net> Signed-off-by: Eric Miao <eric.miao@marvell.com>
| * | | [ARM] pxa: Add Colibri LCD functionsDaniel Mack2009-03-234-0/+131
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This adds LCD functions for Colibri PXA300 and Colibri PXA320 and configures a LQ043T3DX02 panel. Original-code-by: Matthias Meier <matthias.j.meier@gmx.net> Signed-off-by: Daniel Mack <daniel@caiaq.de> Signed-off-by: Eric Miao <eric.miao@marvell.com>
| * | | [ARM] pxa: Colibri PXA320 module basicsDaniel Mack2009-03-233-0/+134
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This adds basic support for Colibri PXA320 modules. The file colibri-320.c only contains settings specific to this module, such as the Ethernet interface. Cc: Matthias Meier <matthias.j.meier@gmx.net> Signed-off-by: Daniel Mack <daniel@caiaq.de> Signed-off-by: Eric Miao <eric.miao@marvell.com>
| * | | [ARM] pxa: Refactor Colibri board support codeDaniel Mack2009-03-235-94/+119
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Move common function for all Colibri PXA3xx boards to the newly added colibri-pxa3xx.c - Drop some unnecessary defines from colibri.h - Make Kconfig reflect the fact that code for colibri 300 module does also work for the 310 model - Give up on the huge pin config table which was messed up with lots of #ifdefs and switch over to locally defined tables for configured functions Cc: Matthias Meier <matthias.j.meier@gmx.net> Signed-off-by: Daniel Mack <daniel@caiaq.de> Signed-off-by: Eric Miao <eric.miao@marvell.com>
| * | | [ARM] pxa: Fix Colibri AX88796 configurationDaniel Mack2009-03-231-10/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Broaden the AX88796 register mask to allow access to the reset register. Remove unnecessary value definitions and the second resource block. Diagnosed-by: Matthias Meier <matthias.j.meier@gmx.net> Signed-off-by: Daniel Mack <daniel@caiaq.de> Signed-off-by: Eric Miao <eric.miao@marvell.com>
| * | | [ARM] pxa: add USB support for Colibri PXA300Daniel Mack2009-03-231-0/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This adds support for USB OHCI for Toradex' Colibri PXA300 modules as connected on the evaluation board. Signed-off-by: Daniel Mack <daniel@caiaq.de> Signed-off-by: Eric Miao <eric.miao@marvell.com>
| * | | [ARM] pxa: add MMC support for Colibri PXA300Daniel Mack2009-03-231-0/+58
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Added MMC support for Toradex' Colibri PXA300 module. Signed-off-by: Daniel Mack <daniel@caiaq.de> Signed-off-by: Eric Miao <eric.miao@marvell.com>
| * | | [ARM] pxa: add basic support for Colibri PXA300 moduleDaniel Mack2009-03-234-0/+122
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch add basic support for Toradex' Colibri PXA300 module. Ethernet is enabled conditionally, depdending on CONFIG_AX88796. Signed-off-by: Daniel Mack <daniel@caiaq.de> Signed-off-by: Eric Miao <eric.miao@marvell.com>
| * | | [ARM] pxa: rename colibri.c to colibri-pxa270.cDaniel Mack2009-03-234-34/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Namespace cleanup: rename colibri.c to colibri-pxa270.c and change some names in colibri.h. Signed-off-by: Daniel Mack <daniel@caiaq.de> Signed-off-by: Eric Miao <eric.miao@marvell.com>
| * | | Merge branch 'fix' of ↵Eric Miao2009-03-238-7/+9
| |\ \ \ | | | | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/ycmiao/pxa-linux-2.6.git into devel
| | * | | [ARM] pxa: add pxa320 missing pin function for CS2 on GPIO3Daniel Mack2009-03-231-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Daniel Mack <daniel@caiaq.de> Signed-off-by: Eric Miao <eric.miao@marvell.com>
| | * | | [ARM] pxa: make second argument of clk_add_alias a name instead of the deviceDmitry Eremin-Solenikov2009-03-196-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | clk_add_alias is commonly called for platform devices that are not yet registered in the device tree. Thus the clock alias is associated with NULL device name. Fix this by passing the device name instead of just device pointer. Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com> Signed-off-by: Eric Miao <eric.miao@marvell.com>
| | * | | [ARM] pxa: add missing pin function for CS2 on GPIO1Daniel Mack2009-03-191-0/+1
| | |/ / | | | | | | | | | | | | | | | | Signed-off-by: Daniel Mack <daniel@caiaq.de> Signed-off-by: Eric Miao <eric.miao@marvell.com>
* | | | [ARM] pass reboot command line to arch_reset()Russell King2009-03-197-15/+15
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | OMAP wishes to pass state to the boot loader upon reboot in order to instruct it whether to wait for USB-based reflashing or not. There is already a facility to do this via the reboot() syscall, except we ignore the string passed to machine_restart(). This patch fixes things to pass this string to arch_reset(). This means that we keep the reboot mode limited to telling the kernel _how_ to perform the reboot which should be independent of what we request the boot loader to do. Acked-by: Tony Lindgren <tony@atomide.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* | | [ARM] pxa/MioA701: Migrate after pxa27x_udc gpio_pullup functionality.Robert Jarzmik2009-03-131-33/+2
| | | | | | | | | | | | | | | Signed-off-by: Robert Jarzmik <rjarzmik@free.fr> Signed-off-by: Eric Miao <eric.miao@marvell.com>
* | | [ARM] pxa/MioA701: add gpio_vbus driverRobert Jarzmik2009-03-131-1/+10
| | | | | | | | | | | | | | | | | | | | | | | | Add gpio vbus detection to udc driver, by taking advantage of the new gpio_vbus driver. Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr> Signed-off-by: Eric Miao <eric.miao@marvell.com>
* | | [ARM] pxa: add support for CSB701 baseboardDmitry Eremin-Solenikov2009-03-133-0/+66
| | | | | | | | | | | | | | | | | | | | | | | | | | | CSB701 is one of baseboards that can be used with CSB726 SOM. This currently adds support for button and LED on the board. More to come later. Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com> Signed-off-by: Eric Miao <eric.miao@marvell.com>
* | | [ARM] pxa: add initial support for Cogent CSB726 boardDmitry Eremin-Solenikov2009-03-135-1/+355
| | | | | | | | | | | | | | | Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com> Signed-off-by: Eric Miao <eric.miao@marvell.com>
* | | [ARM] pxa: fix typo in BANK_OFF() macro in gpio.hEric Miao2009-03-131-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | The typo was originally fixed by Mike Rapoport and missed. And is later reported by Matthias Meier. Signed-off-by: Matthias Meier <matthias.j.meier@gmx.net> Signed-off-by: Mike Rapoport <mike@compulab.co.il> Signed-off-by: Eric Miao <eric.miao@marvell.com>
* | | [ARM] pxa: add DM9000_PLATF_NO_EEPROM flag to CM-X... platformsMike Rapoport2009-03-092-2/+2
| | | | | | | | | | | | | | | Signed-off-by: Mike Rapoport <mike@compulab.co.il> Signed-off-by: Eric Miao <eric.miao@marvell.com>
* | | [ARM] pxa: separate definitions from pxa-regs.h and remove it finallyEric Miao2009-03-0917-96/+87
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The remaining registers are separated into: - <mach/regs-ost.h> - <mach/regs-rtc.h> - <mach/regs-intc.h> and then we can remove pxa-regs.h completely. Instead of #include this file, let's: 1. include the specific <mach/regs-*.h> with care (if that's absolutely necessary) 2. define the registers in the driver, make cleanly defined API to expose the register access to external with sufficient reason Signed-off-by: Eric Miao <eric.miao@marvell.com>
* | | [ARM] pxa: move pxa2xx chip selects definitions out of pxa-regs.hEric Miao2009-03-093-12/+20
| | | | | | | | | | | | | | | | | | | | | | | | The definitions of PXA_CS<x>_PHYS are really PXA2xx specific and should be moved out of pxa-regs.h. As an illustration, the PXA3xx static chip selects definitions are added into pxa3xx-regs.h. Signed-off-by: Eric Miao <eric.miao@marvell.com>
* | | [ARM] pxa: make lubbock specific debugging stuffs back into lubbock.cEric Miao2009-03-094-11/+20
| | | | | | | | | | | | | | | | | | | | | | | | This isn't perfect but at least solves the problem of pm.c's dependency on register definitions in <mach/lubbock.h>, which doesn't make much sense. Signed-off-by: Eric Miao <eric.miao@marvell.com>
* | | [ARM] pxa: move PCMCIA definitions out of pxa-regs.h into pxa2xx_base.cEric Miao2009-03-092-39/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Move the processor specific initialization (largely resources initialization) out of soc_common_drv_pcmcia_probe() into dedicated sa11xx_drv_pcmcia_probe() and __pxa2xx_drv_pcmcia_probe(). By doing this, we are now able to move the PCMCIA related definitions out of pxa-regs.h and back into pxa2xx_base.c. As a result, remove that reference of _PCMCIA1IO in arch/arm/mach-pxa/viper.c. Signed-off-by: Eric Miao <eric.miao@marvell.com>
* | | [ARM] pxa: remove unnecessary #include of pxa-regs.h and hardware.hEric Miao2009-03-094-5/+0
| | | | | | | | | | | | | | | | | | | | | pxa-regs.h and hardware.h are not intended for use directly in driver code, remove those unnecessary references. Signed-off-by: Eric Miao <eric.miao@marvell.com>
* | | [ARM] pxa: access GPIO registers by chip so to make it further genericEric Miao2009-03-093-170/+179
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Let's handle GPIOs by banks, each bank covers up to 32 GPIOs with one set of registers, and each set of registers start from different offsets. GPLR GPDR GPSR GPCR GRER GFER GEDR BANK 0 - 0x0000 0x000C 0x0018 0x0024 0x0030 0x003C 0x0048 BANK 1 - 0x0004 0x0010 0x001C 0x0028 0x0034 0x0040 0x004C BANK 2 - 0x0008 0x0014 0x0020 0x002C 0x0038 0x0044 0x0050 BANK 3 - 0x0100 0x010C 0x0118 0x0124 0x0130 0x013C 0x0148 BANK 4 - 0x0104 0x0110 0x011C 0x0128 0x0134 0x0140 0x014C BANK 5 - 0x0108 0x0114 0x0120 0x012C 0x0138 0x0144 0x0150 NOTE: BANK 3 is only available on PXA27x and later processors. BANK 4 and 5 are only available on PXA935 1. introduce GPIO_BANK(n) for the offset base of each bank 2. 'struct pxa_gpio_chip' is expanded to include IRQ edge and mask setings, and saved register values as well, and is dynamically allocated due to possible bank number ranging from 3 to 6 3. all accesses to GPIO registers are made through 'regbase' within 'pxa_gpio_chip', and register offset 4. introduce several inline functions to simplify the code a bit 5. change IRQ demux handler to base on gpio chips Signed-off-by: Mike Rapoport <mike@compulab.co.il> Signed-off-by: Eric Miao <eric.miao@marvell.com>
* | | [ARM] pxa: move declaration of 'pxa_last_gpio' into <mach/gpio.h>Eric Miao2009-03-093-4/+6
| | | | | | | | | | | | Signed-off-by: Eric Miao <eric.miao@marvell.com>
* | | [ARM] pxa: move GPIO register definitions into <mach/gpio.h>Eric Miao2009-03-099-87/+83
| | | | | | | | | | | | | | | | | | | | | | | | This makes gpio.c fully independent of pxa-regs.h (except for the virtual address of the registers). Signed-off-by: Mike Rapoport <mike@compulab.co.il> Signed-off-by: Eric Miao <eric.miao@marvell.com>
* | | [ARM] pxa: move pxa_gpio_mode() outside of generic gpio.cEric Miao2009-03-092-31/+31
| | | | | | | | | | | | | | | | | | | | | | | | Looks like we have to live with pxa_gpio_mode() for a while, giving its presence is actually making gpio.c not generic enough, let's move it temporarily outside before it can be fully purged. Signed-off-by: Eric Miao <eric.miao@marvell.com>