Release 4.12 drivers/staging/sm750fb/ddk750_power.c
#include "ddk750_chip.h"
#include "ddk750_reg.h"
#include "ddk750_power.h"
void ddk750_set_dpms(DPMS_t state)
{
unsigned int value;
if (sm750_get_chip_type() == SM750LE) {
value = peek32(CRT_DISPLAY_CTRL) & ~CRT_DISPLAY_CTRL_DPMS_MASK;
value |= (state << CRT_DISPLAY_CTRL_DPMS_SHIFT);
poke32(CRT_DISPLAY_CTRL, value);
} else {
value = peek32(SYSTEM_CTRL);
value = (value & ~SYSTEM_CTRL_DPMS_MASK) | state;
poke32(SYSTEM_CTRL, value);
}
}
Contributors
Person | Tokens | Prop | Commits | CommitProp |
Sudip Mukherjee | 51 | 68.92% | 1 | 16.67% |
Mike Rapoport | 17 | 22.97% | 2 | 33.33% |
Matthieu Simon | 4 | 5.41% | 1 | 16.67% |
Moshe Green | 1 | 1.35% | 1 | 16.67% |
Elise Lennion | 1 | 1.35% | 1 | 16.67% |
Total | 74 | 100.00% | 6 | 100.00% |
static unsigned int get_power_mode(void)
{
if (sm750_get_chip_type() == SM750LE)
return 0;
return peek32(POWER_MODE_CTRL) & POWER_MODE_CTRL_MODE_MASK;
}
Contributors
Person | Tokens | Prop | Commits | CommitProp |
Sudip Mukherjee | 18 | 66.67% | 1 | 14.29% |
Mike Rapoport | 3 | 11.11% | 2 | 28.57% |
Supriya Karanth | 3 | 11.11% | 1 | 14.29% |
Elise Lennion | 1 | 3.70% | 1 | 14.29% |
Matthieu Simon | 1 | 3.70% | 1 | 14.29% |
Moshe Green | 1 | 3.70% | 1 | 14.29% |
Total | 27 | 100.00% | 7 | 100.00% |
/*
* SM50x can operate in one of three modes: 0, 1 or Sleep.
* On hardware reset, power mode 0 is default.
*/
void sm750_set_power_mode(unsigned int mode)
{
unsigned int ctrl = 0;
ctrl = peek32(POWER_MODE_CTRL) & ~POWER_MODE_CTRL_MODE_MASK;
if (sm750_get_chip_type() == SM750LE)
return;
switch (mode) {
case POWER_MODE_CTRL_MODE_MODE0:
ctrl |= POWER_MODE_CTRL_MODE_MODE0;
break;
case POWER_MODE_CTRL_MODE_MODE1:
ctrl |= POWER_MODE_CTRL_MODE_MODE1;
break;
case POWER_MODE_CTRL_MODE_SLEEP:
ctrl |= POWER_MODE_CTRL_MODE_SLEEP;
break;
default:
break;
}
/* Set up other fields in Power Control Register */
if (mode == POWER_MODE_CTRL_MODE_SLEEP) {
ctrl &= ~POWER_MODE_CTRL_OSC_INPUT;
#ifdef VALIDATION_CHIP
ctrl &= ~POWER_MODE_CTRL_336CLK;
#endif
} else {
ctrl |= POWER_MODE_CTRL_OSC_INPUT;
#ifdef VALIDATION_CHIP
ctrl |= POWER_MODE_CTRL_336CLK;
#endif
}
/* Program new power mode. */
poke32(POWER_MODE_CTRL, ctrl);
}
Contributors
Person | Tokens | Prop | Commits | CommitProp |
Sudip Mukherjee | 73 | 64.60% | 1 | 14.29% |
Mike Rapoport | 23 | 20.35% | 2 | 28.57% |
Elise Lennion | 13 | 11.50% | 1 | 14.29% |
Matthieu Simon | 2 | 1.77% | 1 | 14.29% |
Moshe Green | 1 | 0.88% | 1 | 14.29% |
Arnd Bergmann | 1 | 0.88% | 1 | 14.29% |
Total | 113 | 100.00% | 7 | 100.00% |
void sm750_set_current_gate(unsigned int gate)
{
if (get_power_mode() == POWER_MODE_CTRL_MODE_MODE1)
poke32(MODE1_GATE, gate);
else
poke32(MODE0_GATE, gate);
}
Contributors
Person | Tokens | Prop | Commits | CommitProp |
Sudip Mukherjee | 17 | 54.84% | 1 | 20.00% |
Elise Lennion | 11 | 35.48% | 2 | 40.00% |
Matthieu Simon | 2 | 6.45% | 1 | 20.00% |
Arnd Bergmann | 1 | 3.23% | 1 | 20.00% |
Total | 31 | 100.00% | 5 | 100.00% |
/*
* This function enable/disable the 2D engine.
*/
void sm750_enable_2d_engine(unsigned int enable)
{
u32 gate;
gate = peek32(CURRENT_GATE);
if (enable)
gate |= (CURRENT_GATE_DE | CURRENT_GATE_CSC);
else
gate &= ~(CURRENT_GATE_DE | CURRENT_GATE_CSC);
sm750_set_current_gate(gate);
}
Contributors
Person | Tokens | Prop | Commits | CommitProp |
Sudip Mukherjee | 29 | 63.04% | 1 | 20.00% |
Mike Rapoport | 13 | 28.26% | 1 | 20.00% |
Arnd Bergmann | 2 | 4.35% | 1 | 20.00% |
Amitoj Kaur Chawla | 1 | 2.17% | 1 | 20.00% |
Matthieu Simon | 1 | 2.17% | 1 | 20.00% |
Total | 46 | 100.00% | 5 | 100.00% |
void sm750_enable_dma(unsigned int enable)
{
u32 gate;
/* Enable DMA Gate */
gate = peek32(CURRENT_GATE);
if (enable)
gate |= CURRENT_GATE_DMA;
else
gate &= ~CURRENT_GATE_DMA;
sm750_set_current_gate(gate);
}
Contributors
Person | Tokens | Prop | Commits | CommitProp |
Sudip Mukherjee | 30 | 76.92% | 1 | 20.00% |
Mike Rapoport | 5 | 12.82% | 1 | 20.00% |
Arnd Bergmann | 2 | 5.13% | 1 | 20.00% |
Amitoj Kaur Chawla | 1 | 2.56% | 1 | 20.00% |
Matthieu Simon | 1 | 2.56% | 1 | 20.00% |
Total | 39 | 100.00% | 5 | 100.00% |
/*
* This function enable/disable the GPIO Engine
*/
void sm750_enable_gpio(unsigned int enable)
{
u32 gate;
/* Enable GPIO Gate */
gate = peek32(CURRENT_GATE);
if (enable)
gate |= CURRENT_GATE_GPIO;
else
gate &= ~CURRENT_GATE_GPIO;
sm750_set_current_gate(gate);
}
Contributors
Person | Tokens | Prop | Commits | CommitProp |
Sudip Mukherjee | 30 | 76.92% | 1 | 20.00% |
Mike Rapoport | 5 | 12.82% | 1 | 20.00% |
Arnd Bergmann | 2 | 5.13% | 1 | 20.00% |
Matthieu Simon | 1 | 2.56% | 1 | 20.00% |
Amitoj Kaur Chawla | 1 | 2.56% | 1 | 20.00% |
Total | 39 | 100.00% | 5 | 100.00% |
/*
* This function enable/disable the I2C Engine
*/
void sm750_enable_i2c(unsigned int enable)
{
u32 gate;
/* Enable I2C Gate */
gate = peek32(CURRENT_GATE);
if (enable)
gate |= CURRENT_GATE_I2C;
else
gate &= ~CURRENT_GATE_I2C;
sm750_set_current_gate(gate);
}
Contributors
Person | Tokens | Prop | Commits | CommitProp |
Sudip Mukherjee | 30 | 76.92% | 1 | 20.00% |
Mike Rapoport | 5 | 12.82% | 1 | 20.00% |
Arnd Bergmann | 2 | 5.13% | 1 | 20.00% |
Matthieu Simon | 1 | 2.56% | 1 | 20.00% |
Amitoj Kaur Chawla | 1 | 2.56% | 1 | 20.00% |
Total | 39 | 100.00% | 5 | 100.00% |
Overall Contributors
Person | Tokens | Prop | Commits | CommitProp |
Sudip Mukherjee | 290 | 68.88% | 1 | 6.25% |
Mike Rapoport | 71 | 16.86% | 6 | 37.50% |
Elise Lennion | 27 | 6.41% | 4 | 25.00% |
Matthieu Simon | 13 | 3.09% | 1 | 6.25% |
Arnd Bergmann | 10 | 2.38% | 1 | 6.25% |
Amitoj Kaur Chawla | 4 | 0.95% | 1 | 6.25% |
Supriya Karanth | 3 | 0.71% | 1 | 6.25% |
Moshe Green | 3 | 0.71% | 1 | 6.25% |
Total | 421 | 100.00% | 16 | 100.00% |
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.