mirror of
				https://github.com/espressif/esp-idf.git
				synced 2025-11-04 00:51:42 +01:00 
			
		
		
		
	
		
			
	
	
		
			30 lines
		
	
	
		
			644 B
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			30 lines
		
	
	
		
			644 B
		
	
	
	
		
			C
		
	
	
	
	
	
| 
								 | 
							
								/*
							 | 
						||
| 
								 | 
							
								 * SPDX-FileCopyrightText: 2023 Espressif Systems (Shanghai) CO LTD
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * SPDX-License-Identifier: Apache-2.0
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#include "esp_types.h"
							 | 
						||
| 
								 | 
							
								#include "esp_bit_defs.h"
							 | 
						||
| 
								 | 
							
								#include "soc/soc_caps.h"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								static uint64_t s_reserve_status = 0;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								void esp_gpio_reserve_pins(uint64_t mask)
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								#if SOC_GPIO_PIN_COUNT < 64
							 | 
						||
| 
								 | 
							
								    mask &= BIT64(SOC_GPIO_PIN_COUNT) - 1;
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								    s_reserve_status |= mask;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								bool esp_gpio_is_pin_reserved(uint32_t gpio_num)
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    if (gpio_num >= SOC_GPIO_PIN_COUNT) {
							 | 
						||
| 
								 | 
							
								        return false;
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								    return !!(s_reserve_status & BIT64(gpio_num));
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// TODO: IDF-6968 reserve the pins that not fanned out regarding the SiP version
							 |