[FL-3232] FuriHal: fix gpio naming and add explicit pulls for vibro, speaker and ir_tx (#2565)
* FuriHal: fix gpio naming and add explicit pulls for vibro, speaker and ir_tx * Github: workflow event debug print * Github: proper PR head commit SHA extraction in get_env.py
This commit is contained in:
		
							parent
							
								
									d1ad924216
								
							
						
					
					
						commit
						0d8518d31d
					
				
							
								
								
									
										4
									
								
								.github/workflows/build.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								.github/workflows/build.yml
									
									
									
									
										vendored
									
									
								
							| @ -37,7 +37,7 @@ jobs: | |||||||
|           else |           else | ||||||
|             TYPE="other" |             TYPE="other" | ||||||
|           fi |           fi | ||||||
|           python3 scripts/get_env.py "--event_file=${{ github.event_path }}" "--type=$TYPE" |           python3 scripts/get_env.py "--event_file=${{ github.event_path }}" "--type=$TYPE" || cat "${{ github.event_path }}" | ||||||
|           echo random_hash=$(openssl rand -base64 40 | shasum -a 256 | awk '{print $1}') >> $GITHUB_OUTPUT |           echo random_hash=$(openssl rand -base64 40 | shasum -a 256 | awk '{print $1}') >> $GITHUB_OUTPUT | ||||||
|           echo "event_type=$TYPE" >> $GITHUB_OUTPUT |           echo "event_type=$TYPE" >> $GITHUB_OUTPUT | ||||||
| 
 | 
 | ||||||
| @ -182,7 +182,7 @@ jobs: | |||||||
|           else |           else | ||||||
|             TYPE="other" |             TYPE="other" | ||||||
|           fi |           fi | ||||||
|           python3 scripts/get_env.py "--event_file=${{ github.event_path }}" "--type=$TYPE" |           python3 scripts/get_env.py "--event_file=${{ github.event_path }}" "--type=$TYPE" || cat "${{ github.event_path }}" | ||||||
| 
 | 
 | ||||||
|       - name: 'Build the firmware' |       - name: 'Build the firmware' | ||||||
|         run: | |         run: | | ||||||
|  | |||||||
							
								
								
									
										2
									
								
								.github/workflows/merge_report.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.github/workflows/merge_report.yml
									
									
									
									
										vendored
									
									
								
							| @ -30,7 +30,7 @@ jobs: | |||||||
|           else |           else | ||||||
|             TYPE="other" |             TYPE="other" | ||||||
|           fi |           fi | ||||||
|           python3 scripts/get_env.py "--event_file=${{ github.event_path }}" "--type=$TYPE" |           python3 scripts/get_env.py "--event_file=${{ github.event_path }}" "--type=$TYPE" || cat "${{ github.event_path }}" | ||||||
| 
 | 
 | ||||||
|       - name: 'Check ticket and report' |       - name: 'Check ticket and report' | ||||||
|         run: | |         run: | | ||||||
|  | |||||||
							
								
								
									
										2
									
								
								.github/workflows/pvs_studio.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.github/workflows/pvs_studio.yml
									
									
									
									
										vendored
									
									
								
							| @ -38,7 +38,7 @@ jobs: | |||||||
|           else |           else | ||||||
|             TYPE="other" |             TYPE="other" | ||||||
|           fi |           fi | ||||||
|           python3 scripts/get_env.py "--event_file=${{ github.event_path }}" "--type=$TYPE" |           python3 scripts/get_env.py "--event_file=${{ github.event_path }}" "--type=$TYPE" || cat "${{ github.event_path }}" | ||||||
| 
 | 
 | ||||||
|       - name: 'Supply PVS credentials' |       - name: 'Supply PVS credentials' | ||||||
|         run: | |         run: | | ||||||
|  | |||||||
| @ -34,7 +34,7 @@ void AccessorApp::run(void) { | |||||||
| AccessorApp::AccessorApp() | AccessorApp::AccessorApp() | ||||||
|     : text_store{0} { |     : text_store{0} { | ||||||
|     notification = static_cast<NotificationApp*>(furi_record_open(RECORD_NOTIFICATION)); |     notification = static_cast<NotificationApp*>(furi_record_open(RECORD_NOTIFICATION)); | ||||||
|     onewire_host = onewire_host_alloc(&ibutton_gpio); |     onewire_host = onewire_host_alloc(&gpio_ibutton); | ||||||
|     furi_hal_power_enable_otg(); |     furi_hal_power_enable_otg(); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -33,10 +33,10 @@ It is possible to use other GPIO pin as a 1-Wire data pin. In order to change it | |||||||
|  - gpio_ext_pa4 |  - gpio_ext_pa4 | ||||||
|  - gpio_ext_pa6 |  - gpio_ext_pa6 | ||||||
|  - gpio_ext_pa7 |  - gpio_ext_pa7 | ||||||
|  - ibutton_gpio |  - gpio_ibutton | ||||||
| */ | */ | ||||||
| 
 | 
 | ||||||
| #define THERMO_GPIO_PIN (ibutton_gpio) | #define THERMO_GPIO_PIN (gpio_ibutton) | ||||||
| ``` | ``` | ||||||
| Do not forget about the external pull-up resistor as these pins do not have one built-in. | Do not forget about the external pull-up resistor as these pins do not have one built-in. | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -43,10 +43,10 @@ | |||||||
|  - gpio_ext_pa4 |  - gpio_ext_pa4 | ||||||
|  - gpio_ext_pa6 |  - gpio_ext_pa6 | ||||||
|  - gpio_ext_pa7 |  - gpio_ext_pa7 | ||||||
|  - ibutton_gpio |  - gpio_ibutton | ||||||
| */ | */ | ||||||
| 
 | 
 | ||||||
| #define THERMO_GPIO_PIN (ibutton_gpio) | #define THERMO_GPIO_PIN (gpio_ibutton) | ||||||
| 
 | 
 | ||||||
| /* Flags which the reader thread responds to */ | /* Flags which the reader thread responds to */ | ||||||
| typedef enum { | typedef enum { | ||||||
|  | |||||||
| @ -25,7 +25,7 @@ static void onewire_cli_print_usage() { | |||||||
| 
 | 
 | ||||||
| static void onewire_cli_search(Cli* cli) { | static void onewire_cli_search(Cli* cli) { | ||||||
|     UNUSED(cli); |     UNUSED(cli); | ||||||
|     OneWireHost* onewire = onewire_host_alloc(&ibutton_gpio); |     OneWireHost* onewire = onewire_host_alloc(&gpio_ibutton); | ||||||
|     uint8_t address[8]; |     uint8_t address[8]; | ||||||
|     bool done = false; |     bool done = false; | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -1,5 +1,5 @@ | |||||||
| entry,status,name,type,params | entry,status,name,type,params | ||||||
| Version,+,20.1,, | Version,+,21.0,, | ||||||
| Header,+,applications/services/bt/bt_service/bt.h,, | Header,+,applications/services/bt/bt_service/bt.h,, | ||||||
| Header,+,applications/services/cli/cli.h,, | Header,+,applications/services/cli/cli.h,, | ||||||
| Header,+,applications/services/cli/cli_vcp.h,, | Header,+,applications/services/cli/cli_vcp.h,, | ||||||
| @ -2161,7 +2161,7 @@ Variable,+,gpio_usart_rx,const GpioPin, | |||||||
| Variable,+,gpio_usart_tx,const GpioPin, | Variable,+,gpio_usart_tx,const GpioPin, | ||||||
| Variable,+,gpio_usb_dm,const GpioPin, | Variable,+,gpio_usb_dm,const GpioPin, | ||||||
| Variable,+,gpio_usb_dp,const GpioPin, | Variable,+,gpio_usb_dp,const GpioPin, | ||||||
| Variable,+,ibutton_gpio,const GpioPin, | Variable,+,gpio_ibutton,const GpioPin, | ||||||
| Variable,+,input_pins,const InputPin[], | Variable,+,input_pins,const InputPin[], | ||||||
| Variable,+,input_pins_count,const size_t, | Variable,+,input_pins_count,const size_t, | ||||||
| Variable,+,message_blink_set_color_blue,const NotificationMessage, | Variable,+,message_blink_set_color_blue,const NotificationMessage, | ||||||
| @ -2309,7 +2309,7 @@ Variable,+,message_red_255,const NotificationMessage, | |||||||
| Variable,+,message_sound_off,const NotificationMessage, | Variable,+,message_sound_off,const NotificationMessage, | ||||||
| Variable,+,message_vibro_off,const NotificationMessage, | Variable,+,message_vibro_off,const NotificationMessage, | ||||||
| Variable,+,message_vibro_on,const NotificationMessage, | Variable,+,message_vibro_on,const NotificationMessage, | ||||||
| Variable,+,periph_power,const GpioPin, | Variable,+,gpio_periph_power,const GpioPin, | ||||||
| Variable,+,sequence_audiovisual_alert,const NotificationSequence, | Variable,+,sequence_audiovisual_alert,const NotificationSequence, | ||||||
| Variable,+,sequence_blink_blue_10,const NotificationSequence, | Variable,+,sequence_blink_blue_10,const NotificationSequence, | ||||||
| Variable,+,sequence_blink_blue_100,const NotificationSequence, | Variable,+,sequence_blink_blue_100,const NotificationSequence, | ||||||
| @ -2364,4 +2364,4 @@ Variable,+,usb_cdc_single,FuriHalUsbInterface, | |||||||
| Variable,+,usb_hid,FuriHalUsbInterface, | Variable,+,usb_hid,FuriHalUsbInterface, | ||||||
| Variable,+,usb_hid_u2f,FuriHalUsbInterface, | Variable,+,usb_hid_u2f,FuriHalUsbInterface, | ||||||
| Variable,+,usbd_devfs,const usbd_driver, | Variable,+,usbd_devfs,const usbd_driver, | ||||||
| Variable,+,vibro_gpio,const GpioPin, | Variable,+,gpio_vibro,const GpioPin, | ||||||
|  | |||||||
| 
 | 
| @ -6,8 +6,8 @@ | |||||||
| 
 | 
 | ||||||
| #define TAG "FuriHalResources" | #define TAG "FuriHalResources" | ||||||
| 
 | 
 | ||||||
| const GpioPin vibro_gpio = {.port = GPIOA, .pin = LL_GPIO_PIN_8}; | const GpioPin gpio_vibro = {.port = GPIOA, .pin = LL_GPIO_PIN_8}; | ||||||
| const GpioPin ibutton_gpio = {.port = GPIOB, .pin = LL_GPIO_PIN_14}; | const GpioPin gpio_ibutton = {.port = GPIOB, .pin = LL_GPIO_PIN_14}; | ||||||
| 
 | 
 | ||||||
| const GpioPin gpio_display_cs = {.port = GPIOC, .pin = LL_GPIO_PIN_11}; | const GpioPin gpio_display_cs = {.port = GPIOC, .pin = LL_GPIO_PIN_11}; | ||||||
| const GpioPin gpio_display_rst_n = {.port = GPIOB, .pin = LL_GPIO_PIN_0}; | const GpioPin gpio_display_rst_n = {.port = GPIOB, .pin = LL_GPIO_PIN_0}; | ||||||
| @ -57,7 +57,7 @@ const GpioPin gpio_i2c_power_scl = {.port = GPIOA, .pin = LL_GPIO_PIN_9}; | |||||||
| 
 | 
 | ||||||
| const GpioPin gpio_speaker = {.port = GPIOB, .pin = LL_GPIO_PIN_8}; | const GpioPin gpio_speaker = {.port = GPIOB, .pin = LL_GPIO_PIN_8}; | ||||||
| 
 | 
 | ||||||
| const GpioPin periph_power = {.port = GPIOA, .pin = LL_GPIO_PIN_3}; | const GpioPin gpio_periph_power = {.port = GPIOA, .pin = LL_GPIO_PIN_3}; | ||||||
| 
 | 
 | ||||||
| const GpioPin gpio_usb_dm = {.port = GPIOA, .pin = LL_GPIO_PIN_11}; | const GpioPin gpio_usb_dm = {.port = GPIOA, .pin = LL_GPIO_PIN_11}; | ||||||
| const GpioPin gpio_usb_dp = {.port = GPIOA, .pin = LL_GPIO_PIN_12}; | const GpioPin gpio_usb_dp = {.port = GPIOA, .pin = LL_GPIO_PIN_12}; | ||||||
| @ -118,8 +118,8 @@ void furi_hal_resources_init_early() { | |||||||
|     furi_hal_resources_init_input_pins(GpioModeInput); |     furi_hal_resources_init_input_pins(GpioModeInput); | ||||||
| 
 | 
 | ||||||
|     // SD Card stepdown control
 |     // SD Card stepdown control
 | ||||||
|     furi_hal_gpio_write(&periph_power, 1); |     furi_hal_gpio_write(&gpio_periph_power, 1); | ||||||
|     furi_hal_gpio_init(&periph_power, GpioModeOutputOpenDrain, GpioPullNo, GpioSpeedLow); |     furi_hal_gpio_init(&gpio_periph_power, GpioModeOutputOpenDrain, GpioPullNo, GpioSpeedLow); | ||||||
| 
 | 
 | ||||||
|     // Display pins
 |     // Display pins
 | ||||||
|     furi_hal_gpio_write(&gpio_display_rst_n, 1); |     furi_hal_gpio_write(&gpio_display_rst_n, 1); | ||||||
| @ -165,6 +165,10 @@ void furi_hal_resources_init() { | |||||||
|     // Button pins
 |     // Button pins
 | ||||||
|     furi_hal_resources_init_input_pins(GpioModeInterruptRiseFall); |     furi_hal_resources_init_input_pins(GpioModeInterruptRiseFall); | ||||||
| 
 | 
 | ||||||
|  |     // Explicit pulls pins
 | ||||||
|  |     furi_hal_gpio_init(&gpio_speaker, GpioModeAnalog, GpioPullDown, GpioSpeedLow); | ||||||
|  |     furi_hal_gpio_init(&gpio_vibro, GpioModeAnalog, GpioPullDown, GpioSpeedLow); | ||||||
|  | 
 | ||||||
|     // Display pins
 |     // Display pins
 | ||||||
|     furi_hal_gpio_init(&gpio_display_rst_n, GpioModeOutputPushPull, GpioPullNo, GpioSpeedLow); |     furi_hal_gpio_init(&gpio_display_rst_n, GpioModeOutputPushPull, GpioPullNo, GpioSpeedLow); | ||||||
|     furi_hal_gpio_write(&gpio_display_rst_n, 0); |     furi_hal_gpio_write(&gpio_display_rst_n, 0); | ||||||
| @ -176,9 +180,7 @@ void furi_hal_resources_init() { | |||||||
|     furi_hal_gpio_init(&gpio_sdcard_cd, GpioModeInput, GpioPullNo, GpioSpeedLow); |     furi_hal_gpio_init(&gpio_sdcard_cd, GpioModeInput, GpioPullNo, GpioSpeedLow); | ||||||
|     furi_hal_gpio_write(&gpio_sdcard_cd, 0); |     furi_hal_gpio_write(&gpio_sdcard_cd, 0); | ||||||
| 
 | 
 | ||||||
|     furi_hal_gpio_init(&vibro_gpio, GpioModeAnalog, GpioPullNo, GpioSpeedLow); |     furi_hal_gpio_init(&gpio_ibutton, GpioModeAnalog, GpioPullNo, GpioSpeedLow); | ||||||
| 
 |  | ||||||
|     furi_hal_gpio_init(&ibutton_gpio, GpioModeAnalog, GpioPullNo, GpioSpeedLow); |  | ||||||
| 
 | 
 | ||||||
|     NVIC_SetPriority(EXTI0_IRQn, NVIC_EncodePriority(NVIC_GetPriorityGrouping(), 5, 0)); |     NVIC_SetPriority(EXTI0_IRQn, NVIC_EncodePriority(NVIC_GetPriorityGrouping(), 5, 0)); | ||||||
|     NVIC_EnableIRQ(EXTI0_IRQn); |     NVIC_EnableIRQ(EXTI0_IRQn); | ||||||
| @ -222,7 +224,7 @@ int32_t furi_hal_resources_get_ext_pin_number(const GpioPin* gpio) { | |||||||
|         return 15; |         return 15; | ||||||
|     else if(gpio == &gpio_ext_pc0) |     else if(gpio == &gpio_ext_pc0) | ||||||
|         return 16; |         return 16; | ||||||
|     else if(gpio == &ibutton_gpio) |     else if(gpio == &gpio_ibutton) | ||||||
|         return 17; |         return 17; | ||||||
|     else |     else | ||||||
|         return -1; |         return -1; | ||||||
|  | |||||||
| @ -50,8 +50,8 @@ extern const size_t input_pins_count; | |||||||
| extern const GpioPinRecord gpio_pins[]; | extern const GpioPinRecord gpio_pins[]; | ||||||
| extern const size_t gpio_pins_count; | extern const size_t gpio_pins_count; | ||||||
| 
 | 
 | ||||||
| extern const GpioPin vibro_gpio; | extern const GpioPin gpio_vibro; | ||||||
| extern const GpioPin ibutton_gpio; | extern const GpioPin gpio_ibutton; | ||||||
| 
 | 
 | ||||||
| extern const GpioPin gpio_display_cs; | extern const GpioPin gpio_display_cs; | ||||||
| extern const GpioPin gpio_display_rst_n; | extern const GpioPin gpio_display_rst_n; | ||||||
| @ -100,7 +100,7 @@ extern const GpioPin gpio_i2c_power_scl; | |||||||
| 
 | 
 | ||||||
| extern const GpioPin gpio_speaker; | extern const GpioPin gpio_speaker; | ||||||
| 
 | 
 | ||||||
| extern const GpioPin periph_power; | extern const GpioPin gpio_periph_power; | ||||||
| 
 | 
 | ||||||
| extern const GpioPin gpio_usb_dm; | extern const GpioPin gpio_usb_dm; | ||||||
| extern const GpioPin gpio_usb_dp; | extern const GpioPin gpio_usb_dp; | ||||||
|  | |||||||
| @ -1,5 +1,5 @@ | |||||||
| entry,status,name,type,params | entry,status,name,type,params | ||||||
| Version,+,20.1,, | Version,+,21.0,, | ||||||
| Header,+,applications/services/bt/bt_service/bt.h,, | Header,+,applications/services/bt/bt_service/bt.h,, | ||||||
| Header,+,applications/services/cli/cli.h,, | Header,+,applications/services/cli/cli.h,, | ||||||
| Header,+,applications/services/cli/cli_vcp.h,, | Header,+,applications/services/cli/cli_vcp.h,, | ||||||
| @ -3100,7 +3100,7 @@ Variable,+,gpio_usart_rx,const GpioPin, | |||||||
| Variable,+,gpio_usart_tx,const GpioPin, | Variable,+,gpio_usart_tx,const GpioPin, | ||||||
| Variable,+,gpio_usb_dm,const GpioPin, | Variable,+,gpio_usb_dm,const GpioPin, | ||||||
| Variable,+,gpio_usb_dp,const GpioPin, | Variable,+,gpio_usb_dp,const GpioPin, | ||||||
| Variable,+,ibutton_gpio,const GpioPin, | Variable,+,gpio_ibutton,const GpioPin, | ||||||
| Variable,+,input_pins,const InputPin[], | Variable,+,input_pins,const InputPin[], | ||||||
| Variable,+,input_pins_count,const size_t, | Variable,+,input_pins_count,const size_t, | ||||||
| Variable,+,lfrfid_protocols,const ProtocolBase*[], | Variable,+,lfrfid_protocols,const ProtocolBase*[], | ||||||
| @ -3249,7 +3249,7 @@ Variable,+,message_red_255,const NotificationMessage, | |||||||
| Variable,+,message_sound_off,const NotificationMessage, | Variable,+,message_sound_off,const NotificationMessage, | ||||||
| Variable,+,message_vibro_off,const NotificationMessage, | Variable,+,message_vibro_off,const NotificationMessage, | ||||||
| Variable,+,message_vibro_on,const NotificationMessage, | Variable,+,message_vibro_on,const NotificationMessage, | ||||||
| Variable,+,periph_power,const GpioPin, | Variable,+,gpio_periph_power,const GpioPin, | ||||||
| Variable,+,sequence_audiovisual_alert,const NotificationSequence, | Variable,+,sequence_audiovisual_alert,const NotificationSequence, | ||||||
| Variable,+,sequence_blink_blue_10,const NotificationSequence, | Variable,+,sequence_blink_blue_10,const NotificationSequence, | ||||||
| Variable,+,sequence_blink_blue_100,const NotificationSequence, | Variable,+,sequence_blink_blue_100,const NotificationSequence, | ||||||
| @ -3307,4 +3307,4 @@ Variable,+,usb_cdc_single,FuriHalUsbInterface, | |||||||
| Variable,+,usb_hid,FuriHalUsbInterface, | Variable,+,usb_hid,FuriHalUsbInterface, | ||||||
| Variable,+,usb_hid_u2f,FuriHalUsbInterface, | Variable,+,usb_hid_u2f,FuriHalUsbInterface, | ||||||
| Variable,+,usbd_devfs,const usbd_driver, | Variable,+,usbd_devfs,const usbd_driver, | ||||||
| Variable,+,vibro_gpio,const GpioPin, | Variable,+,gpio_vibro,const GpioPin, | ||||||
|  | |||||||
| 
 | 
| @ -93,15 +93,15 @@ void furi_hal_ibutton_emulate_stop() { | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void furi_hal_ibutton_pin_configure() { | void furi_hal_ibutton_pin_configure() { | ||||||
|     furi_hal_gpio_write(&ibutton_gpio, true); |     furi_hal_gpio_write(&gpio_ibutton, true); | ||||||
|     furi_hal_gpio_init(&ibutton_gpio, GpioModeOutputOpenDrain, GpioPullNo, GpioSpeedLow); |     furi_hal_gpio_init(&gpio_ibutton, GpioModeOutputOpenDrain, GpioPullNo, GpioSpeedLow); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void furi_hal_ibutton_pin_reset() { | void furi_hal_ibutton_pin_reset() { | ||||||
|     furi_hal_gpio_write(&ibutton_gpio, true); |     furi_hal_gpio_write(&gpio_ibutton, true); | ||||||
|     furi_hal_gpio_init(&ibutton_gpio, GpioModeAnalog, GpioPullNo, GpioSpeedLow); |     furi_hal_gpio_init(&gpio_ibutton, GpioModeAnalog, GpioPullNo, GpioSpeedLow); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void furi_hal_ibutton_pin_write(const bool state) { | void furi_hal_ibutton_pin_write(const bool state) { | ||||||
|     furi_hal_gpio_write(&ibutton_gpio, state); |     furi_hal_gpio_write(&gpio_ibutton, state); | ||||||
| } | } | ||||||
|  | |||||||
| @ -17,7 +17,7 @@ | |||||||
| 
 | 
 | ||||||
| #if INFRARED_TX_DEBUG == 1 | #if INFRARED_TX_DEBUG == 1 | ||||||
| #define gpio_infrared_tx gpio_infrared_tx_debug | #define gpio_infrared_tx gpio_infrared_tx_debug | ||||||
| const GpioPin gpio_infrared_tx_debug = {.port = GPIOA, .pin = GPIO_PIN_7}; | const GpioPin gpio_infrared_tx_debug = {.port = GPIOA, .pin = GpioModeAnalog}; | ||||||
| #endif | #endif | ||||||
| 
 | 
 | ||||||
| #define INFRARED_TIM_TX_DMA_BUFFER_SIZE 200 | #define INFRARED_TIM_TX_DMA_BUFFER_SIZE 200 | ||||||
| @ -567,7 +567,7 @@ static void furi_hal_infrared_async_tx_free_resources(void) { | |||||||
|         (furi_hal_infrared_state == InfraredStateIdle) || |         (furi_hal_infrared_state == InfraredStateIdle) || | ||||||
|         (furi_hal_infrared_state == InfraredStateAsyncTxStopped)); |         (furi_hal_infrared_state == InfraredStateAsyncTxStopped)); | ||||||
| 
 | 
 | ||||||
|     furi_hal_gpio_init(&gpio_infrared_tx, GpioModeOutputOpenDrain, GpioPullDown, GpioSpeedLow); |     furi_hal_gpio_init(&gpio_infrared_tx, GpioModeAnalog, GpioPullDown, GpioSpeedLow); | ||||||
|     furi_hal_interrupt_set_isr(IR_DMA_CH1_IRQ, NULL, NULL); |     furi_hal_interrupt_set_isr(IR_DMA_CH1_IRQ, NULL, NULL); | ||||||
|     furi_hal_interrupt_set_isr(IR_DMA_CH2_IRQ, NULL, NULL); |     furi_hal_interrupt_set_isr(IR_DMA_CH2_IRQ, NULL, NULL); | ||||||
|     LL_TIM_DeInit(TIM1); |     LL_TIM_DeInit(TIM1); | ||||||
|  | |||||||
| @ -440,11 +440,11 @@ float furi_hal_power_get_usb_voltage() { | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void furi_hal_power_enable_external_3_3v() { | void furi_hal_power_enable_external_3_3v() { | ||||||
|     furi_hal_gpio_write(&periph_power, 1); |     furi_hal_gpio_write(&gpio_periph_power, 1); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void furi_hal_power_disable_external_3_3v() { | void furi_hal_power_disable_external_3_3v() { | ||||||
|     furi_hal_gpio_write(&periph_power, 0); |     furi_hal_gpio_write(&gpio_periph_power, 0); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void furi_hal_power_suppress_charge_enter() { | void furi_hal_power_suppress_charge_enter() { | ||||||
|  | |||||||
| @ -6,8 +6,8 @@ | |||||||
| 
 | 
 | ||||||
| #define TAG "FuriHalResources" | #define TAG "FuriHalResources" | ||||||
| 
 | 
 | ||||||
| const GpioPin vibro_gpio = {.port = VIBRO_GPIO_Port, .pin = VIBRO_Pin}; | const GpioPin gpio_vibro = {.port = VIBRO_GPIO_Port, .pin = VIBRO_Pin}; | ||||||
| const GpioPin ibutton_gpio = {.port = iBTN_GPIO_Port, .pin = iBTN_Pin}; | const GpioPin gpio_ibutton = {.port = iBTN_GPIO_Port, .pin = iBTN_Pin}; | ||||||
| 
 | 
 | ||||||
| const GpioPin gpio_cc1101_g0 = {.port = CC1101_G0_GPIO_Port, .pin = CC1101_G0_Pin}; | const GpioPin gpio_cc1101_g0 = {.port = CC1101_G0_GPIO_Port, .pin = CC1101_G0_Pin}; | ||||||
| const GpioPin gpio_rf_sw_0 = {.port = RF_SW_0_GPIO_Port, .pin = RF_SW_0_Pin}; | const GpioPin gpio_rf_sw_0 = {.port = RF_SW_0_GPIO_Port, .pin = RF_SW_0_Pin}; | ||||||
| @ -59,7 +59,7 @@ const GpioPin gpio_i2c_power_scl = {.port = GPIOA, .pin = LL_GPIO_PIN_9}; | |||||||
| 
 | 
 | ||||||
| const GpioPin gpio_speaker = {.port = GPIOB, .pin = LL_GPIO_PIN_8}; | const GpioPin gpio_speaker = {.port = GPIOB, .pin = LL_GPIO_PIN_8}; | ||||||
| 
 | 
 | ||||||
| const GpioPin periph_power = {.port = GPIOA, .pin = LL_GPIO_PIN_3}; | const GpioPin gpio_periph_power = {.port = GPIOA, .pin = LL_GPIO_PIN_3}; | ||||||
| 
 | 
 | ||||||
| const GpioPin gpio_usb_dm = {.port = GPIOA, .pin = LL_GPIO_PIN_11}; | const GpioPin gpio_usb_dm = {.port = GPIOA, .pin = LL_GPIO_PIN_11}; | ||||||
| const GpioPin gpio_usb_dp = {.port = GPIOA, .pin = LL_GPIO_PIN_12}; | const GpioPin gpio_usb_dp = {.port = GPIOA, .pin = LL_GPIO_PIN_12}; | ||||||
| @ -106,8 +106,8 @@ void furi_hal_resources_init_early() { | |||||||
|     furi_hal_resources_init_input_pins(GpioModeInput); |     furi_hal_resources_init_input_pins(GpioModeInput); | ||||||
| 
 | 
 | ||||||
|     // SD Card stepdown control
 |     // SD Card stepdown control
 | ||||||
|     furi_hal_gpio_write(&periph_power, 1); |     furi_hal_gpio_write(&gpio_periph_power, 1); | ||||||
|     furi_hal_gpio_init(&periph_power, GpioModeOutputOpenDrain, GpioPullNo, GpioSpeedLow); |     furi_hal_gpio_init(&gpio_periph_power, GpioModeOutputOpenDrain, GpioPullNo, GpioSpeedLow); | ||||||
| 
 | 
 | ||||||
|     // Display pins
 |     // Display pins
 | ||||||
|     furi_hal_gpio_write(&gpio_display_rst_n, 1); |     furi_hal_gpio_write(&gpio_display_rst_n, 1); | ||||||
| @ -153,6 +153,11 @@ void furi_hal_resources_init() { | |||||||
|     // Button pins
 |     // Button pins
 | ||||||
|     furi_hal_resources_init_input_pins(GpioModeInterruptRiseFall); |     furi_hal_resources_init_input_pins(GpioModeInterruptRiseFall); | ||||||
| 
 | 
 | ||||||
|  |     // Explicit pulls pins
 | ||||||
|  |     furi_hal_gpio_init(&gpio_infrared_tx, GpioModeAnalog, GpioPullDown, GpioSpeedLow); | ||||||
|  |     furi_hal_gpio_init(&gpio_speaker, GpioModeAnalog, GpioPullDown, GpioSpeedLow); | ||||||
|  |     furi_hal_gpio_init(&gpio_vibro, GpioModeAnalog, GpioPullDown, GpioSpeedLow); | ||||||
|  | 
 | ||||||
|     // Display pins
 |     // Display pins
 | ||||||
|     furi_hal_gpio_init(&gpio_display_rst_n, GpioModeOutputPushPull, GpioPullNo, GpioSpeedLow); |     furi_hal_gpio_init(&gpio_display_rst_n, GpioModeOutputPushPull, GpioPullNo, GpioSpeedLow); | ||||||
|     furi_hal_gpio_write(&gpio_display_rst_n, 0); |     furi_hal_gpio_write(&gpio_display_rst_n, 0); | ||||||
| @ -164,9 +169,7 @@ void furi_hal_resources_init() { | |||||||
|     furi_hal_gpio_init(&gpio_sdcard_cd, GpioModeInput, GpioPullNo, GpioSpeedLow); |     furi_hal_gpio_init(&gpio_sdcard_cd, GpioModeInput, GpioPullNo, GpioSpeedLow); | ||||||
|     furi_hal_gpio_write(&gpio_sdcard_cd, 0); |     furi_hal_gpio_write(&gpio_sdcard_cd, 0); | ||||||
| 
 | 
 | ||||||
|     furi_hal_gpio_init(&vibro_gpio, GpioModeAnalog, GpioPullNo, GpioSpeedLow); |     furi_hal_gpio_init(&gpio_ibutton, GpioModeAnalog, GpioPullNo, GpioSpeedLow); | ||||||
| 
 |  | ||||||
|     furi_hal_gpio_init(&ibutton_gpio, GpioModeAnalog, GpioPullNo, GpioSpeedLow); |  | ||||||
| 
 | 
 | ||||||
|     furi_hal_gpio_init(&gpio_nfc_irq_rfid_pull, GpioModeInterruptRise, GpioPullNo, GpioSpeedLow); |     furi_hal_gpio_init(&gpio_nfc_irq_rfid_pull, GpioModeInterruptRise, GpioPullNo, GpioSpeedLow); | ||||||
| 
 | 
 | ||||||
| @ -213,7 +216,7 @@ int32_t furi_hal_resources_get_ext_pin_number(const GpioPin* gpio) { | |||||||
|         return 15; |         return 15; | ||||||
|     else if(gpio == &gpio_ext_pc0) |     else if(gpio == &gpio_ext_pc0) | ||||||
|         return 16; |         return 16; | ||||||
|     else if(gpio == &ibutton_gpio) |     else if(gpio == &gpio_ibutton) | ||||||
|         return 17; |         return 17; | ||||||
|     else |     else | ||||||
|         return -1; |         return -1; | ||||||
|  | |||||||
| @ -50,8 +50,8 @@ extern const size_t input_pins_count; | |||||||
| extern const GpioPinRecord gpio_pins[]; | extern const GpioPinRecord gpio_pins[]; | ||||||
| extern const size_t gpio_pins_count; | extern const size_t gpio_pins_count; | ||||||
| 
 | 
 | ||||||
| extern const GpioPin vibro_gpio; | extern const GpioPin gpio_vibro; | ||||||
| extern const GpioPin ibutton_gpio; | extern const GpioPin gpio_ibutton; | ||||||
| 
 | 
 | ||||||
| extern const GpioPin gpio_cc1101_g0; | extern const GpioPin gpio_cc1101_g0; | ||||||
| extern const GpioPin gpio_rf_sw_0; | extern const GpioPin gpio_rf_sw_0; | ||||||
| @ -102,7 +102,7 @@ extern const GpioPin gpio_i2c_power_scl; | |||||||
| 
 | 
 | ||||||
| extern const GpioPin gpio_speaker; | extern const GpioPin gpio_speaker; | ||||||
| 
 | 
 | ||||||
| extern const GpioPin periph_power; | extern const GpioPin gpio_periph_power; | ||||||
| 
 | 
 | ||||||
| extern const GpioPin gpio_usb_dm; | extern const GpioPin gpio_usb_dm; | ||||||
| extern const GpioPin gpio_usb_dp; | extern const GpioPin gpio_usb_dp; | ||||||
|  | |||||||
| @ -52,7 +52,7 @@ void furi_hal_speaker_release() { | |||||||
|     furi_check(furi_hal_speaker_is_mine()); |     furi_check(furi_hal_speaker_is_mine()); | ||||||
| 
 | 
 | ||||||
|     furi_hal_speaker_stop(); |     furi_hal_speaker_stop(); | ||||||
|     furi_hal_gpio_init(&gpio_speaker, GpioModeAnalog, GpioPullNo, GpioSpeedLow); |     furi_hal_gpio_init(&gpio_speaker, GpioModeAnalog, GpioPullDown, GpioSpeedLow); | ||||||
|     furi_hal_power_insomnia_exit(); |     furi_hal_power_insomnia_exit(); | ||||||
| 
 | 
 | ||||||
|     furi_check(furi_mutex_release(furi_hal_speaker_mutex) == FuriStatusOk); |     furi_check(furi_mutex_release(furi_hal_speaker_mutex) == FuriStatusOk); | ||||||
|  | |||||||
| @ -4,11 +4,11 @@ | |||||||
| #define TAG "FuriHalVibro" | #define TAG "FuriHalVibro" | ||||||
| 
 | 
 | ||||||
| void furi_hal_vibro_init() { | void furi_hal_vibro_init() { | ||||||
|     furi_hal_gpio_init(&vibro_gpio, GpioModeOutputPushPull, GpioPullNo, GpioSpeedLow); |     furi_hal_gpio_init(&gpio_vibro, GpioModeOutputPushPull, GpioPullNo, GpioSpeedLow); | ||||||
|     furi_hal_gpio_write(&vibro_gpio, false); |     furi_hal_gpio_write(&gpio_vibro, false); | ||||||
|     FURI_LOG_I(TAG, "Init OK"); |     FURI_LOG_I(TAG, "Init OK"); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void furi_hal_vibro_on(bool value) { | void furi_hal_vibro_on(bool value) { | ||||||
|     furi_hal_gpio_write(&vibro_gpio, value); |     furi_hal_gpio_write(&gpio_vibro, value); | ||||||
| } | } | ||||||
|  | |||||||
| @ -14,8 +14,8 @@ typedef struct { | |||||||
| static iButtonProtocolGroupDallas* ibutton_protocol_group_dallas_alloc() { | static iButtonProtocolGroupDallas* ibutton_protocol_group_dallas_alloc() { | ||||||
|     iButtonProtocolGroupDallas* group = malloc(sizeof(iButtonProtocolGroupDallas)); |     iButtonProtocolGroupDallas* group = malloc(sizeof(iButtonProtocolGroupDallas)); | ||||||
| 
 | 
 | ||||||
|     group->host = onewire_host_alloc(&ibutton_gpio); |     group->host = onewire_host_alloc(&gpio_ibutton); | ||||||
|     group->bus = onewire_slave_alloc(&ibutton_gpio); |     group->bus = onewire_slave_alloc(&gpio_ibutton); | ||||||
| 
 | 
 | ||||||
|     return group; |     return group; | ||||||
| } | } | ||||||
|  | |||||||
| @ -32,7 +32,7 @@ def parse_args(): | |||||||
| def get_commit_json(event): | def get_commit_json(event): | ||||||
|     context = ssl._create_unverified_context() |     context = ssl._create_unverified_context() | ||||||
|     commit_url = event["pull_request"]["base"]["repo"]["commits_url"].replace( |     commit_url = event["pull_request"]["base"]["repo"]["commits_url"].replace( | ||||||
|         "{/sha}", f"/{event['after']}" |         "{/sha}", f"/{event['pull_request']['head']['sha']}" | ||||||
|     ) |     ) | ||||||
|     with urllib.request.urlopen(commit_url, context=context) as commit_file: |     with urllib.request.urlopen(commit_url, context=context) as commit_file: | ||||||
|         commit_json = json.loads(commit_file.read().decode("utf-8")) |         commit_json = json.loads(commit_file.read().decode("utf-8")) | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 あく
						あく