Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Functions
mpc52xx.h File Reference
#include <asm/types.h>
#include <asm/prom.h>
#include <asm/mpc5xxx.h>
#include <linux/suspend.h>

Go to the source code of this file.

Data Structures

struct  mpc52xx_mmap_ctl
 
struct  mpc52xx_sdram
 
struct  mpc52xx_sdma
 
struct  mpc52xx_gpt
 
struct  mpc52xx_gpio
 
struct  mpc52xx_gpio_wkup
 
struct  mpc52xx_xlb
 
struct  mpc52xx_cdm
 
struct  mpc52xx_intr
 
struct  mpc52xx_lpbfifo_request
 

Macros

#define MPC5200_SVR   0x80110010
 
#define MPC5200_SVR_MASK   0xfffffff0
 
#define MPC5200B_SVR   0x80110020
 
#define MPC5200B_SVR_MASK   0xfffffff0
 
#define MPC52xx_GPIO_PSC_CONFIG_UART_WITHOUT_CD   4
 
#define MPC52xx_GPIO_PSC_CONFIG_UART_WITH_CD   5
 
#define MPC52xx_GPIO_PCI_DIS   (1<<15)
 
#define MPC52xx_XLB_CFG_PLDIS   (1 << 31)
 
#define MPC52xx_XLB_CFG_SNOOP   (1 << 15)
 
#define MPC52XX_LPBFIFO_FLAG_READ   (0)
 
#define MPC52XX_LPBFIFO_FLAG_WRITE   (1<<0)
 
#define MPC52XX_LPBFIFO_FLAG_NO_INCREMENT   (1<<1)
 
#define MPC52XX_LPBFIFO_FLAG_NO_DMA   (1<<2)
 
#define MPC52XX_LPBFIFO_FLAG_POLL_DMA   (1<<3)
 

Functions

void mpc5200_setup_xlb_arbiter (void)
 
void mpc52xx_declare_of_platform_devices (void)
 
int mpc5200_psc_ac97_gpio_reset (int psc_number)
 
void mpc52xx_map_common_devices (void)
 
int mpc52xx_set_psc_clkdiv (int psc_id, int clkdiv)
 
unsigned int mpc52xx_get_xtal_freq (struct device_node *node)
 
void mpc52xx_restart (char *cmd)
 
struct mpc52xx_gpt_privmpc52xx_gpt_from_irq (int irq)
 
int mpc52xx_gpt_start_timer (struct mpc52xx_gpt_priv *gpt, u64 period, int continuous)
 
u64 mpc52xx_gpt_timer_period (struct mpc52xx_gpt_priv *gpt)
 
int mpc52xx_gpt_stop_timer (struct mpc52xx_gpt_priv *gpt)
 
int mpc52xx_lpbfifo_submit (struct mpc52xx_lpbfifo_request *req)
 
void mpc52xx_lpbfifo_abort (struct mpc52xx_lpbfifo_request *req)
 
void mpc52xx_lpbfifo_poll (void)
 
int mpc52xx_lpbfifo_start_xfer (struct mpc52xx_lpbfifo_request *req)
 
void mpc52xx_init_irq (void)
 
unsigned int mpc52xx_get_irq (void)
 

Macro Definition Documentation

#define MPC5200_SVR   0x80110010

Definition at line 25 of file mpc52xx.h.

#define MPC5200_SVR_MASK   0xfffffff0

Definition at line 26 of file mpc52xx.h.

#define MPC5200B_SVR   0x80110020

Definition at line 27 of file mpc52xx.h.

#define MPC5200B_SVR_MASK   0xfffffff0

Definition at line 28 of file mpc52xx.h.

#define MPC52xx_GPIO_PCI_DIS   (1<<15)

Definition at line 149 of file mpc52xx.h.

#define MPC52xx_GPIO_PSC_CONFIG_UART_WITH_CD   5

Definition at line 148 of file mpc52xx.h.

#define MPC52xx_GPIO_PSC_CONFIG_UART_WITHOUT_CD   4

Definition at line 147 of file mpc52xx.h.

#define MPC52XX_LPBFIFO_FLAG_NO_DMA   (1<<2)

Definition at line 292 of file mpc52xx.h.

#define MPC52XX_LPBFIFO_FLAG_NO_INCREMENT   (1<<1)

Definition at line 291 of file mpc52xx.h.

#define MPC52XX_LPBFIFO_FLAG_POLL_DMA   (1<<3)

Definition at line 293 of file mpc52xx.h.

#define MPC52XX_LPBFIFO_FLAG_READ   (0)

Definition at line 289 of file mpc52xx.h.

#define MPC52XX_LPBFIFO_FLAG_WRITE   (1<<0)

Definition at line 290 of file mpc52xx.h.

#define MPC52xx_XLB_CFG_PLDIS   (1 << 31)

Definition at line 193 of file mpc52xx.h.

#define MPC52xx_XLB_CFG_SNOOP   (1 << 15)

Definition at line 194 of file mpc52xx.h.

Function Documentation

int mpc5200_psc_ac97_gpio_reset ( int  psc_number)

mpc5200_psc_ac97_gpio_reset: Use gpio pins to reset the ac97 bus

: psc number to reset (only psc 1 and 2 support ac97)

Definition at line 279 of file mpc52xx_common.c.

void mpc5200_setup_xlb_arbiter ( void  )

Definition at line 57 of file mpc52xx_common.c.

void mpc52xx_declare_of_platform_devices ( void  )

mpc52xx_declare_of_platform_devices: register internal devices and children of the localplus bus to the of_platform bus.

Definition at line 101 of file mpc52xx_common.c.

unsigned int mpc52xx_get_irq ( void  )

mpc52xx_get_irq - Get pending interrupt number hook function

Called by the interrupt handler to determine what IRQ handler needs to be executed.

Status of pending interrupts is determined by reading the encoded status register. The encoded status register has three fields; one for each of the types of interrupts defined by the controller - 'critical', 'main' and 'peripheral'. This function reads the status register and returns the IRQ number associated with the highest priority pending interrupt. 'Critical' interrupts have the highest priority, followed by 'main' interrupts, and then 'peripheral'.

The mpc5200 interrupt controller can be configured to boost the priority of individual 'peripheral' interrupts. If this is the case then a special value will appear in either the crit or main fields indicating a high or medium priority peripheral irq has occurred.

This function checks each of the 3 irq request fields and returns the first pending interrupt that it finds.

This function also identifies a 4th type of interrupt; 'bestcomm'. Each bestcomm DMA task can raise the bestcomm peripheral interrupt. When this occurs at task-specific IRQ# is decoded so that each task can have its own IRQ handler.

Definition at line 487 of file mpc52xx_pic.c.

unsigned int mpc52xx_get_xtal_freq ( struct device_node node)

mpc52xx_get_xtal_freq - Get SYS_XTAL_IN frequency for a device

: device node

Returns the frequency of the external oscillator clock connected to the SYS_XTAL_IN pin, or 0 if it cannot be determined.

Definition at line 214 of file mpc52xx_common.c.

struct mpc52xx_gpt_priv* mpc52xx_gpt_from_irq ( int  irq)
read

mpc52xx_gpt_from_irq - Return the GPT device associated with an IRQ number : irq of timer.

Definition at line 376 of file mpc52xx_gpt.c.

int mpc52xx_gpt_start_timer ( struct mpc52xx_gpt_priv gpt,
u64  period,
int  continuous 
)

mpc52xx_gpt_start_timer - Set and enable the GPT timer : Pointer to gpt private data structure : period of timer in ns; max. ~130s @ 33MHz IPB clock : set to 1 to make timer continuous free running

An interrupt will be generated every time the timer fires

Definition at line 466 of file mpc52xx_gpt.c.

int mpc52xx_gpt_stop_timer ( struct mpc52xx_gpt_priv gpt)

mpc52xx_gpt_stop_timer - Stop a gpt : Pointer to gpt private data structure

Returns an error if attempting to stop a wdt

Definition at line 479 of file mpc52xx_gpt.c.

u64 mpc52xx_gpt_timer_period ( struct mpc52xx_gpt_priv gpt)

mpc52xx_gpt_timer_period - Read the timer period : Pointer to gpt private data structure

Returns the timer period in ns

Definition at line 502 of file mpc52xx_gpt.c.

void mpc52xx_init_irq ( void  )

mpc52xx_init_irq - Initialize and register with the virq subsystem

Hook for setting up IRQs on an mpc5200 system. A pointer to this function is to be put into the machine definition structure.

This function searches the device tree for an MPC5200 interrupt controller, initializes it, and registers it with the virq subsystem.

Definition at line 402 of file mpc52xx_pic.c.

void mpc52xx_lpbfifo_abort ( struct mpc52xx_lpbfifo_request req)

Definition at line 457 of file mpc52xx_lpbfifo.c.

void mpc52xx_lpbfifo_poll ( void  )

mpc52xx_lpbfifo_bcom_poll - Poll for DMA completion

Definition at line 377 of file mpc52xx_lpbfifo.c.

int mpc52xx_lpbfifo_start_xfer ( struct mpc52xx_lpbfifo_request req)

Definition at line 425 of file mpc52xx_lpbfifo.c.

int mpc52xx_lpbfifo_submit ( struct mpc52xx_lpbfifo_request req)

mpc52xx_lpbfifo_submit - Submit an LPB FIFO transfer request. : Pointer to request structure

Definition at line 397 of file mpc52xx_lpbfifo.c.

void mpc52xx_map_common_devices ( void  )

mpc52xx_map_common_devices: iomap devices required by common code

Definition at line 135 of file mpc52xx_common.c.

void mpc52xx_restart ( char cmd)

mpc52xx_restart: ppc_md->restart hook for mpc5200 using the watchdog timer

Definition at line 247 of file mpc52xx_common.c.

int mpc52xx_set_psc_clkdiv ( int  psc_id,
int  clkdiv 
)

mpc52xx_set_psc_clkdiv: Set clock divider in the CDM for PSC ports

: id of psc port; must be 1,2,3 or 6 : clock divider value to put into CDM PSC register.

Definition at line 174 of file mpc52xx_common.c.