Commit Graph

137 Commits

Author SHA1 Message Date
Piotr Mienkowski 17b08ceca5 power: clean up system power managment function names
This commit cleans up names of system power management functions by
assuring that:
- all functions start with 'sys_pm_' prefix
- API functions which should not be exposed to the user start with '_'
- name of the function hints at its purpose

Signed-off-by: Piotr Mienkowski <piotr.mienkowski@gmail.com>
2019-03-26 13:27:55 -04:00
Piotr Mienkowski 204311d004 power: rename Low Power States to Sleep States
There exists SoCs, e.g. STM32L4, where one of the low power modes
reduces CPU frequency and supply voltage but does not stop the CPU. Such
power modes are currently not supported by Zephyr.

To facilitate adding support for such class of power modes in the future
and to ensure the naming convention makes it clear that the currently
supported power modes stop the CPU this commit renames Low Power States
to Slep States and updates the documentation.

Signed-off-by: Piotr Mienkowski <piotr.mienkowski@gmail.com>
2019-03-26 13:27:55 -04:00
Carles Cufi 8f05a4c6d5 doc: Bluetooth: Documentation overhaul
Overhaul the Bluetooth documentation to split it into manageable units
and include additional information, such as architecture and tooling.

Signed-off-by: Carles Cufi <carles.cufi@nordicsemi.no>
2019-03-13 10:40:05 +01:00
David B. Kinder 505cc2bb0e doc: use :zephyr_file: where appropriate
A new role :zephyr_file: is available that renders to a link to the file
or folder in GitHub.  Find appropriate references using :file: and
convert to :zephyr_file: to take advantage of its linking capability.

Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2019-03-09 09:50:27 -05:00
Piotr Mienkowski f04a4c9deb power: rename CPU_LPS_n power states
CPU_LPS_n name used to indicate a low power state is cryptic and
incorrect. The low power states act on the whole SoC and not exclusively
on the CPU. This patch renames CPU_LPS_n states to LOW_POWER_n. Also
HAS_ pattern for Kconfig options is used in favor of a non standard
_SUPPORTED. Naming of deep sleep states was adjusted accordingly.

Following is a detailed list of string replacements used:
s/SYS_POWER_STATE_CPU_LPS_(\d)_SUPPORTED/HAS_STATE_LOW_POWER_$1/
s/SYS_POWER_STATE_CPU_LPS_(\d)/SYS_POWER_STATE_LOW_POWER_$1/
s/SYS_POWER_STATE_DEEP_SLEEP_(\d)_SUPPORTED/HAS_STATE_DEEP_SLEEP_$1/

Signed-off-by: Piotr Mienkowski <piotr.mienkowski@gmail.com>
2019-02-26 02:30:13 +01:00
Piotr Mienkowski c75187587b power: simplify SYS_POWER_*_SUPPORTED Kconfig options
This commit removes dependency on SYS_POWER_LOW_POWER_STATES_SUPPORTED,
SYS_POWER_DEEP_SLEEP_STATES_SUPPORTED Kconfig options. Power management
SYS_POWER_LOW_POWER_STATES, SYS_POWER_DEEP_SLEEP_STATES options depend
now directly on specific power states supported by the given SoC. This
simplifies maintenance of SoC Kconfig files.

Signed-off-by: Piotr Mienkowski <piotr.mienkowski@gmail.com>
2019-02-26 02:30:13 +01:00
Henrik Brix Andersen 17cc291d68 samples: nrf52: mesh: onoff-app: add missing CONFIG_GPIO
Add missing CONFIG_GPIO required by the nRF52 board-specific Bluetooth
Mesh On/Off application sample.

Signed-off-by: Henrik Brix Andersen <henrik@brixandersen.dk>
2019-02-24 12:55:54 -05:00
Piotr Zięcik 4558c5c4f4 power: policy_residency: Update Kconfig options description
This commit adds better description to the Kconfig options
configuring residency-based power policy.

Signed-off-by: Piotr Zięcik <piotr.ziecik@nordicsemi.no>
2019-02-19 13:25:36 -05:00
Piotr Zięcik 63b0df645e power: Clean up power state names
Some of power states used numerical suffix while otthers not.
This commit adds proper suffix to all power state names.

Signed-off-by: Piotr Zięcik <piotr.ziecik@nordicsemi.no>

f
2019-02-19 13:25:36 -05:00
Piotr Zięcik c45961daae power: Rework OS <-> Application interface
This commit simplifies OS <-> Application interface controlling power
management. In the previous approach application-based PM required
overriding sys_suspend() and sys_resume() functions. As these functions
actually implemented power state change, in such case application
basically had to provide own implementation of all PM-related stuff,
which was not portable and hard to maintain.

This commit changes this scheme: The sys_suspend() and sys_resume()
are now system functions while the application could either use
built-in power management policies or provide its own. All details
of power mode switching are now handled by the OS.

Also, this commit cleans up the Kconfig options related to system-level
power management grouping them under common CONFIG_SYS_PM_ prefix.

Signed-off-by: Piotr Zięcik <piotr.ziecik@nordicsemi.no>
2019-02-19 13:25:36 -05:00
Piotr Zięcik 9cc63e07e4 power: Fix naming of Kconfig options controlling deep sleep states
This commit changes the names of SYS_POWER_DEEP_SLEEP* Kconfig
options in order to match SYS_POWER_LOW_POWER_STATE* naming
scheme.

Signed-off-by: Piotr Zięcik <piotr.ziecik@nordicsemi.no>
2019-02-12 07:46:32 -05:00
Piotr Zięcik 7a49356c77 power: Fix naming of Kconfig options controlling low power states
The SYS_POWER_LOW_POWER_STATE_SUPPORTED and SYS_POWER_LOW_POWER_STATE
suggests one low power state but these options control multiple
low power state. This commit uses plural in the names to indicate
that.

Signed-off-by: Piotr Zięcik <piotr.ziecik@nordicsemi.no>
2019-02-12 07:46:32 -05:00
Piotr Zięcik ff5070472b samples: nrf52: power_mgr: Demonstrate power state forcing
This commit extends the power_mgr sample in order to demonstrate
power state forcing using the sys_pm_force_power_state() API.

Signed-off-by: Piotr Zięcik <piotr.ziecik@nordicsemi.no>
2019-02-11 07:52:12 -05:00
Vikrant More 49aeb1ffe3 samples: mesh: taking care of interrupted transition
With this commit, it is now possible that if (for e.g.) lightness
transition is interrupted by temperature transition (which could
be instantaneous or non-instanstaneous) then as soon as temperature
transition get over, then algorithm would achieve target value
of lightness.

Signed-off-by: Vikrant More <vikrant8051@gmail.com>
2019-02-07 21:01:37 +02:00
Piotr Zięcik 461c81dc38 samples: nrf52: power_mgr: Show effect of power state locking
This commit enhances the power_mgr sample by adding code
presenting power state locking API as well as its effect
on the decisions made by the Power Management Policy.

Signed-off-by: Piotr Zięcik <piotr.ziecik@nordicsemi.no>
2019-02-06 14:24:01 +01:00
Piotr Zięcik b343665064 samples: nrf52: power_mgr: Enable the demo on the nRF51 SoC series
This commit updates the README and sample.yaml in order to signal
that this demo works flawlessly on the nRF51 platform.

Signed-off-by: Piotr Zięcik <piotr.ziecik@nordicsemi.no>
2019-01-31 17:39:27 +01:00
Piotr Zięcik a0f02b6a6d samples: nrf52: power_mgr: Update sample to use Zephyr PM policy
This commit updates the power management sample in order to use
new features introduced by recent changes in the Zehyr Power
Management subsystem. Now, it shows how to use power management
policies as well as how to implement custom power modes.

Signed-off-by: Piotr Zięcik <piotr.ziecik@nordicsemi.no>
2019-01-31 17:39:27 +01:00
Vikrant More 732cfac519 samples: mesh: removed bug which is cause of divide by zero exception
If Client send transition time values as 0x40 or 0x80 or 0xC0 then
this was cause the behind divide by zero exception during calculation
of transition->counter. This PR will solve this bug.

Signed-off-by: Vikrant More <vikrant8051@gmail.com>
2019-01-30 21:48:02 +02:00
Sebastian Bøe c7af520915 cmake: samples: mesh: Remove redundant CMake code
This sample is linking the 'app' with 'subsys__bluetooth', which will
add zephyr/subsys/bluetooth to the include path of the app. But this
is unnecessary as the app already has this path on it's include path.

Signed-off-by: Sebastian Bøe <sebastian.boe@nordicsemi.no>
2019-01-17 17:26:01 +02:00
Vikrant More b5017ec7dc samples: mesh: restriction to re-transmit publish messages
If Server receives re-transmitted message then it will not
transmit corresponding publish message for it.

Signed-off-by: Vikrant More <vikrant8051@gmail.com>
2019-01-16 13:35:54 +02:00
Vikrant More a61f7c39aa samples: mesh: feature to save Lightness & Temp. Range on Flash
With this commit, it is now possible to save Lightness &
temperature Range values on SoC flash.

Signed-off-by: Vikrant More <vikrant8051@gmail.com>
2019-01-16 13:35:54 +02:00
Vikrant More f4f6426582 samples: mesh: code improvements
Added app_gpio.c & no_transition_work_handler.c to reduce
burden on main.c. It will simplify & help to understand
overall architecture.

Signed-off-by: Vikrant More <vikrant8051@gmail.com>
2019-01-16 13:35:54 +02:00
Vikrant More b9511f2117 samples: mesh: revised states binding & target value calculation
Simplified algorithm behind states binding & target values calculation.
This has improved code readability.

Signed-off-by: Vikrant More <vikrant8051@gmail.com>
2019-01-16 13:35:54 +02:00
Vikrant More 41b1e3e238 samples: mesh: Remove redundant code
Removed redundant code.

Signed-off-by: Vikrant More <vikrant8051@gmail.com>
2019-01-16 13:35:54 +02:00
Anas Nashif 5060ca6a30 cmake: increase minimal required version to 3.13.1
Move to latest cmake version with many bug fixes and enhancements.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
Signed-off-by: Carles Cufi <carles.cufi@nordicsemi.no>
2019-01-03 11:51:29 -05:00
Anas Nashif 74a74bb6b8 power: rename api sys_soc -> sys_
sys_soc is just redundant, just call APIs with sys_*.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2018-12-28 16:16:28 -05:00
Anas Nashif 9151fbebf2 power: rename APIs and removing leading _
Remove leading underscore from PM APIs. _ was used for internal APIs.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2018-12-28 16:16:28 -05:00
Vikrant More e498271652 samples: mesh: enable retransmission of GET & Publish messages
Now if Server receives re-transmitted messages from client then
it will not get completely ignored but respective GET & Publish
message will get release from Server side.

Signed-off-by: Vikrant More <vikrant8051@gmail.com>
2018-12-13 16:52:24 +02:00
Vikrant More 59d4589e14 samples: mesh: follow Mesh study guide to avoid retransmitted message
As per Mesh Model Specification,
when a Server receives a Set message or a Set Unacknowledged message,
it shall set the state to the target field of the message,
unless the message has the same values for the SRC, DST, and TID
fields as the previous message received within the last 6 seconds.

This commit take care of this requirement.

Signed-off-by: Vikrant More <vikrant8051@gmail.com>
2018-12-13 16:52:24 +02:00
Vikrant More 5ea8454e46 samples: mesh: nrf52: coding style improvement (Vendor Model)
This commit's implementation update Vendor Model dummy response
value in vnd_get() instead of vnd_set_unack().

Signed-off-by: Vikrant More <vikrant8051@gmail.com>
2018-12-12 16:47:53 +02:00
Vikrant More d2f89e16e2 samples: mesh: nrf52: removed bug introduced by PR:9521
Removed bug which get introduced by PR:9521. Because of it
not able to save App's variable on SoC flash.

Signed-off-by: Vikrant More <vikrant8051@gmail.com>
2018-12-12 16:47:53 +02:00
Vikrant More c41a837004 samples: nrf52: mesh: removed unwanted lines of Code
Removed redundant lines of code which are inappropriate
as per latest implementation.

Signed-off-by: Vikrant More <vikrant8051@gmail.com>
2018-12-12 16:47:53 +02:00
Andrzej Puzdrowski 2267668e87 sample: host: mesh: onoff_level_lighting align code to reworked settings
The Code need to be align after introduction of stream codec to
setting serialization subsystem.

Signed-off-by: Andrzej Puzdrowski <andrzej.puzdrowski@nordicsemi.no>
2018-12-11 11:22:16 +01:00
Vikrant More 067d527a34 samples: mesh: nrf52: improved code readability
Improved code readability by defining some macros.

Signed-off-by: Vikrant More <vikrant8051@gmail.com>
2018-12-05 20:31:24 +02:00
Vikrant More d4b85837fb samples: mesh: nrf52: state binding improvements
Corrected state binding. With this commit Light Lightness
actual state would not cross its upper & lower limit.

Signed-off-by: Vikrant More <vikrant8051@gmail.com>
2018-12-05 20:31:24 +02:00
Vikrant More e8d4290d83 samples: mesh: nrf52: removed bugs in Target values calculation
Target values should change as per min. & max. values of
bound states. This commit handles this.

Signed-off-by: Vikrant More <vikrant8051@gmail.com>
2018-12-05 20:31:24 +02:00
Vikrant More 6456d14a9d samples: mesh: nrf52: improved coding style
Improved coding style.

Signed-off-by: Vikrant More <vikrant8051@gmail.com>
2018-12-05 20:31:24 +02:00
Vikrant More 313ce9d54a samples: mesh: nrf52: rename some functions name
Function names should have a verb as the last component.
As per this standard, rename some fuunctions names.

Signed-off-by: Vikrant More <vikrant8051@gmail.com>
2018-12-05 20:31:24 +02:00
Vikrant More 7871128b19 samples: mesh: nrf52: removed bug in Gen. level Move GET & Publish
Due to recent changes some bugs had introduced in Gen. Level Move
GET & Publish functionalities. Now separatly introduced
gen_level_move_get() and gen_level_move_publisher() to resolved it.

Signed-off-by: Vikrant More <vikrant8051@gmail.com>
2018-12-05 20:31:24 +02:00
Patrik Flykt 079f55d519 samples: Add 'U' to unsigned variable assignments
Add 'U' to a value when assigning it to an unsigned variable.
MISRA-C rule 7.2

Signed-off-by: Patrik Flykt <patrik.flykt@intel.com>
2018-12-04 22:51:56 -05:00
Vikrant More 089d18b403 samples: mesh: nrf52: upgrade re-transmission parameters
Upgrade NODE's transmission parameters.

Signed-off-by: Vikrant More <vikrant8051@gmail.com>
2018-12-01 15:14:43 +02:00
Vikrant More cb0b52837b samples: mesh: update Kconfig parameter for better performance
Upgrade & add few Kconfig parameters to improve Bluetooth Mesh
performance.

Signed-off-by: Vikrant More <vikrant8051@gmail.com>
2018-12-01 15:14:43 +02:00
Vikrant More 0c29ca367d samples: mesh: nrf52: removed bug in Gen. onoff unack handler
In Gen. OnOff Unack handler, gen_onoff_publisher(model) was
misplaced previously & now it is set to proper location.

Signed-off-by: Vikrant More <vikrant8051@gmail.com>
2018-11-28 13:39:03 +02:00
Vikrant More d0b74e2f7e samples: mesh: nrf52: improve in execution if trnasition time is Zero
If transition time is not equal to Zero then & then only values
related to transition get calculated.

Signed-off-by: Vikrant More <vikrant8051@gmail.com>
2018-11-24 10:29:30 +02:00
Vikrant More 66a2bf03ba samples: mesh: nrf52: implementation as Mesh Model specs 3.1.1.1
Now if Gen. OnOff state set by client as '1' with some
transition time then value of Lightness will not jump to default
or last value instantly instead it would gradually increase during
that transition period.

Signed-off-by: Vikrant More <vikrant8051@gmail.com>
2018-11-23 22:29:29 +02:00
Vikrant More fc0a310e15 samples: mesh: nrf52: coding style improvements
Create independent function handlers for some Servers. This
would not initiate state binding if current state is equal to
Client requested state.

Signed-off-by: Vikrant More <vikrant8051@gmail.com>
2018-11-23 22:29:29 +02:00
Piotr Mienkowski 970aef2905 kernel: ensure System Power Managment enables Tickless Idle.
System Power Management is only supported in Tickless Idle mode.
This patch modifies Kconfig dependencies to ensure System Power
Management option selects Tickless Idle one.

Fixes: #11046

Signed-off-by: Piotr Mienkowski <piotr.mienkowski@gmail.com>
2018-11-21 23:16:35 -05:00
Vikrant More 227c1b28b3 samples: mesh: nrf52: make all transition timer dependent
This commit will take back changes made by previous commit
i.e. fad8ff39c3.

This is beacause k_sleep() based delay is not behaving as
expected while testing & take more time than expected.

Signed-off-by: Vikrant More <vikrant8051@gmail.com>
2018-11-21 22:23:18 +02:00
Mariusz Skamra 8f5ba0be88 Bluetooth: Add common Kconfig option to disable LE Data Length Update
This adds common option to disable support for LE Data Length Update
procedure in controller and host.
This will reduce flash usage by compiling out le_data_len_change
event handler that will never be called if controller has been
compiled with BT_CTLR_DATA_LENGTH option disabled.

Signed-off-by: Mariusz Skamra <mariusz.skamra@codecoup.pl>
2018-11-21 12:26:27 -05:00
Mariusz Skamra be314d3af5 Bluetooth: Add common Kconfig option to disable PHY Update
This adds common option to disable support for PHY Update
procedure in controller and host.
This will reduce flash usage by compiling out le_phy_update_complete
event handler that will never be called if controller has been
compiled with BT_CTLR_PHY option disabled.

Signed-off-by: Mariusz Skamra <mariusz.skamra@codecoup.pl>
2018-11-21 12:26:27 -05:00