diff --git a/platform/dev-imxrt/Cargo.lock b/platform/dev-imxrt/Cargo.lock index 6a2e900..badb704 100644 --- a/platform/dev-imxrt/Cargo.lock +++ b/platform/dev-imxrt/Cargo.lock @@ -35,10 +35,11 @@ dependencies = [ [[package]] name = "battery-service" version = "0.1.0" -source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#b2914600404371ba150093bec40d4e7e116b3369" +source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#695fae0a6eb505af74f72fe7c326911a4400beeb" dependencies = [ "battery-service-interface", "defmt 0.3.100", + "embassy-futures", "embassy-time", "embedded-batteries-async", "embedded-services", @@ -48,16 +49,17 @@ dependencies = [ [[package]] name = "battery-service-interface" version = "0.1.0" -source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#b2914600404371ba150093bec40d4e7e116b3369" +source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#695fae0a6eb505af74f72fe7c326911a4400beeb" dependencies = [ "defmt 0.3.100", "embedded-batteries-async", + "power-policy-interface", ] [[package]] name = "battery-service-relay" version = "0.1.0" -source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#b2914600404371ba150093bec40d4e7e116b3369" +source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#695fae0a6eb505af74f72fe7c326911a4400beeb" dependencies = [ "battery-service-interface", "defmt 0.3.100", @@ -695,7 +697,7 @@ dependencies = [ [[package]] name = "embedded-services" version = "0.1.0" -source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#b2914600404371ba150093bec40d4e7e116b3369" +source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#695fae0a6eb505af74f72fe7c326911a4400beeb" dependencies = [ "bitfield 0.17.0", "cortex-m", @@ -731,7 +733,7 @@ dependencies = [ [[package]] name = "espi-device" version = "0.1.0" -source = "git+https://github.com/OpenDevicePartnership/haf-ec-service#6166065630a40f7285f883513de33f7b033b2640" +source = "git+https://github.com/OpenDevicePartnership/haf-ec-service#1422b1c30ec81f29bb0a455a54063d408a53d02d" dependencies = [ "bit-register 0.1.0 (git+https://github.com/OpenDevicePartnership/odp-utilities?tag=v0.1.0)", "bitflags 2.11.1", @@ -902,7 +904,7 @@ dependencies = [ [[package]] name = "mctp-rs" version = "0.1.0" -source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#b2914600404371ba150093bec40d4e7e116b3369" +source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#695fae0a6eb505af74f72fe7c326911a4400beeb" dependencies = [ "bit-register 0.1.0 (git+https://github.com/OpenDevicePartnership/odp-utilities)", "crc", @@ -1012,7 +1014,7 @@ dependencies = [ [[package]] name = "odp-service-common" version = "0.1.0" -source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#b2914600404371ba150093bec40d4e7e116b3369" +source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#695fae0a6eb505af74f72fe7c326911a4400beeb" dependencies = [ "embedded-services", "static_cell", @@ -1087,7 +1089,7 @@ checksum = "c33a9471896f1c69cecef8d20cbe2f7accd12527ce60845ff44c153bb2a21b49" [[package]] name = "power-policy-interface" version = "0.1.0" -source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#b2914600404371ba150093bec40d4e7e116b3369" +source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#695fae0a6eb505af74f72fe7c326911a4400beeb" dependencies = [ "defmt 0.3.100", "embassy-sync", @@ -1312,7 +1314,7 @@ dependencies = [ [[package]] name = "thermal-service" version = "0.1.0" -source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#b2914600404371ba150093bec40d4e7e116b3369" +source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#695fae0a6eb505af74f72fe7c326911a4400beeb" dependencies = [ "defmt 0.3.100", "embassy-futures", @@ -1329,7 +1331,7 @@ dependencies = [ [[package]] name = "thermal-service-interface" version = "0.1.0" -source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#b2914600404371ba150093bec40d4e7e116b3369" +source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#695fae0a6eb505af74f72fe7c326911a4400beeb" dependencies = [ "defmt 0.3.100", "embassy-time", @@ -1340,7 +1342,7 @@ dependencies = [ [[package]] name = "thermal-service-relay" version = "0.1.0" -source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#b2914600404371ba150093bec40d4e7e116b3369" +source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#695fae0a6eb505af74f72fe7c326911a4400beeb" dependencies = [ "defmt 0.3.100", "embedded-services", @@ -1381,7 +1383,7 @@ dependencies = [ [[package]] name = "time-alarm-service" version = "0.1.0" -source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#b2914600404371ba150093bec40d4e7e116b3369" +source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#695fae0a6eb505af74f72fe7c326911a4400beeb" dependencies = [ "defmt 0.3.100", "embassy-futures", @@ -1397,10 +1399,11 @@ dependencies = [ [[package]] name = "time-alarm-service-interface" version = "0.1.0" -source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#b2914600404371ba150093bec40d4e7e116b3369" +source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#695fae0a6eb505af74f72fe7c326911a4400beeb" dependencies = [ "bitfield 0.17.0", "defmt 0.3.100", + "embassy-sync", "embedded-mcu-hal 0.3.0", "num_enum", "zerocopy", @@ -1409,7 +1412,7 @@ dependencies = [ [[package]] name = "time-alarm-service-relay" version = "0.1.0" -source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#b2914600404371ba150093bec40d4e7e116b3369" +source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#695fae0a6eb505af74f72fe7c326911a4400beeb" dependencies = [ "bitfield 0.17.0", "defmt 0.3.100", @@ -1490,7 +1493,7 @@ checksum = "40ce102ab67701b8526c123c1bab5cbe42d7040ccfd0f64af1a385808d2f43de" [[package]] name = "uart-service" version = "0.1.0" -source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#b2914600404371ba150093bec40d4e7e116b3369" +source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#695fae0a6eb505af74f72fe7c326911a4400beeb" dependencies = [ "defmt 0.3.100", "embassy-sync", diff --git a/platform/dev-mcxa/Cargo.lock b/platform/dev-mcxa/Cargo.lock index 3827d23..9689230 100644 --- a/platform/dev-mcxa/Cargo.lock +++ b/platform/dev-mcxa/Cargo.lock @@ -29,10 +29,11 @@ dependencies = [ [[package]] name = "battery-service" version = "0.1.0" -source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#b2914600404371ba150093bec40d4e7e116b3369" +source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#695fae0a6eb505af74f72fe7c326911a4400beeb" dependencies = [ "battery-service-interface", "defmt 0.3.100", + "embassy-futures", "embassy-time", "embedded-batteries-async", "embedded-services", @@ -42,16 +43,17 @@ dependencies = [ [[package]] name = "battery-service-interface" version = "0.1.0" -source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#b2914600404371ba150093bec40d4e7e116b3369" +source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#695fae0a6eb505af74f72fe7c326911a4400beeb" dependencies = [ "defmt 0.3.100", "embedded-batteries-async", + "power-policy-interface", ] [[package]] name = "battery-service-relay" version = "0.1.0" -source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#b2914600404371ba150093bec40d4e7e116b3369" +source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#695fae0a6eb505af74f72fe7c326911a4400beeb" dependencies = [ "battery-service-interface", "defmt 0.3.100", @@ -678,7 +680,7 @@ dependencies = [ [[package]] name = "embedded-services" version = "0.1.0" -source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#b2914600404371ba150093bec40d4e7e116b3369" +source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#695fae0a6eb505af74f72fe7c326911a4400beeb" dependencies = [ "bitfield 0.17.0", "cortex-m", @@ -720,7 +722,7 @@ checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" [[package]] name = "espi-device" version = "0.1.0" -source = "git+https://github.com/OpenDevicePartnership/haf-ec-service#6166065630a40f7285f883513de33f7b033b2640" +source = "git+https://github.com/OpenDevicePartnership/haf-ec-service#1422b1c30ec81f29bb0a455a54063d408a53d02d" dependencies = [ "bit-register 0.1.0 (git+https://github.com/OpenDevicePartnership/odp-utilities?tag=v0.1.0)", "bitflags 2.11.1", @@ -900,7 +902,7 @@ dependencies = [ [[package]] name = "mctp-rs" version = "0.1.0" -source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#b2914600404371ba150093bec40d4e7e116b3369" +source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#695fae0a6eb505af74f72fe7c326911a4400beeb" dependencies = [ "bit-register 0.1.0 (git+https://github.com/OpenDevicePartnership/odp-utilities)", "crc", @@ -998,7 +1000,7 @@ dependencies = [ [[package]] name = "odp-service-common" version = "0.1.0" -source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#b2914600404371ba150093bec40d4e7e116b3369" +source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#695fae0a6eb505af74f72fe7c326911a4400beeb" dependencies = [ "embedded-services", "static_cell", @@ -1096,7 +1098,7 @@ dependencies = [ [[package]] name = "power-policy-interface" version = "0.1.0" -source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#b2914600404371ba150093bec40d4e7e116b3369" +source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#695fae0a6eb505af74f72fe7c326911a4400beeb" dependencies = [ "defmt 0.3.100", "embassy-sync", @@ -1340,7 +1342,7 @@ dependencies = [ [[package]] name = "thermal-service" version = "0.1.0" -source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#b2914600404371ba150093bec40d4e7e116b3369" +source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#695fae0a6eb505af74f72fe7c326911a4400beeb" dependencies = [ "defmt 0.3.100", "embassy-futures", @@ -1357,7 +1359,7 @@ dependencies = [ [[package]] name = "thermal-service-interface" version = "0.1.0" -source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#b2914600404371ba150093bec40d4e7e116b3369" +source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#695fae0a6eb505af74f72fe7c326911a4400beeb" dependencies = [ "defmt 0.3.100", "embassy-time", @@ -1368,7 +1370,7 @@ dependencies = [ [[package]] name = "thermal-service-relay" version = "0.1.0" -source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#b2914600404371ba150093bec40d4e7e116b3369" +source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#695fae0a6eb505af74f72fe7c326911a4400beeb" dependencies = [ "defmt 0.3.100", "embedded-services", @@ -1409,7 +1411,7 @@ dependencies = [ [[package]] name = "time-alarm-service" version = "0.1.0" -source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#b2914600404371ba150093bec40d4e7e116b3369" +source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#695fae0a6eb505af74f72fe7c326911a4400beeb" dependencies = [ "defmt 0.3.100", "embassy-futures", @@ -1425,10 +1427,11 @@ dependencies = [ [[package]] name = "time-alarm-service-interface" version = "0.1.0" -source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#b2914600404371ba150093bec40d4e7e116b3369" +source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#695fae0a6eb505af74f72fe7c326911a4400beeb" dependencies = [ "bitfield 0.17.0", "defmt 0.3.100", + "embassy-sync", "embedded-mcu-hal 0.3.0", "num_enum", "zerocopy", @@ -1437,7 +1440,7 @@ dependencies = [ [[package]] name = "time-alarm-service-relay" version = "0.1.0" -source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#b2914600404371ba150093bec40d4e7e116b3369" +source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#695fae0a6eb505af74f72fe7c326911a4400beeb" dependencies = [ "bitfield 0.17.0", "defmt 0.3.100", @@ -1518,7 +1521,7 @@ checksum = "b6f5e870be6c3b371b77fe0ee0bafb859fa4964b4404c27de1d380043c4dda20" [[package]] name = "uart-service" version = "0.1.0" -source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#b2914600404371ba150093bec40d4e7e116b3369" +source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#695fae0a6eb505af74f72fe7c326911a4400beeb" dependencies = [ "defmt 0.3.100", "embassy-sync", diff --git a/platform/dev-mec/Cargo.lock b/platform/dev-mec/Cargo.lock index 92c1020..f199e6e 100644 --- a/platform/dev-mec/Cargo.lock +++ b/platform/dev-mec/Cargo.lock @@ -35,10 +35,11 @@ dependencies = [ [[package]] name = "battery-service" version = "0.1.0" -source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#b2914600404371ba150093bec40d4e7e116b3369" +source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#695fae0a6eb505af74f72fe7c326911a4400beeb" dependencies = [ "battery-service-interface", "defmt 0.3.100", + "embassy-futures", "embassy-time", "embedded-batteries-async", "embedded-services", @@ -48,16 +49,17 @@ dependencies = [ [[package]] name = "battery-service-interface" version = "0.1.0" -source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#b2914600404371ba150093bec40d4e7e116b3369" +source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#695fae0a6eb505af74f72fe7c326911a4400beeb" dependencies = [ "defmt 0.3.100", "embedded-batteries-async", + "power-policy-interface", ] [[package]] name = "battery-service-relay" version = "0.1.0" -source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#b2914600404371ba150093bec40d4e7e116b3369" +source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#695fae0a6eb505af74f72fe7c326911a4400beeb" dependencies = [ "battery-service-interface", "defmt 0.3.100", @@ -653,7 +655,7 @@ dependencies = [ [[package]] name = "embedded-services" version = "0.1.0" -source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#b2914600404371ba150093bec40d4e7e116b3369" +source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#695fae0a6eb505af74f72fe7c326911a4400beeb" dependencies = [ "bitfield 0.17.0", "cortex-m", @@ -689,7 +691,7 @@ dependencies = [ [[package]] name = "espi-device" version = "0.1.0" -source = "git+https://github.com/OpenDevicePartnership/haf-ec-service#6166065630a40f7285f883513de33f7b033b2640" +source = "git+https://github.com/OpenDevicePartnership/haf-ec-service#1422b1c30ec81f29bb0a455a54063d408a53d02d" dependencies = [ "bit-register 0.1.0 (git+https://github.com/OpenDevicePartnership/odp-utilities?tag=v0.1.0)", "bitflags 2.11.1", @@ -851,7 +853,7 @@ dependencies = [ [[package]] name = "mctp-rs" version = "0.1.0" -source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#b2914600404371ba150093bec40d4e7e116b3369" +source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#695fae0a6eb505af74f72fe7c326911a4400beeb" dependencies = [ "bit-register 0.1.0 (git+https://github.com/OpenDevicePartnership/odp-utilities)", "crc", @@ -937,7 +939,7 @@ dependencies = [ [[package]] name = "odp-service-common" version = "0.1.0" -source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#b2914600404371ba150093bec40d4e7e116b3369" +source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#695fae0a6eb505af74f72fe7c326911a4400beeb" dependencies = [ "embedded-services", "static_cell", @@ -1012,7 +1014,7 @@ checksum = "c33a9471896f1c69cecef8d20cbe2f7accd12527ce60845ff44c153bb2a21b49" [[package]] name = "power-policy-interface" version = "0.1.0" -source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#b2914600404371ba150093bec40d4e7e116b3369" +source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#695fae0a6eb505af74f72fe7c326911a4400beeb" dependencies = [ "defmt 0.3.100", "embassy-sync", @@ -1226,7 +1228,7 @@ dependencies = [ [[package]] name = "thermal-service" version = "0.1.0" -source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#b2914600404371ba150093bec40d4e7e116b3369" +source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#695fae0a6eb505af74f72fe7c326911a4400beeb" dependencies = [ "defmt 0.3.100", "embassy-futures", @@ -1243,7 +1245,7 @@ dependencies = [ [[package]] name = "thermal-service-interface" version = "0.1.0" -source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#b2914600404371ba150093bec40d4e7e116b3369" +source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#695fae0a6eb505af74f72fe7c326911a4400beeb" dependencies = [ "defmt 0.3.100", "embassy-time", @@ -1254,7 +1256,7 @@ dependencies = [ [[package]] name = "thermal-service-relay" version = "0.1.0" -source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#b2914600404371ba150093bec40d4e7e116b3369" +source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#695fae0a6eb505af74f72fe7c326911a4400beeb" dependencies = [ "defmt 0.3.100", "embedded-services", @@ -1295,7 +1297,7 @@ dependencies = [ [[package]] name = "time-alarm-service" version = "0.1.0" -source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#b2914600404371ba150093bec40d4e7e116b3369" +source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#695fae0a6eb505af74f72fe7c326911a4400beeb" dependencies = [ "defmt 0.3.100", "embassy-futures", @@ -1311,10 +1313,11 @@ dependencies = [ [[package]] name = "time-alarm-service-interface" version = "0.1.0" -source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#b2914600404371ba150093bec40d4e7e116b3369" +source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#695fae0a6eb505af74f72fe7c326911a4400beeb" dependencies = [ "bitfield 0.17.0", "defmt 0.3.100", + "embassy-sync", "embedded-mcu-hal 0.3.0", "num_enum", "zerocopy", @@ -1323,7 +1326,7 @@ dependencies = [ [[package]] name = "time-alarm-service-relay" version = "0.1.0" -source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#b2914600404371ba150093bec40d4e7e116b3369" +source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#695fae0a6eb505af74f72fe7c326911a4400beeb" dependencies = [ "bitfield 0.17.0", "defmt 0.3.100", @@ -1404,7 +1407,7 @@ checksum = "40ce102ab67701b8526c123c1bab5cbe42d7040ccfd0f64af1a385808d2f43de" [[package]] name = "uart-service" version = "0.1.0" -source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#b2914600404371ba150093bec40d4e7e116b3369" +source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#695fae0a6eb505af74f72fe7c326911a4400beeb" dependencies = [ "defmt 0.3.100", "embassy-sync", diff --git a/platform/dev-npcx/Cargo.lock b/platform/dev-npcx/Cargo.lock index 6386ba3..b5a650b 100644 --- a/platform/dev-npcx/Cargo.lock +++ b/platform/dev-npcx/Cargo.lock @@ -29,10 +29,11 @@ dependencies = [ [[package]] name = "battery-service" version = "0.1.0" -source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#b2914600404371ba150093bec40d4e7e116b3369" +source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#695fae0a6eb505af74f72fe7c326911a4400beeb" dependencies = [ "battery-service-interface", "defmt 0.3.100", + "embassy-futures", "embassy-time", "embedded-batteries-async", "embedded-services", @@ -42,16 +43,17 @@ dependencies = [ [[package]] name = "battery-service-interface" version = "0.1.0" -source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#b2914600404371ba150093bec40d4e7e116b3369" +source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#695fae0a6eb505af74f72fe7c326911a4400beeb" dependencies = [ "defmt 0.3.100", "embedded-batteries-async", + "power-policy-interface", ] [[package]] name = "battery-service-relay" version = "0.1.0" -source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#b2914600404371ba150093bec40d4e7e116b3369" +source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#695fae0a6eb505af74f72fe7c326911a4400beeb" dependencies = [ "battery-service-interface", "defmt 0.3.100", @@ -634,7 +636,7 @@ dependencies = [ [[package]] name = "embedded-services" version = "0.1.0" -source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#b2914600404371ba150093bec40d4e7e116b3369" +source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#695fae0a6eb505af74f72fe7c326911a4400beeb" dependencies = [ "bitfield 0.17.0", "cortex-m", @@ -655,7 +657,7 @@ dependencies = [ [[package]] name = "espi-device" version = "0.1.0" -source = "git+https://github.com/OpenDevicePartnership/haf-ec-service#6166065630a40f7285f883513de33f7b033b2640" +source = "git+https://github.com/OpenDevicePartnership/haf-ec-service#1422b1c30ec81f29bb0a455a54063d408a53d02d" dependencies = [ "bit-register 0.1.0 (git+https://github.com/OpenDevicePartnership/odp-utilities?tag=v0.1.0)", "bitflags 2.11.1", @@ -820,7 +822,7 @@ dependencies = [ [[package]] name = "mctp-rs" version = "0.1.0" -source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#b2914600404371ba150093bec40d4e7e116b3369" +source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#695fae0a6eb505af74f72fe7c326911a4400beeb" dependencies = [ "bit-register 0.1.0 (git+https://github.com/OpenDevicePartnership/odp-utilities)", "crc", @@ -918,7 +920,7 @@ dependencies = [ [[package]] name = "odp-service-common" version = "0.1.0" -source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#b2914600404371ba150093bec40d4e7e116b3369" +source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#695fae0a6eb505af74f72fe7c326911a4400beeb" dependencies = [ "embedded-services", "static_cell", @@ -1016,7 +1018,7 @@ dependencies = [ [[package]] name = "power-policy-interface" version = "0.1.0" -source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#b2914600404371ba150093bec40d4e7e116b3369" +source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#695fae0a6eb505af74f72fe7c326911a4400beeb" dependencies = [ "defmt 0.3.100", "embassy-sync 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1230,7 +1232,7 @@ dependencies = [ [[package]] name = "thermal-service" version = "0.1.0" -source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#b2914600404371ba150093bec40d4e7e116b3369" +source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#695fae0a6eb505af74f72fe7c326911a4400beeb" dependencies = [ "defmt 0.3.100", "embassy-futures", @@ -1247,7 +1249,7 @@ dependencies = [ [[package]] name = "thermal-service-interface" version = "0.1.0" -source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#b2914600404371ba150093bec40d4e7e116b3369" +source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#695fae0a6eb505af74f72fe7c326911a4400beeb" dependencies = [ "defmt 0.3.100", "embassy-time", @@ -1258,7 +1260,7 @@ dependencies = [ [[package]] name = "thermal-service-relay" version = "0.1.0" -source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#b2914600404371ba150093bec40d4e7e116b3369" +source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#695fae0a6eb505af74f72fe7c326911a4400beeb" dependencies = [ "defmt 0.3.100", "embedded-services", @@ -1299,7 +1301,7 @@ dependencies = [ [[package]] name = "time-alarm-service" version = "0.1.0" -source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#b2914600404371ba150093bec40d4e7e116b3369" +source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#695fae0a6eb505af74f72fe7c326911a4400beeb" dependencies = [ "defmt 0.3.100", "embassy-futures", @@ -1315,10 +1317,11 @@ dependencies = [ [[package]] name = "time-alarm-service-interface" version = "0.1.0" -source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#b2914600404371ba150093bec40d4e7e116b3369" +source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#695fae0a6eb505af74f72fe7c326911a4400beeb" dependencies = [ "bitfield 0.17.0", "defmt 0.3.100", + "embassy-sync 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", "embedded-mcu-hal 0.3.0", "num_enum", "zerocopy", @@ -1327,7 +1330,7 @@ dependencies = [ [[package]] name = "time-alarm-service-relay" version = "0.1.0" -source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#b2914600404371ba150093bec40d4e7e116b3369" +source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#695fae0a6eb505af74f72fe7c326911a4400beeb" dependencies = [ "bitfield 0.17.0", "defmt 0.3.100", @@ -1408,7 +1411,7 @@ checksum = "b6f5e870be6c3b371b77fe0ee0bafb859fa4964b4404c27de1d380043c4dda20" [[package]] name = "uart-service" version = "0.1.0" -source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#b2914600404371ba150093bec40d4e7e116b3369" +source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#695fae0a6eb505af74f72fe7c326911a4400beeb" dependencies = [ "defmt 0.3.100", "embassy-sync 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", diff --git a/platform/dev-qemu/Cargo.lock b/platform/dev-qemu/Cargo.lock index 1827c29..bf1e03b 100644 --- a/platform/dev-qemu/Cargo.lock +++ b/platform/dev-qemu/Cargo.lock @@ -29,10 +29,11 @@ dependencies = [ [[package]] name = "battery-service" version = "0.1.0" -source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#baf1a1577c71375ec0ee33830b874f40e17b9423" +source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#695fae0a6eb505af74f72fe7c326911a4400beeb" dependencies = [ "battery-service-interface", "defmt 0.3.100", + "embassy-futures", "embassy-time", "embedded-batteries-async", "embedded-services", @@ -42,16 +43,17 @@ dependencies = [ [[package]] name = "battery-service-interface" version = "0.1.0" -source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#baf1a1577c71375ec0ee33830b874f40e17b9423" +source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#695fae0a6eb505af74f72fe7c326911a4400beeb" dependencies = [ "defmt 0.3.100", "embedded-batteries-async", + "power-policy-interface", ] [[package]] name = "battery-service-relay" version = "0.1.0" -source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#baf1a1577c71375ec0ee33830b874f40e17b9423" +source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#695fae0a6eb505af74f72fe7c326911a4400beeb" dependencies = [ "battery-service-interface", "defmt 0.3.100", @@ -631,7 +633,7 @@ dependencies = [ [[package]] name = "embedded-services" version = "0.1.0" -source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#baf1a1577c71375ec0ee33830b874f40e17b9423" +source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#695fae0a6eb505af74f72fe7c326911a4400beeb" dependencies = [ "bitfield 0.17.0", "cortex-m", @@ -652,7 +654,7 @@ dependencies = [ [[package]] name = "espi-device" version = "0.1.0" -source = "git+https://github.com/OpenDevicePartnership/haf-ec-service#6166065630a40f7285f883513de33f7b033b2640" +source = "git+https://github.com/OpenDevicePartnership/haf-ec-service#1422b1c30ec81f29bb0a455a54063d408a53d02d" dependencies = [ "bit-register 0.1.0 (git+https://github.com/OpenDevicePartnership/odp-utilities?tag=v0.1.0)", "bitflags 2.11.1", @@ -749,7 +751,7 @@ checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" [[package]] name = "hidi2c-target-service" version = "0.1.0" -source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#baf1a1577c71375ec0ee33830b874f40e17b9423" +source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#695fae0a6eb505af74f72fe7c326911a4400beeb" dependencies = [ "defmt 0.3.100", "embassy-futures", @@ -820,7 +822,7 @@ dependencies = [ [[package]] name = "mctp-rs" version = "0.1.0" -source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#baf1a1577c71375ec0ee33830b874f40e17b9423" +source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#695fae0a6eb505af74f72fe7c326911a4400beeb" dependencies = [ "bit-register 0.1.0 (git+https://github.com/OpenDevicePartnership/odp-utilities)", "crc", @@ -895,7 +897,7 @@ dependencies = [ [[package]] name = "odp-service-common" version = "0.1.0" -source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#baf1a1577c71375ec0ee33830b874f40e17b9423" +source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#695fae0a6eb505af74f72fe7c326911a4400beeb" dependencies = [ "embedded-services", "static_cell", @@ -960,7 +962,7 @@ checksum = "c33a9471896f1c69cecef8d20cbe2f7accd12527ce60845ff44c153bb2a21b49" [[package]] name = "power-policy-interface" version = "0.1.0" -source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#baf1a1577c71375ec0ee33830b874f40e17b9423" +source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#695fae0a6eb505af74f72fe7c326911a4400beeb" dependencies = [ "defmt 0.3.100", "embassy-sync 0.8.0", @@ -1262,7 +1264,7 @@ dependencies = [ [[package]] name = "thermal-service" version = "0.1.0" -source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#baf1a1577c71375ec0ee33830b874f40e17b9423" +source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#695fae0a6eb505af74f72fe7c326911a4400beeb" dependencies = [ "defmt 0.3.100", "embassy-futures", @@ -1279,7 +1281,7 @@ dependencies = [ [[package]] name = "thermal-service-interface" version = "0.1.0" -source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#baf1a1577c71375ec0ee33830b874f40e17b9423" +source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#695fae0a6eb505af74f72fe7c326911a4400beeb" dependencies = [ "defmt 0.3.100", "embassy-time", @@ -1290,7 +1292,7 @@ dependencies = [ [[package]] name = "thermal-service-relay" version = "0.1.0" -source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#baf1a1577c71375ec0ee33830b874f40e17b9423" +source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#695fae0a6eb505af74f72fe7c326911a4400beeb" dependencies = [ "defmt 0.3.100", "embedded-services", @@ -1331,7 +1333,7 @@ dependencies = [ [[package]] name = "time-alarm-service" version = "0.1.0" -source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#baf1a1577c71375ec0ee33830b874f40e17b9423" +source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#695fae0a6eb505af74f72fe7c326911a4400beeb" dependencies = [ "defmt 0.3.100", "embassy-futures", @@ -1347,10 +1349,11 @@ dependencies = [ [[package]] name = "time-alarm-service-interface" version = "0.1.0" -source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#baf1a1577c71375ec0ee33830b874f40e17b9423" +source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#695fae0a6eb505af74f72fe7c326911a4400beeb" dependencies = [ "bitfield 0.17.0", "defmt 0.3.100", + "embassy-sync 0.8.0", "embedded-mcu-hal 0.3.0", "num_enum", "zerocopy", @@ -1359,7 +1362,7 @@ dependencies = [ [[package]] name = "time-alarm-service-relay" version = "0.1.0" -source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#baf1a1577c71375ec0ee33830b874f40e17b9423" +source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#695fae0a6eb505af74f72fe7c326911a4400beeb" dependencies = [ "bitfield 0.17.0", "defmt 0.3.100", @@ -1440,7 +1443,7 @@ checksum = "b6f5e870be6c3b371b77fe0ee0bafb859fa4964b4404c27de1d380043c4dda20" [[package]] name = "uart-service" version = "0.1.0" -source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#baf1a1577c71375ec0ee33830b874f40e17b9423" +source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#695fae0a6eb505af74f72fe7c326911a4400beeb" dependencies = [ "defmt 0.3.100", "embassy-sync 0.8.0", diff --git a/platform/dev-qemu/src/main.rs b/platform/dev-qemu/src/main.rs index a7beec9..e2afb88 100644 --- a/platform/dev-qemu/src/main.rs +++ b/platform/dev-qemu/src/main.rs @@ -8,20 +8,43 @@ mod mctp; use board::Board; use defmt_semihosting as _; use embassy_executor::Spawner; -#[cfg(feature = "time-alarm-wake")] -use embedded_services::info; -use platform_common::board::BoardIo; +use platform_common::{board::BoardIo, mock::time_alarm as mock_time_alarm}; use semihosting as _; // Panic handler #[embassy_executor::main] async fn main(spawner: Spawner) { let p = embassy_qemu_riscv::init(); let board = Board::init(p); + let (relay, time_alarm) = init_time_alarm( + spawner, + #[cfg(feature = "time-alarm-wake")] + board.wake_gpio, + #[cfg(feature = "time-alarm-power-input")] + board.power_input, + ) + .await; + + spawner.spawn(mctp::uart_service(board.uart, relay).expect("Failed to spawn UART service task")); + hid::init(spawner, board.i2c, board.gpio, time_alarm).await; +} + +async fn init_time_alarm( + spawner: Spawner, + #[cfg(feature = "time-alarm-wake")] wake_gpio: embassy_qemu_riscv::gpio::Output<'static>, + #[cfg(feature = "time-alarm-power-input")] mut power_input: embassy_qemu_riscv::gpio::Input< + 'static, + embassy_qemu_riscv::gpio::Async, + >, +) -> ( + platform_common::mock::MockOdpRelayHandler, + mock_time_alarm::TimeAlarmService, +) { #[cfg(not(feature = "time-alarm-wake"))] let (relay, time_alarm) = platform_common::mock::init_with_time_alarm(spawner).await; #[cfg(feature = "time-alarm-wake")] let (relay, time_alarm) = { - use time_alarm_service_interface::{AcpiTimerId, AlarmTimerSeconds, TimeAlarmService}; + #[cfg(not(feature = "time-alarm-power-input"))] + use time_alarm_service_interface::AcpiTimerId; #[cfg(not(feature = "time-alarm-power-input"))] let source = match option_env!("ODP_WAKE_SOURCE") { Some("ac") => AcpiTimerId::AcPower, @@ -32,77 +55,39 @@ async fn main(spawner: Spawner) { #[cfg(feature = "time-alarm-power-input")] let source = { assert!( - board.power_input.is_initialized(), + power_input.is_initialized(), "TimeAlarm GPIO2 power input must be explicitly initialized" ); - power_source(&board.power_input) + mock_time_alarm::power_source(&mut power_input).expect("Failed to read initial TimeAlarm power input") }; - info!("TimeAlarm wake source: {:?}", source); - for timer in [AcpiTimerId::AcPower, AcpiTimerId::DcPower] { - service - .set_timer_value(timer, AlarmTimerSeconds::DISABLED) - .expect("Failed to disable initial fixture alarm"); - } - service.set_power_source(source); + mock_time_alarm::configure_wake(service, source); }) .await; - spawner.spawn(time_alarm_wake(service, board.wake_gpio).expect("Failed to spawn TimeAlarm wake task")); + spawner.spawn(time_alarm_wake(service, wake_gpio).expect("Failed to spawn TimeAlarm wake task")); #[cfg(feature = "time-alarm-power-input")] - spawner.spawn( - time_alarm_power_input(service, board.power_input).expect("Failed to spawn TimeAlarm power input task"), - ); + spawner + .spawn(time_alarm_power_input(service, power_input).expect("Failed to spawn TimeAlarm power input task")); (relay, service) }; - // This allows thermal and battery to continue receiving requests over uart/mctp, but also allows - // time-alarm to simultaneously receive requests over uart/mctp or hidi2c - spawner.spawn(mctp::uart_service(board.uart, relay).expect("Failed to spawn UART service task")); - hid::init(spawner, board.i2c, board.gpio, time_alarm).await; + (relay, time_alarm) } #[cfg(feature = "time-alarm-wake")] #[embassy_executor::task] -async fn time_alarm_wake( - service: platform_common::mock::time_alarm::TimeAlarmService, - mut gpio: embassy_qemu_riscv::gpio::Output<'static>, -) { - loop { - let requested = service.wait_for_wake_signal().await; - if requested { - gpio.set_high(); - } else { - gpio.set_low(); - } - info!("TimeAlarm wake requested: {}", requested); - } -} - -#[cfg(feature = "time-alarm-power-input")] -fn power_source( - input: &embassy_qemu_riscv::gpio::Input<'_, embassy_qemu_riscv::gpio::Async>, -) -> time_alarm_service_interface::AcpiTimerId { - use time_alarm_service_interface::AcpiTimerId; - if input.is_high() { - AcpiTimerId::AcPower - } else { - AcpiTimerId::DcPower - } +async fn time_alarm_wake(service: mock_time_alarm::TimeAlarmService, gpio: embassy_qemu_riscv::gpio::Output<'static>) { + mock_time_alarm::drive_wake_output(service, gpio) + .await + .expect("TimeAlarm wake output failed"); } #[cfg(feature = "time-alarm-power-input")] #[embassy_executor::task] async fn time_alarm_power_input( - service: platform_common::mock::time_alarm::TimeAlarmService, - mut input: embassy_qemu_riscv::gpio::Input<'static, embassy_qemu_riscv::gpio::Async>, + service: mock_time_alarm::TimeAlarmService, + input: embassy_qemu_riscv::gpio::Input<'static, embassy_qemu_riscv::gpio::Async>, ) { - use time_alarm_service_interface::AcpiTimerId; - loop { - let source = power_source(&input); - service.set_power_source(source); - info!("TimeAlarm power input: {:?}", source); - match source { - AcpiTimerId::AcPower => input.wait_for_low().await, - AcpiTimerId::DcPower => input.wait_for_high().await, - } - } + mock_time_alarm::monitor_power_input(service, input) + .await + .expect("TimeAlarm power input failed"); } diff --git a/platform/platform-common/Cargo.lock b/platform/platform-common/Cargo.lock index c67630f..4f83efc 100644 --- a/platform/platform-common/Cargo.lock +++ b/platform/platform-common/Cargo.lock @@ -90,10 +90,11 @@ dependencies = [ [[package]] name = "battery-service" version = "0.1.0" -source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#b2914600404371ba150093bec40d4e7e116b3369" +source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#695fae0a6eb505af74f72fe7c326911a4400beeb" dependencies = [ "battery-service-interface", "defmt 0.3.100", + "embassy-futures", "embassy-time", "embedded-batteries-async", "embedded-services", @@ -103,16 +104,17 @@ dependencies = [ [[package]] name = "battery-service-interface" version = "0.1.0" -source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#b2914600404371ba150093bec40d4e7e116b3369" +source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#695fae0a6eb505af74f72fe7c326911a4400beeb" dependencies = [ "defmt 0.3.100", "embedded-batteries-async", + "power-policy-interface", ] [[package]] name = "battery-service-relay" version = "0.1.0" -source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#b2914600404371ba150093bec40d4e7e116b3369" +source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#695fae0a6eb505af74f72fe7c326911a4400beeb" dependencies = [ "battery-service-interface", "defmt 0.3.100", @@ -629,7 +631,7 @@ dependencies = [ [[package]] name = "embedded-services" version = "0.1.0" -source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#b2914600404371ba150093bec40d4e7e116b3369" +source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#695fae0a6eb505af74f72fe7c326911a4400beeb" dependencies = [ "bitfield 0.17.0", "cortex-m", @@ -659,7 +661,7 @@ dependencies = [ [[package]] name = "espi-device" version = "0.1.0" -source = "git+https://github.com/OpenDevicePartnership/haf-ec-service#6166065630a40f7285f883513de33f7b033b2640" +source = "git+https://github.com/OpenDevicePartnership/haf-ec-service#1422b1c30ec81f29bb0a455a54063d408a53d02d" dependencies = [ "bit-register 0.1.0 (git+https://github.com/OpenDevicePartnership/odp-utilities?tag=v0.1.0)", "bitflags 2.10.0", @@ -848,7 +850,7 @@ dependencies = [ [[package]] name = "mctp-rs" version = "0.1.0" -source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#b2914600404371ba150093bec40d4e7e116b3369" +source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#695fae0a6eb505af74f72fe7c326911a4400beeb" dependencies = [ "bit-register 0.1.0 (git+https://github.com/OpenDevicePartnership/odp-utilities)", "defmt 0.3.100", @@ -996,7 +998,7 @@ dependencies = [ [[package]] name = "odp-service-common" version = "0.1.0" -source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#b2914600404371ba150093bec40d4e7e116b3369" +source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#695fae0a6eb505af74f72fe7c326911a4400beeb" dependencies = [ "embedded-services", "static_cell", @@ -1067,7 +1069,7 @@ checksum = "c33a9471896f1c69cecef8d20cbe2f7accd12527ce60845ff44c153bb2a21b49" [[package]] name = "power-policy-interface" version = "0.1.0" -source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#b2914600404371ba150093bec40d4e7e116b3369" +source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#695fae0a6eb505af74f72fe7c326911a4400beeb" dependencies = [ "defmt 0.3.100", "embassy-sync", @@ -1312,7 +1314,7 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "thermal-service" version = "0.1.0" -source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#b2914600404371ba150093bec40d4e7e116b3369" +source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#695fae0a6eb505af74f72fe7c326911a4400beeb" dependencies = [ "defmt 0.3.100", "embassy-futures", @@ -1329,7 +1331,7 @@ dependencies = [ [[package]] name = "thermal-service-interface" version = "0.1.0" -source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#b2914600404371ba150093bec40d4e7e116b3369" +source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#695fae0a6eb505af74f72fe7c326911a4400beeb" dependencies = [ "defmt 0.3.100", "embassy-time", @@ -1340,7 +1342,7 @@ dependencies = [ [[package]] name = "thermal-service-relay" version = "0.1.0" -source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#b2914600404371ba150093bec40d4e7e116b3369" +source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#695fae0a6eb505af74f72fe7c326911a4400beeb" dependencies = [ "defmt 0.3.100", "embedded-services", @@ -1381,7 +1383,7 @@ dependencies = [ [[package]] name = "time-alarm-service" version = "0.1.0" -source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#b2914600404371ba150093bec40d4e7e116b3369" +source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#695fae0a6eb505af74f72fe7c326911a4400beeb" dependencies = [ "defmt 0.3.100", "embassy-futures", @@ -1397,10 +1399,11 @@ dependencies = [ [[package]] name = "time-alarm-service-interface" version = "0.1.0" -source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#b2914600404371ba150093bec40d4e7e116b3369" +source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#695fae0a6eb505af74f72fe7c326911a4400beeb" dependencies = [ "bitfield 0.17.0", "defmt 0.3.100", + "embassy-sync", "embedded-mcu-hal 0.3.0", "num_enum", "zerocopy", @@ -1409,7 +1412,7 @@ dependencies = [ [[package]] name = "time-alarm-service-relay" version = "0.1.0" -source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#b2914600404371ba150093bec40d4e7e116b3369" +source = "git+https://github.com/OpenDevicePartnership/embedded-services?branch=main#695fae0a6eb505af74f72fe7c326911a4400beeb" dependencies = [ "bitfield 0.17.0", "defmt 0.3.100", diff --git a/platform/platform-common/src/mock/battery.rs b/platform/platform-common/src/mock/battery.rs index 44c9ce8..eebaeb7 100644 --- a/platform/platform-common/src/mock/battery.rs +++ b/platform/platform-common/src/mock/battery.rs @@ -1,6 +1,6 @@ use battery_service as bs; use bs::mock::MockFuelGauge; -use bs::FuelGauge as _; +use bs::{DefaultPowerPolicyRouting, FuelGauge as _}; use embassy_sync::mutex::Mutex; use embassy_time::Timer; use embedded_services::{error, info, GlobalRawMutex}; @@ -9,7 +9,7 @@ use static_cell::StaticCell; /// The fuel gauge, behind a mutex so the service and the driving task can share it. type FuelGauge = Mutex; const FUEL_GAUGE_COUNT: usize = if cfg!(feature = "dual-fuel-gauge") { 2 } else { 1 }; -type Reg = bs::ArrayRegistration<'static, FuelGauge, FUEL_GAUGE_COUNT>; +type Reg = bs::ArrayRegistration<'static, FuelGauge, FUEL_GAUGE_COUNT, DefaultPowerPolicyRouting>; pub type BatteryService = bs::Service<'static, Reg>; pub async fn init(spawner: embassy_executor::Spawner) -> BatteryService { @@ -28,7 +28,10 @@ pub async fn init(spawner: embassy_executor::Spawner) -> BatteryService { }, ]; - let service = bs::Service::new(bs::ArrayRegistration { fuel_gauges }); + let service = bs::Service::new(bs::ArrayRegistration { + fuel_gauges, + routing: DefaultPowerPolicyRouting, + }); for (battery_id, fuel_gauge) in fuel_gauges.into_iter().enumerate() { bs::mock::init_state_machine(fuel_gauge) diff --git a/platform/platform-common/src/mock/time_alarm.rs b/platform/platform-common/src/mock/time_alarm.rs index e5d896a..74f724c 100644 --- a/platform/platform-common/src/mock/time_alarm.rs +++ b/platform/platform-common/src/mock/time_alarm.rs @@ -1,6 +1,9 @@ +use embedded_hal::digital::{InputPin, OutputPin}; +use embedded_hal_async::digital::Wait; use embedded_services::info; use static_cell::StaticCell; use time_alarm_service as tas; +use time_alarm_service_interface::{AcpiTimerId, AlarmTimerSeconds, TimeAlarmService as _}; pub type TimeAlarmService = tas::Service<'static>; @@ -52,3 +55,53 @@ pub async fn init_with( service } + +/// Disable both alarms and select a source before starting a wake fixture's runner. +pub fn configure_wake(service: TimeAlarmService, source: AcpiTimerId) { + info!("TimeAlarm wake source: {:?}", source); + for timer in [AcpiTimerId::AcPower, AcpiTimerId::DcPower] { + service + .set_timer_value(timer, AlarmTimerSeconds::DISABLED) + .expect("Failed to disable initial fixture alarm"); + } + service.set_power_source(source); +} + +/// Drive the current wake level and subsequent changes, returning any GPIO error. +pub async fn drive_wake_output(service: TimeAlarmService, mut gpio: P) -> Result<(), P::Error> { + let mut wake = service + .wake_requested_receiver() + .expect("Failed to allocate TimeAlarm wake receiver"); + let mut requested = wake.get().await; + loop { + if requested { + gpio.set_high()?; + } else { + gpio.set_low()?; + } + info!("TimeAlarm wake requested: {}", requested); + requested = wake.changed().await; + } +} + +/// Read an active-high AC power input (low indicates DC). +pub fn power_source(input: &mut P) -> Result { + Ok(if input.is_high()? { + AcpiTimerId::AcPower + } else { + AcpiTimerId::DcPower + }) +} + +/// Monitor AC/DC changes by resampling after opposite-level waits, returning any GPIO error. +pub async fn monitor_power_input(service: TimeAlarmService, mut input: P) -> Result<(), P::Error> { + loop { + let source = power_source(&mut input)?; + service.set_power_source(source); + info!("TimeAlarm power input: {:?}", source); + match source { + AcpiTimerId::AcPower => input.wait_for_low().await?, + AcpiTimerId::DcPower => input.wait_for_high().await?, + } + } +}