This is an automated email from the ASF dual-hosted git repository. andk pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/mynewt-nimble.git
commit 05538bc66db58c5fb676d1f62a9ad8f99ed6cb74 Author: Andrzej Kaczmarek <[email protected]> AuthorDate: Tue Jan 11 15:35:35 2022 +0100 nimble/ll: Add support for PA/LNA This adds some definitions for PA/LNA support. The actual support is implemented in phy and front-end driver. --- nimble/controller/include/controller/ble_ll_plna.h | 45 ++++++++++++++++++++++ nimble/controller/pkg.yml | 4 ++ nimble/controller/src/ble_ll.c | 9 +++++ nimble/controller/syscfg.yml | 19 +++++++++ 4 files changed, 77 insertions(+) diff --git a/nimble/controller/include/controller/ble_ll_plna.h b/nimble/controller/include/controller/ble_ll_plna.h new file mode 100644 index 0000000..c4fb65e --- /dev/null +++ b/nimble/controller/include/controller/ble_ll_plna.h @@ -0,0 +1,45 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +#ifndef H_BLE_LL_PLNA_ +#define H_BLE_LL_PLNA_ + +#ifdef __cplusplus +extern "C" { +#endif + +#include "syscfg/syscfg.h" + +#if MYNEWT_VAL(BLE_LL_PA) +void ble_ll_plna_pa_init(void); +void ble_ll_plna_pa_enable(void); +void ble_ll_plna_pa_disable(void); +#endif + +#if MYNEWT_VAL(BLE_LL_LNA) +void ble_ll_plna_lna_init(void); +void ble_ll_plna_lna_enable(void); +void ble_ll_plna_lna_disable(void); +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* H_BLE_LL_PLNA_ */ diff --git a/nimble/controller/pkg.yml b/nimble/controller/pkg.yml index 96c6367..9661bb3 100644 --- a/nimble/controller/pkg.yml +++ b/nimble/controller/pkg.yml @@ -29,6 +29,10 @@ pkg.req_apis: - ble_driver - ble_transport - stats +pkg.req_apis.BLE_LL_PA: + - ble_ll_pa +pkg.req_apis.BLE_LL_LNA: + - ble_ll_lna pkg.deps: - "@apache-mynewt-core/kernel/os" diff --git a/nimble/controller/src/ble_ll.c b/nimble/controller/src/ble_ll.c index 99e8594..f21f55c 100644 --- a/nimble/controller/src/ble_ll.c +++ b/nimble/controller/src/ble_ll.c @@ -44,6 +44,7 @@ #include "controller/ble_ll_rfmgmt.h" #include "controller/ble_ll_trace.h" #include "controller/ble_ll_sync.h" +#include "controller/ble_ll_plna.h" #include "ble_ll_conn_priv.h" #include "ble_ll_hci_priv.h" #include "ble_ll_priv.h" @@ -1656,6 +1657,14 @@ ble_ll_reset(void) ble_ll_resolv_list_reset(); #endif + +#if MYNEWT_VAL(BLE_LL_PA) + ble_ll_plna_pa_init(); +#endif +#if MYNEWT_VAL(BLE_LL_LNA) + ble_ll_plna_lna_init(); +#endif + /* Re-initialize the PHY */ rc = ble_phy_init(); diff --git a/nimble/controller/syscfg.yml b/nimble/controller/syscfg.yml index 62c9c4a..41384cb 100644 --- a/nimble/controller/syscfg.yml +++ b/nimble/controller/syscfg.yml @@ -375,6 +375,23 @@ syscfg.defs: line number where assertion occured. value: 0 + BLE_LL_PA: + description: Enable PA support + value: 0 + BLE_LL_PA_GPIO: + description: > + GPIO pin number to control PA. Pin is set to high state when PA + should be enabled. + value: -1 + BLE_LL_LNA: + description: Enable LNA support + value: 0 + BLE_LL_LNA_GPIO: + description: > + GPIO pin number to control LNA. Pin is set to high state when LNA + should be enabled. + value: -1 + BLE_LL_SYSINIT_STAGE: description: > Sysinit stage for the NimBLE controller. @@ -499,3 +516,5 @@ syscfg.vals.!BLE_HOST: syscfg.restrictions: - OS_CPUTIME_FREQ == 32768 - BLE_LL_PUBLIC_DEV_ADDR <= 0xffffffffffff + - BLE_LL_PA == 0 || BLE_LL_PA_GPIO >= 0 + - BLE_LL_LNA == 0 || BLE_LL_LNA_GPIO >= 0
