mirror of
https://github.com/CTCaer/hekate
synced 2024-12-22 19:31:12 +00:00
bdk: regulator 5V: improve management per SKU
This commit is contained in:
parent
2aa251c44f
commit
0b2c2aa564
1 changed files with 14 additions and 18 deletions
|
@ -27,6 +27,8 @@ static bool usb_src = false;
|
||||||
|
|
||||||
void regulator_5v_enable(u8 dev)
|
void regulator_5v_enable(u8 dev)
|
||||||
{
|
{
|
||||||
|
bool tegra_t210 = hw_get_chip_id() == GP_HIDREV_MAJOR_T210;
|
||||||
|
|
||||||
// The power supply selection from battery or USB is automatic.
|
// The power supply selection from battery or USB is automatic.
|
||||||
if (!reg_5v_dev)
|
if (!reg_5v_dev)
|
||||||
{
|
{
|
||||||
|
@ -36,10 +38,8 @@ void regulator_5v_enable(u8 dev)
|
||||||
gpio_output_enable(GPIO_PORT_A, GPIO_PIN_5, GPIO_OUTPUT_ENABLE);
|
gpio_output_enable(GPIO_PORT_A, GPIO_PIN_5, GPIO_OUTPUT_ENABLE);
|
||||||
gpio_write(GPIO_PORT_A, GPIO_PIN_5, GPIO_HIGH);
|
gpio_write(GPIO_PORT_A, GPIO_PIN_5, GPIO_HIGH);
|
||||||
|
|
||||||
// Only Icosa and Iowa have USB 5V VBUS rails. Skip on Hoag/Aula.
|
// Only Icosa has USB 5V VBUS rails.
|
||||||
u32 hw_type = fuse_read_hw_type();
|
if (tegra_t210)
|
||||||
if (hw_type == FUSE_NX_HW_TYPE_ICOSA ||
|
|
||||||
hw_type == FUSE_NX_HW_TYPE_IOWA)
|
|
||||||
{
|
{
|
||||||
// Fan and Rail power from USB 5V VBUS.
|
// Fan and Rail power from USB 5V VBUS.
|
||||||
PINMUX_AUX(PINMUX_AUX_USB_VBUS_EN0) = PINMUX_LPDR | 1;
|
PINMUX_AUX(PINMUX_AUX_USB_VBUS_EN0) = PINMUX_LPDR | 1;
|
||||||
|
@ -58,9 +58,8 @@ void regulator_5v_enable(u8 dev)
|
||||||
|
|
||||||
usb_src = false;
|
usb_src = false;
|
||||||
|
|
||||||
// Fan regulator 5V for Hoag/Aula.
|
// VBUS/Fan regulator 5V for Iowa/Hoag/Aula.
|
||||||
if (hw_type == FUSE_NX_HW_TYPE_HOAG ||
|
if (!tegra_t210)
|
||||||
hw_type == FUSE_NX_HW_TYPE_AULA)
|
|
||||||
{
|
{
|
||||||
PINMUX_AUX(PINMUX_AUX_ALS_PROX_INT) = PINMUX_PULL_DOWN;
|
PINMUX_AUX(PINMUX_AUX_ALS_PROX_INT) = PINMUX_PULL_DOWN;
|
||||||
gpio_config(GPIO_PORT_X, GPIO_PIN_3, GPIO_MODE_GPIO);
|
gpio_config(GPIO_PORT_X, GPIO_PIN_3, GPIO_MODE_GPIO);
|
||||||
|
@ -73,6 +72,8 @@ void regulator_5v_enable(u8 dev)
|
||||||
|
|
||||||
void regulator_5v_disable(u8 dev)
|
void regulator_5v_disable(u8 dev)
|
||||||
{
|
{
|
||||||
|
bool tegra_t210 = hw_get_chip_id() == GP_HIDREV_MAJOR_T210;
|
||||||
|
|
||||||
reg_5v_dev &= ~dev;
|
reg_5v_dev &= ~dev;
|
||||||
|
|
||||||
if (!reg_5v_dev)
|
if (!reg_5v_dev)
|
||||||
|
@ -80,10 +81,8 @@ void regulator_5v_disable(u8 dev)
|
||||||
// Rail power from battery 5V regulator.
|
// Rail power from battery 5V regulator.
|
||||||
gpio_write(GPIO_PORT_A, GPIO_PIN_5, GPIO_LOW);
|
gpio_write(GPIO_PORT_A, GPIO_PIN_5, GPIO_LOW);
|
||||||
|
|
||||||
// Only Icosa and Iowa have USB 5V VBUS rails. Skip on Hoag/Aula.
|
// Only Icosa has USB 5V VBUS rails.
|
||||||
u32 hw_type = fuse_read_hw_type();
|
if (tegra_t210)
|
||||||
if (hw_type == FUSE_NX_HW_TYPE_ICOSA ||
|
|
||||||
hw_type == FUSE_NX_HW_TYPE_IOWA)
|
|
||||||
{
|
{
|
||||||
// Rail power from USB 5V VBUS.
|
// Rail power from USB 5V VBUS.
|
||||||
gpio_write(GPIO_PORT_CC, GPIO_PIN_4, GPIO_LOW);
|
gpio_write(GPIO_PORT_CC, GPIO_PIN_4, GPIO_LOW);
|
||||||
|
@ -91,9 +90,8 @@ void regulator_5v_disable(u8 dev)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Fan regulator 5V for Hoag/Aula.
|
// VBUS/Fan regulator 5V for Hoag/Aula.
|
||||||
if (hw_type == FUSE_NX_HW_TYPE_HOAG ||
|
if (!tegra_t210)
|
||||||
hw_type == FUSE_NX_HW_TYPE_AULA)
|
|
||||||
gpio_write(GPIO_PORT_X, GPIO_PIN_3, GPIO_LOW);
|
gpio_write(GPIO_PORT_X, GPIO_PIN_3, GPIO_LOW);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -105,10 +103,8 @@ bool regulator_5v_get_dev_enabled(u8 dev)
|
||||||
|
|
||||||
void regulator_5v_usb_src_enable(bool enable)
|
void regulator_5v_usb_src_enable(bool enable)
|
||||||
{
|
{
|
||||||
// Only for Icosa/Iowa. Skip on Hoag/Aula.
|
// Only for Icosa.
|
||||||
u32 hw_type = fuse_read_hw_type();
|
if (hw_get_chip_id() != GP_HIDREV_MAJOR_T210)
|
||||||
if (hw_type != FUSE_NX_HW_TYPE_ICOSA &&
|
|
||||||
hw_type != FUSE_NX_HW_TYPE_IOWA)
|
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (enable && !usb_src)
|
if (enable && !usb_src)
|
||||||
|
|
Loading…
Reference in a new issue