Commit 0d4fdbb6 authored by Magnus Damm's avatar Magnus Damm Committed by Paul Mundt

sh: rework mode pin code

This patch reworks the mode pin code to keep the pin
definitions in one place. The mode pins values are now
the value of the bit instead of bit number.

With this patch in place the sh7785 header file contains
mode pin comments. The sh7785 clock code and the sh7785lcr
board code are updated to reflect the new shared mode pins.
Signed-off-by: default avatarMagnus Damm <damm@igel.co.jp>
Signed-off-by: default avatarPaul Mundt <lethal@linux-sh.org>
parent 2693e274
...@@ -330,13 +330,13 @@ static int sh7785lcr_mode_pins(void) ...@@ -330,13 +330,13 @@ static int sh7785lcr_mode_pins(void)
* If you change these dip switches then you will need to * If you change these dip switches then you will need to
* adjust the values below as well. * adjust the values below as well.
*/ */
value |= 1 << MODE_PIN_MODE4; /* Clock Mode 16 */ value |= MODE_PIN4; /* Clock Mode 16 */
value |= 1 << MODE_PIN_MODE5; /* 32-bit Area0 bus width */ value |= MODE_PIN5; /* 32-bit Area0 bus width */
value |= 1 << MODE_PIN_MODE6; /* 32-bit Area0 bus width */ value |= MODE_PIN6; /* 32-bit Area0 bus width */
value |= 1 << MODE_PIN_MODE7; /* Area 0 SRAM interface [fixed] */ value |= MODE_PIN7; /* Area 0 SRAM interface [fixed] */
value |= 1 << MODE_PIN_MODE8; /* Little Endian */ value |= MODE_PIN8; /* Little Endian */
value |= 1 << MODE_PIN_MODE9; /* Master Mode */ value |= MODE_PIN9; /* Master Mode */
value |= 1 << MODE_PIN_MODE14; /* No PLL step-up */ value |= MODE_PIN14; /* No PLL step-up */
return value; return value;
} }
......
...@@ -95,6 +95,23 @@ const char *get_cpu_subtype(struct sh_cpuinfo *c); ...@@ -95,6 +95,23 @@ const char *get_cpu_subtype(struct sh_cpuinfo *c);
extern const struct seq_operations cpuinfo_op; extern const struct seq_operations cpuinfo_op;
/* processor boot mode configuration */ /* processor boot mode configuration */
#define MODE_PIN0 (1 << 0)
#define MODE_PIN1 (1 << 1)
#define MODE_PIN2 (1 << 2)
#define MODE_PIN3 (1 << 3)
#define MODE_PIN4 (1 << 4)
#define MODE_PIN5 (1 << 5)
#define MODE_PIN6 (1 << 6)
#define MODE_PIN7 (1 << 7)
#define MODE_PIN8 (1 << 8)
#define MODE_PIN9 (1 << 9)
#define MODE_PIN10 (1 << 10)
#define MODE_PIN11 (1 << 11)
#define MODE_PIN12 (1 << 12)
#define MODE_PIN13 (1 << 13)
#define MODE_PIN14 (1 << 14)
#define MODE_PIN15 (1 << 15)
int generic_mode_pins(void); int generic_mode_pins(void);
int test_mode_pin(int pin); int test_mode_pin(int pin);
......
#ifndef __ASM_SH7785_H__ #ifndef __ASM_SH7785_H__
#define __ASM_SH7785_H__ #define __ASM_SH7785_H__
/* Boot Mode Pins, more information in sh7785 manual Rev.1.00, page 1628 */ /* Boot Mode Pins:
enum { *
MODE_PIN_MODE0, /* CPG - Initial Pck/Bck Frequency [FRQMR1] */ * MODE0: CPG - Initial Pck/Bck Frequency [FRQMR1]
MODE_PIN_MODE1, /* CPG - Initial Uck/SHck/DDRck Frequency [FRQMR1] */ * MODE1: CPG - Initial Uck/SHck/DDRck Frequency [FRQMR1]
MODE_PIN_MODE2, /* CPG - Reserved (L: Normal operation) */ * MODE2: CPG - Reserved (L: Normal operation)
MODE_PIN_MODE3, /* CPG - Reserved (L: Normal operation) */ * MODE3: CPG - Reserved (L: Normal operation)
MODE_PIN_MODE4, /* CPG - Initial PLL setting (72x/36x) */ * MODE4: CPG - Initial PLL setting (72x/36x)
MODE_PIN_MODE5, /* LBSC - Area0 Memory Type / Bus Width [CS0BCR.8] */ * MODE5: LBSC - Area0 Memory Type / Bus Width [CS0BCR.8]
MODE_PIN_MODE6, /* LBSC - Area0 Memory Type / Bus Width [CS0BCR.9] */ * MODE6: LBSC - Area0 Memory Type / Bus Width [CS0BCR.9]
MODE_PIN_MODE7, /* LBSC - Area0 Memory Type / Bus Width [CS0BCR.3] */ * MODE7: LBSC - Area0 Memory Type / Bus Width [CS0BCR.3]
MODE_PIN_MODE8, /* LBSC - Endian Mode (L: Big, H: Little) [BCR.31] */ * MODE8: LBSC - Endian Mode (L: Big, H: Little) [BCR.31]
MODE_PIN_MODE9, /* LBSC - Master/Slave Mode (L: Slave) [BCR.30] */ * MODE9: LBSC - Master/Slave Mode (L: Slave) [BCR.30]
MODE_PIN_MODE10, /* CPG - Clock Input (L: Ext Clk, H: Crystal) */ * MODE10: CPG - Clock Input (L: Ext Clk, H: Crystal)
MODE_PIN_MODE11, /* PCI - Pin Mode (LL: PCI host, LH: PCI slave) */ * MODE11: PCI - Pin Mode (LL: PCI host, LH: PCI slave)
MODE_PIN_MODE12, /* PCI - Pin Mode (HL: Local bus, HH: DU) */ * MODE12: PCI - Pin Mode (HL: Local bus, HH: DU)
MODE_PIN_MODE13, /* Boot Address Mode (L: 29-bit, H: 32-bit) */ * MODE13: Boot Address Mode (L: 29-bit, H: 32-bit)
MODE_PIN_MODE14, /* Reserved (H: Normal operation) */ * MODE14: Reserved (H: Normal operation)
MODE_PIN_MPMD, /* Emulation Mode (L: Emulation mode, H: LSI mode) */ *
}; * More information in sh7785 manual Rev.1.00, page 1628.
*/
/* Pin Function Controller: /* Pin Function Controller:
* GPIO_FN_xx - GPIO used to select pin function * GPIO_FN_xx - GPIO used to select pin function
......
...@@ -32,7 +32,7 @@ static unsigned long pll_recalc(struct clk *clk) ...@@ -32,7 +32,7 @@ static unsigned long pll_recalc(struct clk *clk)
{ {
int multiplier; int multiplier;
multiplier = test_mode_pin(MODE_PIN_MODE4) ? 36 : 72; multiplier = test_mode_pin(MODE_PIN4) ? 36 : 72;
return clk->parent->rate * multiplier; return clk->parent->rate * multiplier;
} }
......
...@@ -429,7 +429,7 @@ int generic_mode_pins(void) ...@@ -429,7 +429,7 @@ int generic_mode_pins(void)
int test_mode_pin(int pin) int test_mode_pin(int pin)
{ {
return sh_mv.mv_mode_pins() & (1 << pin); return sh_mv.mv_mode_pins() & pin;
} }
static const char *cpu_name[] = { static const char *cpu_name[] = {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment