From d7fbaf87857d5ac018967d26aac62d6e227c30ea Mon Sep 17 00:00:00 2001 From: Robert Zieba Date: Thu, 24 Sep 2026 15:06:15 -0700 Subject: [PATCH] Pull-in upstream `embedded-services` changes --- Cargo.lock | 74 +++++++++---------- Cargo.toml | 14 ++-- README.md | 2 +- examples/rt685s-evk/Cargo.lock | 80 ++++++++++----------- examples/rt685s-evk/Cargo.toml | 10 +-- examples/rt685s-evk/src/bin/odp/tcpm-cfu.rs | 55 +++++++------- examples/rt685s-evk/src/bin/odp/tcpm.rs | 55 +++++++------- src/odp/driver.rs | 38 +++++----- src/odp/mod.rs | 2 +- src/odp/service.rs | 4 +- 10 files changed, 162 insertions(+), 172 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 98cf6c5..35affa4 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -404,7 +404,7 @@ dependencies = [ [[package]] name = "embedded-services" version = "0.1.0" -source = "git+https://github.com/OpenDevicePartnership/embedded-services#d57a2ade63e9bc2e328f4e0fd03f14de160575d6" +source = "git+https://github.com/OpenDevicePartnership/embedded-services#c190e9dc66db154b13efd6c7096ec202b60fe8a1" dependencies = [ "bitfield 0.17.0", "cortex-m", @@ -445,7 +445,7 @@ dependencies = [ [[package]] name = "espi-device" version = "0.1.0" -source = "git+https://github.com/OpenDevicePartnership/haf-ec-service#a0748ef149c4518e057ee71e80035b6a2324a750" +source = "git+https://github.com/OpenDevicePartnership/haf-ec-service#6166065630a40f7285f883513de33f7b033b2640" dependencies = [ "bit-register 0.1.0 (git+https://github.com/OpenDevicePartnership/odp-utilities?tag=v0.1.0)", "bitflags 2.9.4", @@ -470,7 +470,7 @@ checksum = "c39754e157331b013978ec91992bde1ac089843443c49cbc7f46150b0fad0893" [[package]] name = "fw-update-interface" version = "0.1.0" -source = "git+https://github.com/OpenDevicePartnership/embedded-services#d57a2ade63e9bc2e328f4e0fd03f14de160575d6" +source = "git+https://github.com/OpenDevicePartnership/embedded-services#c190e9dc66db154b13efd6c7096ec202b60fe8a1" dependencies = [ "defmt 0.3.100", "embedded-services", @@ -535,7 +535,7 @@ checksum = "34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432" [[package]] name = "mctp-rs" version = "0.1.0" -source = "git+https://github.com/OpenDevicePartnership/embedded-services#d57a2ade63e9bc2e328f4e0fd03f14de160575d6" +source = "git+https://github.com/OpenDevicePartnership/embedded-services#c190e9dc66db154b13efd6c7096ec202b60fe8a1" dependencies = [ "bit-register 0.1.0 (git+https://github.com/OpenDevicePartnership/odp-utilities)", "defmt 0.3.100", @@ -674,7 +674,7 @@ checksum = "c33a9471896f1c69cecef8d20cbe2f7accd12527ce60845ff44c153bb2a21b49" [[package]] name = "power-policy-interface" version = "0.1.0" -source = "git+https://github.com/OpenDevicePartnership/embedded-services#d57a2ade63e9bc2e328f4e0fd03f14de160575d6" +source = "git+https://github.com/OpenDevicePartnership/embedded-services#c190e9dc66db154b13efd6c7096ec202b60fe8a1" dependencies = [ "defmt 0.3.100", "embassy-sync", @@ -846,6 +846,36 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "tcpm-interface" +version = "0.1.0" +source = "git+https://github.com/OpenDevicePartnership/embedded-services#c190e9dc66db154b13efd6c7096ec202b60fe8a1" +dependencies = [ + "bitfield 0.17.0", + "defmt 0.3.100", + "embedded-services", + "embedded-usb-pd", + "heapless", + "power-policy-interface", +] + +[[package]] +name = "tcpm-service" +version = "0.1.0" +source = "git+https://github.com/OpenDevicePartnership/embedded-services#c190e9dc66db154b13efd6c7096ec202b60fe8a1" +dependencies = [ + "defmt 0.3.100", + "embassy-futures", + "embassy-sync", + "embassy-time", + "embedded-services", + "embedded-usb-pd", + "fw-update-interface", + "heapless", + "power-policy-interface", + "tcpm-interface", +] + [[package]] name = "thiserror" version = "2.0.18" @@ -913,39 +943,9 @@ dependencies = [ "pack1", "power-policy-interface", "static_cell", + "tcpm-interface", + "tcpm-service", "tokio", - "type-c-interface", - "type-c-service", -] - -[[package]] -name = "type-c-interface" -version = "0.1.0" -source = "git+https://github.com/OpenDevicePartnership/embedded-services#d57a2ade63e9bc2e328f4e0fd03f14de160575d6" -dependencies = [ - "bitfield 0.17.0", - "defmt 0.3.100", - "embedded-services", - "embedded-usb-pd", - "heapless", - "power-policy-interface", -] - -[[package]] -name = "type-c-service" -version = "0.1.0" -source = "git+https://github.com/OpenDevicePartnership/embedded-services#d57a2ade63e9bc2e328f4e0fd03f14de160575d6" -dependencies = [ - "defmt 0.3.100", - "embassy-futures", - "embassy-sync", - "embassy-time", - "embedded-services", - "embedded-usb-pd", - "fw-update-interface", - "heapless", - "power-policy-interface", - "type-c-interface", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index c897847..fd7553b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -32,9 +32,9 @@ pack1 = { version = "1.1.0", features = ["bytemuck"] } heapless = { version = "0.9.2", optional = true } itertools = { version = "0.14.0", default-features = false } embedded-services = { git = "https://github.com/OpenDevicePartnership/embedded-services", optional = true } -type-c-interface = { git = "https://github.com/OpenDevicePartnership/embedded-services", optional = true } +tcpm-interface = { git = "https://github.com/OpenDevicePartnership/embedded-services", optional = true } fw-update-interface = { git = "https://github.com/OpenDevicePartnership/embedded-services", optional = true } -type-c-service = { git = "https://github.com/OpenDevicePartnership/embedded-services", optional = true } +tcpm-service = { git = "https://github.com/OpenDevicePartnership/embedded-services", optional = true } power-policy-interface = { git = "https://github.com/OpenDevicePartnership/embedded-services", optional = true } [features] @@ -47,9 +47,9 @@ defmt = [ "embassy-time?/defmt-timestamp-uptime", "embedded-usb-pd/defmt", "embedded-services?/defmt", - "type-c-interface?/defmt", + "tcpm-interface?/defmt", "fw-update-interface?/defmt", - "type-c-service?/defmt", + "tcpm-service?/defmt", ] embassy = ["dep:embassy-sync", "dep:embassy-time", "dep:heapless"] log = ["dep:log"] @@ -58,14 +58,14 @@ log = ["dep:log"] odp-embedded-services = [ "embassy", "dep:bitflags", - "dep:type-c-interface", + "dep:tcpm-interface", "dep:embedded-services", "dep:power-policy-interface", ] # Enable fw-update-interface implementations odp-fw-update-interface = ["odp-embedded-services", "dep:fw-update-interface"] -# Enable type-c-service implementations -odp-type-c-service = ["odp-embedded-services", "dep:type-c-service"] +# Enable tcpm-service implementations +odp-tcpm-service = ["odp-embedded-services", "dep:tcpm-service"] [dev-dependencies] critical-section = { version = "1.1", features = ["std"] } diff --git a/README.md b/README.md index 6b12dc6..2c8729a 100644 --- a/README.md +++ b/README.md @@ -13,5 +13,5 @@ $ device-driver-cli --manifest device.yaml --device-name Registers -o src/regist ## Integration with Other ODP crates This crate provides implementations for traits defined in the `embedded-services` crate, gated behind these features: * `odp-embedded-services` for core PD trait implementations. -* `odp-type-c-service` for code related to the ODP implementation of the type-C service. +* `odp-tcpm-service` for code related to the ODP implementation of the type-C service. * `odp-fw-update-interface` for trait implementations for the fw-update-interface traits. \ No newline at end of file diff --git a/examples/rt685s-evk/Cargo.lock b/examples/rt685s-evk/Cargo.lock index 7df69f3..939b0bd 100644 --- a/examples/rt685s-evk/Cargo.lock +++ b/examples/rt685s-evk/Cargo.lock @@ -173,7 +173,7 @@ checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" [[package]] name = "cfu-service" version = "0.1.0" -source = "git+https://github.com/OpenDevicePartnership/embedded-services#a7829eaa39d9fa619f090019f91d95b09a11bcbb" +source = "git+https://github.com/OpenDevicePartnership/embedded-services#c190e9dc66db154b13efd6c7096ec202b60fe8a1" dependencies = [ "defmt 0.3.100", "embassy-futures", @@ -648,7 +648,7 @@ dependencies = [ [[package]] name = "embedded-services" version = "0.1.0" -source = "git+https://github.com/OpenDevicePartnership/embedded-services#a7829eaa39d9fa619f090019f91d95b09a11bcbb" +source = "git+https://github.com/OpenDevicePartnership/embedded-services#c190e9dc66db154b13efd6c7096ec202b60fe8a1" dependencies = [ "bitfield 0.17.0", "cortex-m", @@ -804,7 +804,7 @@ dependencies = [ [[package]] name = "fw-update-interface" version = "0.1.0" -source = "git+https://github.com/OpenDevicePartnership/embedded-services#a7829eaa39d9fa619f090019f91d95b09a11bcbb" +source = "git+https://github.com/OpenDevicePartnership/embedded-services#c190e9dc66db154b13efd6c7096ec202b60fe8a1" dependencies = [ "defmt 0.3.100", "embedded-services", @@ -944,7 +944,7 @@ dependencies = [ [[package]] name = "mctp-rs" version = "0.1.0" -source = "git+https://github.com/OpenDevicePartnership/embedded-services#a7829eaa39d9fa619f090019f91d95b09a11bcbb" +source = "git+https://github.com/OpenDevicePartnership/embedded-services#c190e9dc66db154b13efd6c7096ec202b60fe8a1" dependencies = [ "bit-register 0.1.0 (git+https://github.com/OpenDevicePartnership/odp-utilities)", "defmt 0.3.100", @@ -1105,7 +1105,7 @@ checksum = "c33a9471896f1c69cecef8d20cbe2f7accd12527ce60845ff44c153bb2a21b49" [[package]] name = "power-policy-interface" version = "0.1.0" -source = "git+https://github.com/OpenDevicePartnership/embedded-services#a7829eaa39d9fa619f090019f91d95b09a11bcbb" +source = "git+https://github.com/OpenDevicePartnership/embedded-services#c190e9dc66db154b13efd6c7096ec202b60fe8a1" dependencies = [ "defmt 0.3.100", "embassy-sync", @@ -1116,7 +1116,7 @@ dependencies = [ [[package]] name = "power-policy-service" version = "0.1.0" -source = "git+https://github.com/OpenDevicePartnership/embedded-services#a7829eaa39d9fa619f090019f91d95b09a11bcbb" +source = "git+https://github.com/OpenDevicePartnership/embedded-services#c190e9dc66db154b13efd6c7096ec202b60fe8a1" dependencies = [ "defmt 0.3.100", "embassy-futures", @@ -1356,6 +1356,36 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "tcpm-interface" +version = "0.1.0" +source = "git+https://github.com/OpenDevicePartnership/embedded-services#c190e9dc66db154b13efd6c7096ec202b60fe8a1" +dependencies = [ + "bitfield 0.17.0", + "defmt 0.3.100", + "embedded-services", + "embedded-usb-pd", + "heapless", + "power-policy-interface", +] + +[[package]] +name = "tcpm-service" +version = "0.1.0" +source = "git+https://github.com/OpenDevicePartnership/embedded-services#c190e9dc66db154b13efd6c7096ec202b60fe8a1" +dependencies = [ + "defmt 0.3.100", + "embassy-futures", + "embassy-sync", + "embassy-time", + "embedded-services", + "embedded-usb-pd", + "fw-update-interface", + "heapless", + "power-policy-interface", + "tcpm-interface", +] + [[package]] name = "thiserror" version = "2.0.18" @@ -1407,8 +1437,8 @@ dependencies = [ "itertools 0.14.0", "pack1", "power-policy-interface", - "type-c-interface", - "type-c-service", + "tcpm-interface", + "tcpm-service", ] [[package]] @@ -1439,9 +1469,9 @@ dependencies = [ "power-policy-service", "rand", "static_cell", + "tcpm-interface", + "tcpm-service", "tps6699x", - "type-c-interface", - "type-c-service", ] [[package]] @@ -1505,36 +1535,6 @@ dependencies = [ "tracing-log", ] -[[package]] -name = "type-c-interface" -version = "0.1.0" -source = "git+https://github.com/OpenDevicePartnership/embedded-services#a7829eaa39d9fa619f090019f91d95b09a11bcbb" -dependencies = [ - "bitfield 0.17.0", - "defmt 0.3.100", - "embedded-services", - "embedded-usb-pd", - "heapless", - "power-policy-interface", -] - -[[package]] -name = "type-c-service" -version = "0.1.0" -source = "git+https://github.com/OpenDevicePartnership/embedded-services#a7829eaa39d9fa619f090019f91d95b09a11bcbb" -dependencies = [ - "defmt 0.3.100", - "embassy-futures", - "embassy-sync", - "embassy-time", - "embedded-services", - "embedded-usb-pd", - "fw-update-interface", - "heapless", - "power-policy-interface", - "type-c-interface", -] - [[package]] name = "typenum" version = "1.20.1" diff --git a/examples/rt685s-evk/Cargo.toml b/examples/rt685s-evk/Cargo.toml index b7ba1cd..d210d71 100644 --- a/examples/rt685s-evk/Cargo.toml +++ b/examples/rt685s-evk/Cargo.toml @@ -53,13 +53,13 @@ embedded-cfu-protocol = { git = "https://github.com/OpenDevicePartnership/embedd embedded-services = { git = "https://github.com/OpenDevicePartnership/embedded-services", optional = true, features = [ "defmt", ] } -type-c-interface = { git = "https://github.com/OpenDevicePartnership/embedded-services", optional = true, features = [ +tcpm-interface = { git = "https://github.com/OpenDevicePartnership/embedded-services", optional = true, features = [ "defmt", ] } fw-update-interface = { git = "https://github.com/OpenDevicePartnership/embedded-services", optional = true, features = [ "defmt", ] } -type-c-service = { git = "https://github.com/OpenDevicePartnership/embedded-services", optional = true, features = [ +tcpm-service = { git = "https://github.com/OpenDevicePartnership/embedded-services", optional = true, features = [ "defmt", ] } power-policy-interface = { git = "https://github.com/OpenDevicePartnership/embedded-services", optional = true, features = [ @@ -76,14 +76,14 @@ cfu-service = { git = "https://github.com/OpenDevicePartnership/embedded-service default = [] odp = [ "dep:embedded-services", - "dep:type-c-interface", + "dep:tcpm-interface", "dep:fw-update-interface", - "dep:type-c-service", + "dep:tcpm-service", "dep:power-policy-interface", "dep:power-policy-service", "dep:cfu-service", "dep:embedded-cfu-protocol", - "tps6699x/odp-type-c-service", + "tps6699x/odp-tcpm-service", "tps6699x/odp-fw-update-interface", ] diff --git a/examples/rt685s-evk/src/bin/odp/tcpm-cfu.rs b/examples/rt685s-evk/src/bin/odp/tcpm-cfu.rs index 0d14321..07d20e7 100644 --- a/examples/rt685s-evk/src/bin/odp/tcpm-cfu.rs +++ b/examples/rt685s-evk/src/bin/odp/tcpm-cfu.rs @@ -27,17 +27,17 @@ use power_policy_interface::psu; use power_policy_service::psu::PsuEventReceivers; use power_policy_service::service::registration::ArrayRegistration; use static_cell::StaticCell; -use tps6699x::odp::driver as tps6699x_drv; -use type_c_interface::port::event::PortEventBitfield; -use type_c_service::controller::event_receiver::{ +use tcpm_interface::port::event::PortEventBitfield; +use tcpm_service::controller::event_receiver::{ EventReceiver as PortEventReceiver, InterruptReceiver as _, PortEventSplitter, }; -use type_c_service::controller::macros::PortComponents; -use type_c_service::controller::state::SharedState as PortSharedState; -use type_c_service::controller::Port; -use type_c_service::define_controller_port_static_cell_channel; -use type_c_service::service::registration::PortData; -use type_c_service::service::Service; +use tcpm_service::controller::macros::PortComponents; +use tcpm_service::controller::state::SharedState as PortSharedState; +use tcpm_service::controller::Port; +use tcpm_service::define_controller_port_static_cell_channel; +use tcpm_service::service::registration::PortData; +use tcpm_service::service::Service; +use tps6699x::odp::driver as tps6699x_drv; extern crate tps6699x_examples_rt685s_evk; @@ -63,11 +63,11 @@ type PortType = Mutex< 'static, Tps6699xMutex<'static>, PortSharedStateType, - type_c_interface::port::event::NonBlockingSenderNotifier< - DynamicSender<'static, type_c_interface::service::event::PortEventData>, + tcpm_interface::port::event::NonBlockingSenderNotifier< + DynamicSender<'static, tcpm_interface::service::event::PortEventData>, >, PowerNotifier<'static>, - DynamicSender<'static, type_c_service::controller::event::Loopback>, + DynamicSender<'static, tcpm_service::controller::event::Loopback>, >, >; type ChargerType = power_policy_interface::charger::mock::ChargerType; @@ -100,8 +100,8 @@ type PowerPolicyServiceType = Mutex< >; const PORT_COUNT: usize = 2; -type PortReceiverType = DynamicReceiver<'static, type_c_interface::service::event::PortEventData>; -type TypeCServiceEventReceiverType = type_c_service::service::event_receiver::ArrayEventReceiver< +type PortReceiverType = DynamicReceiver<'static, tcpm_interface::service::event::PortEventData>; +type TypeCServiceEventReceiverType = tcpm_service::service::event_receiver::ArrayEventReceiver< 'static, PORT_COUNT, PortType, @@ -110,20 +110,15 @@ type TypeCServiceEventReceiverType = type_c_service::service::event_receiver::Ar >; type TypeCServiceNotifierType = - type_c_interface::service::event::NonBlockingSenderNotifier<'static, PortType, NoopSender>; -type TypeCRegistrationType = type_c_service::service::registration::ArrayRegistration< - 'static, - PortType, - PORT_COUNT, - TypeCServiceNotifierType, - 1, ->; -type TypeCServiceType = type_c_service::service::Service<'static, TypeCRegistrationType>; + tcpm_interface::service::event::NonBlockingSenderNotifier<'static, PortType, NoopSender>; +type TypeCRegistrationType = + tcpm_service::service::registration::ArrayRegistration<'static, PortType, PORT_COUNT, TypeCServiceNotifierType, 1>; +type TypeCServiceType = tcpm_service::service::Service<'static, TypeCRegistrationType>; type PortEventReceiverType = PortEventReceiver< 'static, PortSharedStateType, DynamicReceiver<'static, PortEventBitfield>, - DynamicReceiver<'static, type_c_service::controller::event::Loopback>, + DynamicReceiver<'static, tcpm_service::controller::event::Loopback>, >; type CfuUpdaterSharedStateType = Mutex; @@ -263,11 +258,11 @@ async fn power_policy_task( } #[embassy_executor::task] -async fn type_c_service_task( +async fn tcpm_service_task( service: &'static Mutex, event_receiver: TypeCServiceEventReceiverType, ) { - type_c_service::task::task(service, event_receiver).await; + tcpm_service::task::task(service, event_receiver).await; } #[embassy_executor::main] @@ -386,8 +381,8 @@ async fn main(spawner: Spawner) { power_policy_service::service::config::Config::default(), ))); - static TYPE_C_SERVICE: StaticCell> = StaticCell::new(); - let type_c_service = TYPE_C_SERVICE.init(Mutex::new(Service::new( + static TCPM_SERVICE: StaticCell> = StaticCell::new(); + let tcpm_service = TCPM_SERVICE.init(Mutex::new(Service::new( Default::default(), TypeCRegistrationType { ports: [port0, port1], @@ -405,8 +400,8 @@ async fn main(spawner: Spawner) { info!("Spawning type-c service task"); spawner.spawn( - type_c_service_task( - type_c_service, + tcpm_service_task( + tcpm_service, TypeCServiceEventReceiverType::new( [port0, port1], [type_c_receiver0, type_c_receiver1], diff --git a/examples/rt685s-evk/src/bin/odp/tcpm.rs b/examples/rt685s-evk/src/bin/odp/tcpm.rs index 4d09b70..582ae3e 100644 --- a/examples/rt685s-evk/src/bin/odp/tcpm.rs +++ b/examples/rt685s-evk/src/bin/odp/tcpm.rs @@ -20,17 +20,17 @@ use power_policy_interface::psu; use power_policy_service::psu::PsuEventReceivers; use power_policy_service::service::registration::ArrayRegistration; use static_cell::StaticCell; -use tps6699x::odp::driver as tps6699x_drv; -use type_c_interface::port::event::PortEventBitfield; -use type_c_service::controller::event_receiver::{ +use tcpm_interface::port::event::PortEventBitfield; +use tcpm_service::controller::event_receiver::{ EventReceiver as PortEventReceiver, InterruptReceiver as _, PortEventSplitter, }; -use type_c_service::controller::macros::PortComponents; -use type_c_service::controller::state::SharedState; -use type_c_service::controller::Port; -use type_c_service::define_controller_port_static_cell_channel; -use type_c_service::service::registration::PortData; -use type_c_service::service::Service; +use tcpm_service::controller::macros::PortComponents; +use tcpm_service::controller::state::SharedState; +use tcpm_service::controller::Port; +use tcpm_service::define_controller_port_static_cell_channel; +use tcpm_service::service::registration::PortData; +use tcpm_service::service::Service; +use tps6699x::odp::driver as tps6699x_drv; extern crate tps6699x_examples_rt685s_evk; @@ -47,11 +47,11 @@ type PortType = Mutex< 'static, Tps6699xMutex<'static>, SharedStateType, - type_c_interface::port::event::NonBlockingSenderNotifier< - DynamicSender<'static, type_c_interface::service::event::PortEventData>, + tcpm_interface::port::event::NonBlockingSenderNotifier< + DynamicSender<'static, tcpm_interface::service::event::PortEventData>, >, PowerNotifier<'static>, - DynamicSender<'static, type_c_service::controller::event::Loopback>, + DynamicSender<'static, tcpm_service::controller::event::Loopback>, >, >; type ChargerType = power_policy_interface::charger::mock::ChargerType; @@ -84,8 +84,8 @@ type PowerPolicyServiceType = Mutex< >; const PORT_COUNT: usize = 2; -type PortReceiverType = DynamicReceiver<'static, type_c_interface::service::event::PortEventData>; -type TypeCServiceEventReceiverType = type_c_service::service::event_receiver::ArrayEventReceiver< +type PortReceiverType = DynamicReceiver<'static, tcpm_interface::service::event::PortEventData>; +type TypeCServiceEventReceiverType = tcpm_service::service::event_receiver::ArrayEventReceiver< 'static, PORT_COUNT, PortType, @@ -94,20 +94,15 @@ type TypeCServiceEventReceiverType = type_c_service::service::event_receiver::Ar >; type TypeCServiceNotifierType = - type_c_interface::service::event::NonBlockingSenderNotifier<'static, PortType, NoopSender>; -type TypeCRegistrationType = type_c_service::service::registration::ArrayRegistration< - 'static, - PortType, - PORT_COUNT, - TypeCServiceNotifierType, - 1, ->; -type TypeCServiceType = type_c_service::service::Service<'static, TypeCRegistrationType>; + tcpm_interface::service::event::NonBlockingSenderNotifier<'static, PortType, NoopSender>; +type TypeCRegistrationType = + tcpm_service::service::registration::ArrayRegistration<'static, PortType, PORT_COUNT, TypeCServiceNotifierType, 1>; +type TypeCServiceType = tcpm_service::service::Service<'static, TypeCRegistrationType>; type PortEventReceiverType = PortEventReceiver< 'static, SharedStateType, DynamicReceiver<'static, PortEventBitfield>, - DynamicReceiver<'static, type_c_service::controller::event::Loopback>, + DynamicReceiver<'static, tcpm_service::controller::event::Loopback>, >; #[embassy_executor::task(pool_size = 2)] @@ -148,11 +143,11 @@ async fn power_policy_task( } #[embassy_executor::task] -async fn type_c_service_task( +async fn tcpm_service_task( service: &'static Mutex, event_receiver: TypeCServiceEventReceiverType, ) { - type_c_service::task::task(service, event_receiver).await; + tcpm_service::task::task(service, event_receiver).await; } #[embassy_executor::main] @@ -248,8 +243,8 @@ async fn main(spawner: Spawner) { power_policy_service::service::config::Config::default(), ))); - static TYPE_C_SERVICE: StaticCell> = StaticCell::new(); - let type_c_service = TYPE_C_SERVICE.init(Mutex::new(Service::new( + static TCPM_SERVICE: StaticCell> = StaticCell::new(); + let tcpm_service = TCPM_SERVICE.init(Mutex::new(Service::new( Default::default(), TypeCRegistrationType { ports: [port0, port1], @@ -267,8 +262,8 @@ async fn main(spawner: Spawner) { info!("Spawning type-c service task"); spawner.spawn( - type_c_service_task( - type_c_service, + tcpm_service_task( + tcpm_service, TypeCServiceEventReceiverType::new( [port0, port1], [type_c_receiver0, type_c_receiver1], diff --git a/src/odp/driver.rs b/src/odp/driver.rs index c1040f0..d5cac2e 100644 --- a/src/odp/driver.rs +++ b/src/odp/driver.rs @@ -14,21 +14,21 @@ use embedded_usb_pd::type_c::Current as TypecCurrent; use embedded_usb_pd::ucsi::v1_2::lpm; use embedded_usb_pd::{DataRole, Error, LocalPortId, PdError, PlugOrientation, PowerRole}; use heapless::Vec; -use type_c_interface::control::dp::{DpConfig, DpPinConfig, DpStatus}; -use type_c_interface::control::pd::{ +use tcpm_interface::control::dp::{DpConfig, DpPinConfig, DpStatus}; +use tcpm_interface::control::pd::{ PdSinkInfo, PdSourceInfo, PdStateMachineConfig, PortStatus, SinkContract, SourceContract, }; -use type_c_interface::control::power::SystemPowerState; -use type_c_interface::control::retimer::RetimerFwUpdateState; -use type_c_interface::control::svid::DiscoveredSvids; -use type_c_interface::control::tbt::TbtConfig; -use type_c_interface::control::type_c::TypeCStateMachineState; -use type_c_interface::control::usb::UsbControlConfig; -use type_c_interface::control::vdm::{ATTN_VDM_LEN, AttnVdm, OtherVdm, SendVdm}; -use type_c_interface::controller::Controller; -use type_c_interface::controller::pd::Pd; -use type_c_interface::controller::retimer::Retimer; -use type_c_interface::util::{power_capability_from_current, power_capability_try_from_contract}; +use tcpm_interface::control::power::SystemPowerState; +use tcpm_interface::control::retimer::RetimerFwUpdateState; +use tcpm_interface::control::svid::DiscoveredSvids; +use tcpm_interface::control::tbt::TbtConfig; +use tcpm_interface::control::type_c::TypeCStateMachineState; +use tcpm_interface::control::usb::UsbControlConfig; +use tcpm_interface::control::vdm::{ATTN_VDM_LEN, AttnVdm, OtherVdm, SendVdm}; +use tcpm_interface::controller::Controller; +use tcpm_interface::controller::pd::Pd; +use tcpm_interface::controller::retimer::Retimer; +use tcpm_interface::util::{power_capability_from_current, power_capability_try_from_contract}; use crate::asynchronous::embassy as tps6699x_drv; use crate::asynchronous::fw_update::BorrowedUpdaterInProgress; @@ -767,7 +767,7 @@ impl Retimer for Tps6699x<'_, M, B> { } } -impl type_c_interface::controller::pd::StateMachine for Tps6699x<'_, M, B> { +impl tcpm_interface::controller::pd::StateMachine for Tps6699x<'_, M, B> { async fn set_pd_state_machine_config( &mut self, port: LocalPortId, @@ -785,7 +785,7 @@ impl type_c_interface::controller::pd::StateMachine for Tps } } -impl type_c_interface::controller::type_c::StateMachine for Tps6699x<'_, M, B> { +impl tcpm_interface::controller::type_c::StateMachine for Tps6699x<'_, M, B> { async fn set_type_c_state_machine_config( &mut self, port: LocalPortId, @@ -808,7 +808,7 @@ impl type_c_interface::controller::type_c::StateMachine for } } -impl type_c_interface::ucsi::Lpm for Tps6699x<'_, M, B> { +impl tcpm_interface::ucsi::Lpm for Tps6699x<'_, M, B> { async fn execute_lpm_command(&mut self, command: lpm::LocalCommand) -> Result, PdError> { self.guard_no_fw_update_active()?; self.tps6699x @@ -818,7 +818,7 @@ impl type_c_interface::ucsi::Lpm for Tps6699x<'_, M, B> { } } -impl type_c_interface::controller::electrical_disconnect::ElectricalDisconnect +impl tcpm_interface::controller::electrical_disconnect::ElectricalDisconnect for Tps6699x<'_, M, B> { async fn execute_electrical_disconnect( @@ -843,7 +843,7 @@ impl type_c_interface::controller::electrical_disconnect::E } } -impl type_c_interface::controller::power::SystemPowerStateStatus for Tps6699x<'_, M, B> { +impl tcpm_interface::controller::power::SystemPowerStateStatus for Tps6699x<'_, M, B> { async fn set_system_power_state_status( &mut self, port: LocalPortId, @@ -867,7 +867,7 @@ impl type_c_interface::controller::power::SystemPowerStateS } } -impl type_c_interface::controller::max_sink_voltage::MaxSinkVoltage for Tps6699x<'_, M, B> { +impl tcpm_interface::controller::max_sink_voltage::MaxSinkVoltage for Tps6699x<'_, M, B> { async fn set_max_sink_voltage(&mut self, port: LocalPortId, voltage_mv: Option) -> Result<(), PdError> { self.guard_no_fw_update_active()?; self.tps6699x diff --git a/src/odp/mod.rs b/src/odp/mod.rs index 0d76926..499aaea 100644 --- a/src/odp/mod.rs +++ b/src/odp/mod.rs @@ -1,5 +1,5 @@ pub mod driver; #[cfg(feature = "odp-fw-update-interface")] pub mod fw_update; -#[cfg(feature = "odp-type-c-service")] +#[cfg(feature = "odp-tcpm-service")] pub mod service; diff --git a/src/odp/service.rs b/src/odp/service.rs index 0a107f3..eb19252 100644 --- a/src/odp/service.rs +++ b/src/odp/service.rs @@ -2,13 +2,13 @@ use core::iter::zip; use embassy_sync::blocking_mutex::raw::RawMutex; use embedded_hal_async::i2c::I2c; -use type_c_interface::port::event::PortEventBitfield; +use tcpm_interface::port::event::PortEventBitfield; use crate::asynchronous::embassy::interrupt; use crate::registers::field_sets::IntEventBus1; use crate::{MAX_SUPPORTED_PORTS, debug}; -impl<'a, M: RawMutex, BUS: I2c> type_c_service::controller::event_receiver::InterruptReceiver +impl<'a, M: RawMutex, BUS: I2c> tcpm_service::controller::event_receiver::InterruptReceiver for interrupt::InterruptReceiver<'a, M, BUS> { async fn wait_interrupt(&mut self) -> [PortEventBitfield; MAX_SUPPORTED_PORTS] {