1
0
Fork 0

staging: sm750fb: use BIT macro for CURRENT_GATE single-bit fields

Replace complex definition of CURRENT_GATE register fields with BIT() macro
and use open-coded implementation for register manipulations.

Signed-off-by: Mike Rapoport <mike.rapoport@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
hifive-unleashed-5.1
Mike Rapoport 2016-01-17 20:04:25 +02:00 committed by Greg Kroah-Hartman
parent 5538d5c8bd
commit 90946e5293
3 changed files with 20 additions and 45 deletions

View File

@ -205,8 +205,7 @@ int ddk750_initHw(initchip_param_t *pInitParam)
/* Enable display power gate & LOCALMEM power gate*/
reg = PEEK32(CURRENT_GATE);
reg = FIELD_SET(reg, CURRENT_GATE, DISPLAY, ON);
reg = FIELD_SET(reg, CURRENT_GATE, LOCALMEM, ON);
reg |= (CURRENT_GATE_DISPLAY | CURRENT_GATE_LOCALMEM);
setCurrentGate(reg);
if (getChipType() != SM750LE) {

View File

@ -112,11 +112,9 @@ void enable2DEngine(unsigned int enable)
gate = PEEK32(CURRENT_GATE);
if (enable) {
gate = FIELD_SET(gate, CURRENT_GATE, DE, ON);
gate = FIELD_SET(gate, CURRENT_GATE, CSC, ON);
gate |= (CURRENT_GATE_DE | CURRENT_GATE_CSC);
} else {
gate = FIELD_SET(gate, CURRENT_GATE, DE, OFF);
gate = FIELD_SET(gate, CURRENT_GATE, CSC, OFF);
gate &= ~(CURRENT_GATE_DE | CURRENT_GATE_CSC);
}
setCurrentGate(gate);
@ -129,9 +127,9 @@ void enableDMA(unsigned int enable)
/* Enable DMA Gate */
gate = PEEK32(CURRENT_GATE);
if (enable)
gate = FIELD_SET(gate, CURRENT_GATE, DMA, ON);
gate |= CURRENT_GATE_DMA;
else
gate = FIELD_SET(gate, CURRENT_GATE, DMA, OFF);
gate &= ~CURRENT_GATE_DMA;
setCurrentGate(gate);
}
@ -146,9 +144,9 @@ void enableGPIO(unsigned int enable)
/* Enable GPIO Gate */
gate = PEEK32(CURRENT_GATE);
if (enable)
gate = FIELD_SET(gate, CURRENT_GATE, GPIO, ON);
gate |= CURRENT_GATE_GPIO;
else
gate = FIELD_SET(gate, CURRENT_GATE, GPIO, OFF);
gate &= ~CURRENT_GATE_GPIO;
setCurrentGate(gate);
}
@ -163,9 +161,9 @@ void enableI2C(unsigned int enable)
/* Enable I2C Gate */
gate = PEEK32(CURRENT_GATE);
if (enable)
gate = FIELD_SET(gate, CURRENT_GATE, I2C, ON);
gate |= CURRENT_GATE_I2C;
else
gate = FIELD_SET(gate, CURRENT_GATE, I2C, OFF);
gate &= ~CURRENT_GATE_I2C;
setCurrentGate(gate);
}

View File

@ -415,39 +415,17 @@
#define CURRENT_GATE_M2XCLK_DIV_3 2
#define CURRENT_GATE_M2XCLK_DIV_4 3
#endif
#define CURRENT_GATE_VGA 10:10
#define CURRENT_GATE_VGA_OFF 0
#define CURRENT_GATE_VGA_ON 1
#define CURRENT_GATE_PWM 9:9
#define CURRENT_GATE_PWM_OFF 0
#define CURRENT_GATE_PWM_ON 1
#define CURRENT_GATE_I2C 8:8
#define CURRENT_GATE_I2C_OFF 0
#define CURRENT_GATE_I2C_ON 1
#define CURRENT_GATE_SSP 7:7
#define CURRENT_GATE_SSP_OFF 0
#define CURRENT_GATE_SSP_ON 1
#define CURRENT_GATE_GPIO 6:6
#define CURRENT_GATE_GPIO_OFF 0
#define CURRENT_GATE_GPIO_ON 1
#define CURRENT_GATE_ZVPORT 5:5
#define CURRENT_GATE_ZVPORT_OFF 0
#define CURRENT_GATE_ZVPORT_ON 1
#define CURRENT_GATE_CSC 4:4
#define CURRENT_GATE_CSC_OFF 0
#define CURRENT_GATE_CSC_ON 1
#define CURRENT_GATE_DE 3:3
#define CURRENT_GATE_DE_OFF 0
#define CURRENT_GATE_DE_ON 1
#define CURRENT_GATE_DISPLAY 2:2
#define CURRENT_GATE_DISPLAY_OFF 0
#define CURRENT_GATE_DISPLAY_ON 1
#define CURRENT_GATE_LOCALMEM 1:1
#define CURRENT_GATE_LOCALMEM_OFF 0
#define CURRENT_GATE_LOCALMEM_ON 1
#define CURRENT_GATE_DMA 0:0
#define CURRENT_GATE_DMA_OFF 0
#define CURRENT_GATE_DMA_ON 1
#define CURRENT_GATE_VGA BIT(10)
#define CURRENT_GATE_PWM BIT(9)
#define CURRENT_GATE_I2C BIT(8)
#define CURRENT_GATE_SSP BIT(7)
#define CURRENT_GATE_GPIO BIT(6)
#define CURRENT_GATE_ZVPORT BIT(5)
#define CURRENT_GATE_CSC BIT(4)
#define CURRENT_GATE_DE BIT(3)
#define CURRENT_GATE_DISPLAY BIT(2)
#define CURRENT_GATE_LOCALMEM BIT(1)
#define CURRENT_GATE_DMA BIT(0)
#define MODE0_GATE 0x000044
#define MODE0_GATE_MCLK 15:14