kirkwood: make MPP arrays static const
This saves stack and code memory for local copy, and consumes initialized data memory. For 22 of the 29 kirkwood-based boards, this results in a global saving of about 30 bytes. For 7 of them, it results in an increase of 6 to 14 bytes. Signed-off-by: Albert ARIBAUD <albert.u.boot@aribaud.net>
This commit is contained in:
parent
0a16ea5933
commit
9d86f0c30b
|
@ -31,7 +31,7 @@ static u32 kirkwood_variant(void)
|
||||||
#define MPP_CTRL(i) (KW_MPP_BASE + (i* 4))
|
#define MPP_CTRL(i) (KW_MPP_BASE + (i* 4))
|
||||||
#define MPP_NR_REGS (1 + MPP_MAX/8)
|
#define MPP_NR_REGS (1 + MPP_MAX/8)
|
||||||
|
|
||||||
void kirkwood_mpp_conf(u32 *mpp_list, u32 *mpp_save)
|
void kirkwood_mpp_conf(const u32 *mpp_list, u32 *mpp_save)
|
||||||
{
|
{
|
||||||
u32 mpp_ctrl[MPP_NR_REGS];
|
u32 mpp_ctrl[MPP_NR_REGS];
|
||||||
unsigned int variant_mask;
|
unsigned int variant_mask;
|
||||||
|
|
|
@ -312,6 +312,6 @@
|
||||||
|
|
||||||
#define MPP_MAX 49
|
#define MPP_MAX 49
|
||||||
|
|
||||||
void kirkwood_mpp_conf(u32 *mpp_list, u32 *mpp_save);
|
void kirkwood_mpp_conf(const u32 *mpp_list, u32 *mpp_save);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -39,7 +39,7 @@ int board_early_init_f(void)
|
||||||
NET2BIG_V2_OE_LOW, NET2BIG_V2_OE_HIGH);
|
NET2BIG_V2_OE_LOW, NET2BIG_V2_OE_HIGH);
|
||||||
|
|
||||||
/* Multi-Purpose Pins Functionality configuration */
|
/* Multi-Purpose Pins Functionality configuration */
|
||||||
u32 kwmpp_config[] = {
|
static const u32 kwmpp_config[] = {
|
||||||
MPP0_SPI_SCn,
|
MPP0_SPI_SCn,
|
||||||
MPP1_SPI_MOSI,
|
MPP1_SPI_MOSI,
|
||||||
MPP2_SPI_SCK,
|
MPP2_SPI_SCK,
|
||||||
|
|
|
@ -39,7 +39,7 @@ int board_early_init_f(void)
|
||||||
NETSPACE_V2_OE_LOW, NETSPACE_V2_OE_HIGH);
|
NETSPACE_V2_OE_LOW, NETSPACE_V2_OE_HIGH);
|
||||||
|
|
||||||
/* Multi-Purpose Pins Functionality configuration */
|
/* Multi-Purpose Pins Functionality configuration */
|
||||||
u32 kwmpp_config[] = {
|
static const u32 kwmpp_config[] = {
|
||||||
MPP0_SPI_SCn,
|
MPP0_SPI_SCn,
|
||||||
MPP1_SPI_MOSI,
|
MPP1_SPI_MOSI,
|
||||||
MPP2_SPI_SCK,
|
MPP2_SPI_SCK,
|
||||||
|
|
|
@ -46,7 +46,7 @@ int board_early_init_f(void)
|
||||||
DREAMPLUG_OE_LOW, DREAMPLUG_OE_HIGH);
|
DREAMPLUG_OE_LOW, DREAMPLUG_OE_HIGH);
|
||||||
|
|
||||||
/* Multi-Purpose Pins Functionality configuration */
|
/* Multi-Purpose Pins Functionality configuration */
|
||||||
u32 kwmpp_config[] = {
|
static const u32 kwmpp_config[] = {
|
||||||
MPP0_SPI_SCn, /* SPI Flash */
|
MPP0_SPI_SCn, /* SPI Flash */
|
||||||
MPP1_SPI_MOSI,
|
MPP1_SPI_MOSI,
|
||||||
MPP2_SPI_SCK,
|
MPP2_SPI_SCK,
|
||||||
|
|
|
@ -43,7 +43,7 @@ int board_early_init_f(void)
|
||||||
GURUPLUG_OE_LOW, GURUPLUG_OE_HIGH);
|
GURUPLUG_OE_LOW, GURUPLUG_OE_HIGH);
|
||||||
|
|
||||||
/* Multi-Purpose Pins Functionality configuration */
|
/* Multi-Purpose Pins Functionality configuration */
|
||||||
u32 kwmpp_config[] = {
|
static const u32 kwmpp_config[] = {
|
||||||
MPP0_NF_IO2,
|
MPP0_NF_IO2,
|
||||||
MPP1_NF_IO3,
|
MPP1_NF_IO3,
|
||||||
MPP2_NF_IO4,
|
MPP2_NF_IO4,
|
||||||
|
|
|
@ -45,7 +45,7 @@ int board_early_init_f(void)
|
||||||
MV88F6281GTW_GE_OE_LOW, MV88F6281GTW_GE_OE_HIGH);
|
MV88F6281GTW_GE_OE_LOW, MV88F6281GTW_GE_OE_HIGH);
|
||||||
|
|
||||||
/* Multi-Purpose Pins Functionality configuration */
|
/* Multi-Purpose Pins Functionality configuration */
|
||||||
u32 kwmpp_config[] = {
|
static const u32 kwmpp_config[] = {
|
||||||
MPP0_SPI_SCn,
|
MPP0_SPI_SCn,
|
||||||
MPP1_SPI_MOSI,
|
MPP1_SPI_MOSI,
|
||||||
MPP2_SPI_SCK,
|
MPP2_SPI_SCK,
|
||||||
|
|
|
@ -48,7 +48,7 @@ int board_early_init_f(void)
|
||||||
OPENRD_OE_LOW, OPENRD_OE_HIGH);
|
OPENRD_OE_LOW, OPENRD_OE_HIGH);
|
||||||
|
|
||||||
/* Multi-Purpose Pins Functionality configuration */
|
/* Multi-Purpose Pins Functionality configuration */
|
||||||
u32 kwmpp_config[] = {
|
static const u32 kwmpp_config[] = {
|
||||||
MPP0_NF_IO2,
|
MPP0_NF_IO2,
|
||||||
MPP1_NF_IO3,
|
MPP1_NF_IO3,
|
||||||
MPP2_NF_IO4,
|
MPP2_NF_IO4,
|
||||||
|
|
|
@ -44,7 +44,7 @@ int board_early_init_f(void)
|
||||||
RD6281A_OE_LOW, RD6281A_OE_HIGH);
|
RD6281A_OE_LOW, RD6281A_OE_HIGH);
|
||||||
|
|
||||||
/* Multi-Purpose Pins Functionality configuration */
|
/* Multi-Purpose Pins Functionality configuration */
|
||||||
u32 kwmpp_config[] = {
|
static const u32 kwmpp_config[] = {
|
||||||
MPP0_NF_IO2,
|
MPP0_NF_IO2,
|
||||||
MPP1_NF_IO3,
|
MPP1_NF_IO3,
|
||||||
MPP2_NF_IO4,
|
MPP2_NF_IO4,
|
||||||
|
|
|
@ -43,7 +43,7 @@ int board_early_init_f(void)
|
||||||
SHEEVAPLUG_OE_LOW, SHEEVAPLUG_OE_HIGH);
|
SHEEVAPLUG_OE_LOW, SHEEVAPLUG_OE_HIGH);
|
||||||
|
|
||||||
/* Multi-Purpose Pins Functionality configuration */
|
/* Multi-Purpose Pins Functionality configuration */
|
||||||
u32 kwmpp_config[] = {
|
static const u32 kwmpp_config[] = {
|
||||||
MPP0_NF_IO2,
|
MPP0_NF_IO2,
|
||||||
MPP1_NF_IO3,
|
MPP1_NF_IO3,
|
||||||
MPP2_NF_IO4,
|
MPP2_NF_IO4,
|
||||||
|
|
|
@ -47,7 +47,7 @@ int board_early_init_f(void)
|
||||||
DOCKSTAR_OE_LOW, DOCKSTAR_OE_HIGH);
|
DOCKSTAR_OE_LOW, DOCKSTAR_OE_HIGH);
|
||||||
|
|
||||||
/* Multi-Purpose Pins Functionality configuration */
|
/* Multi-Purpose Pins Functionality configuration */
|
||||||
u32 kwmpp_config[] = {
|
static const u32 kwmpp_config[] = {
|
||||||
MPP0_NF_IO2,
|
MPP0_NF_IO2,
|
||||||
MPP1_NF_IO3,
|
MPP1_NF_IO3,
|
||||||
MPP2_NF_IO4,
|
MPP2_NF_IO4,
|
||||||
|
|
|
@ -76,7 +76,7 @@ int board_early_init_f(void)
|
||||||
* Multi-Purpose Pins Functionality configuration
|
* Multi-Purpose Pins Functionality configuration
|
||||||
* These strappings are taken from the original vendor uboot port.
|
* These strappings are taken from the original vendor uboot port.
|
||||||
*/
|
*/
|
||||||
u32 kwmpp_config[] = {
|
static const u32 kwmpp_config[] = {
|
||||||
MPP0_SPI_SCn,
|
MPP0_SPI_SCn,
|
||||||
MPP1_SPI_MOSI,
|
MPP1_SPI_MOSI,
|
||||||
MPP2_SPI_SCK,
|
MPP2_SPI_SCK,
|
||||||
|
|
|
@ -45,7 +45,7 @@ int board_early_init_f(void)
|
||||||
POGO_E02_OE_LOW, POGO_E02_OE_HIGH);
|
POGO_E02_OE_LOW, POGO_E02_OE_HIGH);
|
||||||
|
|
||||||
/* Multi-Purpose Pins Functionality configuration */
|
/* Multi-Purpose Pins Functionality configuration */
|
||||||
u32 kwmpp_config[] = {
|
static const u32 kwmpp_config[] = {
|
||||||
MPP0_NF_IO2,
|
MPP0_NF_IO2,
|
||||||
MPP1_NF_IO3,
|
MPP1_NF_IO3,
|
||||||
MPP2_NF_IO4,
|
MPP2_NF_IO4,
|
||||||
|
|
|
@ -44,7 +44,7 @@ int board_early_init_f(void)
|
||||||
DNS325_OE_LOW, DNS325_OE_HIGH);
|
DNS325_OE_LOW, DNS325_OE_HIGH);
|
||||||
|
|
||||||
/* Multi-Purpose Pins Functionality configuration */
|
/* Multi-Purpose Pins Functionality configuration */
|
||||||
u32 kwmpp_config[] = {
|
static const u32 kwmpp_config[] = {
|
||||||
MPP0_NF_IO2,
|
MPP0_NF_IO2,
|
||||||
MPP1_NF_IO3,
|
MPP1_NF_IO3,
|
||||||
MPP2_NF_IO4,
|
MPP2_NF_IO4,
|
||||||
|
|
|
@ -41,7 +41,7 @@ int board_early_init_f(void)
|
||||||
ICONNECT_OE_LOW, ICONNECT_OE_HIGH);
|
ICONNECT_OE_LOW, ICONNECT_OE_HIGH);
|
||||||
|
|
||||||
/* Multi-Purpose Pins Functionality configuration */
|
/* Multi-Purpose Pins Functionality configuration */
|
||||||
u32 kwmpp_config[] = {
|
static const u32 kwmpp_config[] = {
|
||||||
MPP0_NF_IO2,
|
MPP0_NF_IO2,
|
||||||
MPP1_NF_IO3,
|
MPP1_NF_IO3,
|
||||||
MPP2_NF_IO4,
|
MPP2_NF_IO4,
|
||||||
|
|
|
@ -47,7 +47,7 @@ int board_early_init_f(void)
|
||||||
TK71_OE_LOW, TK71_OE_HIGH);
|
TK71_OE_LOW, TK71_OE_HIGH);
|
||||||
|
|
||||||
/* Multi-Purpose Pins Functionality configuration */
|
/* Multi-Purpose Pins Functionality configuration */
|
||||||
u32 kwmpp_config[] = {
|
static const u32 kwmpp_config[] = {
|
||||||
MPP0_NF_IO2,
|
MPP0_NF_IO2,
|
||||||
MPP1_NF_IO3,
|
MPP1_NF_IO3,
|
||||||
MPP2_NF_IO4,
|
MPP2_NF_IO4,
|
||||||
|
|
|
@ -54,7 +54,7 @@ DECLARE_GLOBAL_DATA_PTR;
|
||||||
#define MASK_RBI_DEFECT_16 0x01
|
#define MASK_RBI_DEFECT_16 0x01
|
||||||
|
|
||||||
/* Multi-Purpose Pins Functionality configuration */
|
/* Multi-Purpose Pins Functionality configuration */
|
||||||
u32 kwmpp_config[] = {
|
static const u32 kwmpp_config[] = {
|
||||||
MPP0_NF_IO2,
|
MPP0_NF_IO2,
|
||||||
MPP1_NF_IO3,
|
MPP1_NF_IO3,
|
||||||
MPP2_NF_IO4,
|
MPP2_NF_IO4,
|
||||||
|
|
|
@ -45,7 +45,7 @@ int board_early_init_f(void)
|
||||||
/* Set SATA activity LEDs to default off */
|
/* Set SATA activity LEDs to default off */
|
||||||
writel(MVSATAHC_LED_POLARITY_CTRL, MVSATAHC_LED_CONF_REG);
|
writel(MVSATAHC_LED_POLARITY_CTRL, MVSATAHC_LED_CONF_REG);
|
||||||
/* Multi-Purpose Pins Functionality configuration */
|
/* Multi-Purpose Pins Functionality configuration */
|
||||||
u32 kwmpp_config[] = {
|
static const u32 kwmpp_config[] = {
|
||||||
MPP0_NF_IO2,
|
MPP0_NF_IO2,
|
||||||
MPP1_NF_IO3,
|
MPP1_NF_IO3,
|
||||||
MPP2_NF_IO4,
|
MPP2_NF_IO4,
|
||||||
|
|
|
@ -41,7 +41,10 @@ struct spi_slave *spi_setup_slave(unsigned int bus, unsigned int cs,
|
||||||
{
|
{
|
||||||
struct spi_slave *slave;
|
struct spi_slave *slave;
|
||||||
u32 data;
|
u32 data;
|
||||||
u32 kwspi_mpp_config[] = { 0, 0 };
|
static const u32 kwspi_mpp_config[2][2] = {
|
||||||
|
{ MPP0_SPI_SCn, 0 }, /* if cs == 0 */
|
||||||
|
{ MPP7_SPI_SCn, 0 } /* if cs != 0 */
|
||||||
|
};
|
||||||
|
|
||||||
if (!spi_cs_is_valid(bus, cs))
|
if (!spi_cs_is_valid(bus, cs))
|
||||||
return NULL;
|
return NULL;
|
||||||
|
@ -68,12 +71,7 @@ struct spi_slave *spi_setup_slave(unsigned int bus, unsigned int cs,
|
||||||
writel(KWSPI_IRQMASK, &spireg->irq_mask);
|
writel(KWSPI_IRQMASK, &spireg->irq_mask);
|
||||||
|
|
||||||
/* program mpp registers to select SPI_CSn */
|
/* program mpp registers to select SPI_CSn */
|
||||||
if (cs) {
|
kirkwood_mpp_conf(kwspi_mpp_config[cs ? 1 : 0], cs_spi_mpp_back);
|
||||||
kwspi_mpp_config[0] = MPP7_SPI_SCn;
|
|
||||||
} else {
|
|
||||||
kwspi_mpp_config[0] = MPP0_SPI_SCn;
|
|
||||||
}
|
|
||||||
kirkwood_mpp_conf(kwspi_mpp_config, cs_spi_mpp_back);
|
|
||||||
|
|
||||||
return slave;
|
return slave;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue