Skip to content

Commit d921ed7

Browse files
committed
MCUXpresso: Update ENET drivers to not enter deep sleep when active
Signed-off-by: Mahesh Mahadevan <[email protected]>
1 parent 3713be4 commit d921ed7

File tree

2 files changed

+12
-2
lines changed

2 files changed

+12
-2
lines changed

features/netsocket/emac-drivers/TARGET_Freescale_EMAC/kinetis_emac.cpp

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@
4646

4747
#include "kinetis_emac_config.h"
4848
#include "kinetis_emac.h"
49+
#include "mbed_power_mgmt.h"
4950

5051
enet_handle_t g_handle;
5152
// TX Buffer descriptors
@@ -496,6 +497,9 @@ bool Kinetis_EMAC::power_up()
496497
return false;
497498
}
498499

500+
// Can't enter deep sleep as long as Ethernet is active
501+
sleep_manager_lock_deep_sleep();
502+
499503
/* Worker thread */
500504
thread = create_new_thread("Kinetis_EMAC_thread", &Kinetis_EMAC::thread_function, this, THREAD_STACKSIZE, THREAD_PRIORITY, &thread_cb);
501505

@@ -580,7 +584,8 @@ void Kinetis_EMAC::set_all_multicast(bool all)
580584

581585
void Kinetis_EMAC::power_down()
582586
{
583-
/* No-op at this stage */
587+
// Ethernet went down, can enter deep sleep
588+
sleep_manager_unlock_deep_sleep();
584589
}
585590

586591
void Kinetis_EMAC::set_memory_manager(EMACMemoryManager &mem_mngr)

features/netsocket/emac-drivers/TARGET_NXP_EMAC/TARGET_IMX/imx_emac.cpp

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@
4646

4747
#include "imx_emac_config.h"
4848
#include "imx_emac.h"
49+
#include "mbed_power_mgmt.h"
4950

5051
enet_handle_t g_handle;
5152
// RX packet buffer pointers
@@ -500,6 +501,9 @@ bool Kinetis_EMAC::power_up()
500501
return false;
501502
}
502503

504+
// Can't enter deep sleep as long as Ethernet is active
505+
sleep_manager_lock_deep_sleep();
506+
503507
/* Worker thread */
504508
thread = create_new_thread("Kinetis_EMAC_thread", &Kinetis_EMAC::thread_function, this, THREAD_STACKSIZE, THREAD_PRIORITY, &thread_cb);
505509

@@ -584,7 +588,8 @@ void Kinetis_EMAC::set_all_multicast(bool all)
584588

585589
void Kinetis_EMAC::power_down()
586590
{
587-
/* No-op at this stage */
591+
// Ethernet went down, can enter deep sleep
592+
sleep_manager_unlock_deep_sleep();
588593
}
589594

590595
void Kinetis_EMAC::set_memory_manager(EMACMemoryManager &mem_mngr)

0 commit comments

Comments
 (0)