From 2ddecdc6e8bda115348cba3148d140db7f87f232 Mon Sep 17 00:00:00 2001 From: Serhii Salamakha Date: Wed, 11 Oct 2023 13:11:53 +0300 Subject: [PATCH] west.yml: ld: soc: move BLE data to RAM DLT in deep sleep mode Moved BLE data to RAM DLT in deep sleep mode Signed-off-by: Serhii Salamakha --- config/telink/chip-module/Kconfig.defaults | 13 +- examples/light-switch-app/telink/prj.conf | 5 + .../telink/tlsr9528a_retention.overlay | 116 ++++++++++++++++++ 3 files changed, 132 insertions(+), 2 deletions(-) create mode 100644 src/platform/telink/tlsr9528a_retention.overlay diff --git a/config/telink/chip-module/Kconfig.defaults b/config/telink/chip-module/Kconfig.defaults index d70fff0d50f3fa..a9e9227c501f2d 100644 --- a/config/telink/chip-module/Kconfig.defaults +++ b/config/telink/chip-module/Kconfig.defaults @@ -64,7 +64,7 @@ config INIT_STACKS default y config IDLE_STACK_SIZE - default 387 if PM + default 512 if PM config ISR_STACK_SIZE default 502 if PM @@ -73,7 +73,10 @@ config SYSTEM_WORKQUEUE_STACK_SIZE default 616 if PM config HEAP_MEM_POOL_SIZE - default 128 if PM + default 256 + +config COMMON_LIBC_MALLOC_ARENA_SIZE + default 10240 config NET_IPV6_MLD default n @@ -151,6 +154,12 @@ choice B9X_BLE_CTRL_MAC_TYPE default B9X_BLE_CTRL_MAC_TYPE_RANDOM_STATIC endchoice +#Board retention config +if BOARD_TLSR9528A_RETENTION || BOARD_TLSR9518ADK80D_RETENTION +config BOARD_TLSR9X_NON_RETENTION_RAM_CODE + default y if PM +endif + # Config dynamic interrupts to have posibility to switch between BLE/Thread radio drivers config DYNAMIC_INTERRUPTS default y diff --git a/examples/light-switch-app/telink/prj.conf b/examples/light-switch-app/telink/prj.conf index 184e824904c519..7bc85a49148797 100755 --- a/examples/light-switch-app/telink/prj.conf +++ b/examples/light-switch-app/telink/prj.conf @@ -56,3 +56,8 @@ CONFIG_CHIP_CERTIFICATION_DECLARATION_STORAGE=n # Enable Power Management CONFIG_PM=y +CONFIG_CHIP_ICD_SLOW_POLL_INTERVAL=10000 +CONFIG_CHIP_ICD_FAST_POLLING_INTERVAL=2000 +CONFIG_CHIP_ICD_IDLE_MODE_INTERVAL=2000 +CONFIG_CHIP_ICD_ACTIVE_MODE_INTERVAL=2001 +CONFIG_CHIP_ICD_ACTIVE_MODE_THRESHOLD=2000 diff --git a/src/platform/telink/tlsr9528a_retention.overlay b/src/platform/telink/tlsr9528a_retention.overlay new file mode 100644 index 00000000000000..c57cc0eb0341e2 --- /dev/null +++ b/src/platform/telink/tlsr9528a_retention.overlay @@ -0,0 +1,116 @@ +/ { + aliases { + system-state-led = &led_red; + pwm-led0 = &pwm_led0; + pwm-led1 = &pwm_led1; + pwm-led2 = &pwm_led2; + pwm-led3 = &pwm_led3; + }; + + pwm_leds { + /delete-node/ pwm_led_0; + pwm_led0: pwm_led_0 { + pwms = <&pwm0 0 PWM_MSEC(20) PWM_POLARITY_NORMAL>; + label = "PWM LED Blue"; + }; + pwm_led1: pwm_led_1 { + pwms = <&pwm0 3 PWM_MSEC(20) PWM_POLARITY_NORMAL>; + label = "PWM LED Green"; + }; + pwm_led2: pwm_led_2 { + pwms = <&pwm0 2 PWM_MSEC(20) PWM_POLARITY_NORMAL>; + label = "PWM LED Red"; + }; + pwm_led3: pwm_led_3 { + pwms = <&pwm0 1 PWM_MSEC(20) PWM_POLARITY_NORMAL>; + label = "PWM IDENTIFY LED Green"; + }; + }; + + keys { + /delete-node/ button_1; + /delete-node/ button_3; + compatible = "gpio-keys"; + key_1: button_1 { + gpios = <&gpiod 2 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>; + }; + key_2: button_2 { + gpios = <&gpiod 7 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>; + }; + key_3: button_3 { + gpios = <&gpiod 6 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>; + }; + key_4: button_4 { + gpios = <&gpiof 6 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>; + }; + + key_matrix_col1: key_matrix_col1 { + gpios = <&gpiod 6 GPIO_ACTIVE_HIGH>; + }; + key_matrix_col2: key_matrix_col2 { + gpios = <&gpiof 6 GPIO_ACTIVE_HIGH>; + }; + key_matrix_row1: key_matrix_row1 { + gpios = <&gpiod 2 GPIO_PULL_DOWN>; + }; + key_matrix_row2: key_matrix_row2 { + gpios = <&gpiod 7 GPIO_PULL_DOWN>; + }; + }; +}; + +&pinctrl { + pwm_ch0_pd0_default: pwm_ch0_pd0_default { + pinmux = ; + }; + pwm_ch1_pd1_default: pwm_ch1_pd1_default { + pinmux = ; + }; + pwm_ch2_pe2_default: pwm_ch2_pe2_default { + pinmux = ; + }; + pwm_ch3_pe0_default: pwm_ch3_pe0_default { + pinmux = ; + }; +}; + +&pwm0 { + pinctrl-0 = <&pwm_ch0_pd0_default &pwm_ch1_pd1_default &pwm_ch2_pe2_default &pwm_ch3_pe0_default>; +}; + +&flash { + reg = <0x20000000 0x200000>; + + partitions { + /delete-node/ partition@0; + /delete-node/ partition@20000; + /delete-node/ partition@88000; + /delete-node/ partition@f0000; + /delete-node/ partition@f4000; + /delete-node/ partition@fe000; + boot_partition: partition@0 { + label = "mcuboot"; + reg = <0x00000000 0x19000>; + }; + slot0_partition: partition@19000 { + label = "image-0"; + reg = <0x19000 0xee000>; + }; + factory_partition: partition@107000 { + label = "factory-data"; + reg = <0x107000 0x1000>; + }; + storage_partition: partition@108000 { + label = "storage"; + reg = <0x108000 0x8000>; + }; + slot1_partition: partition@110000 { + label = "image-1"; + reg = <0x110000 0xee000>; + }; + vendor_partition: partition@1fe000 { + label = "vendor-data"; + reg = <0x1fe000 0x2000>; + }; + }; +};