/*
* SPDX-License-Identifier: Apache-2.0
*
* Copyright (c) 2024 Nordic Semiconductor ASA
*/
/delete-node/ &button0;
/delete-node/ &button1;
/delete-node/ &button2;
/delete-node/ &button3;
/delete-node/ &led0;
/delete-node/ &led1;
/delete-node/ &led2;
/delete-node/ &led3;
/delete-node/ &pwm_led1;
/delete-node/ &spi00;
/delete-node/ &{/pin-controller/spi00_default/group1/};	
/delete-node/ &{/pin-controller/spi00_sleep/group1/};
/delete-node/ &{/pin-controller/uart20_default/group2/};	
/delete-node/ &{/pin-controller/uart20_sleep/group1/};
/delete-node/ &{/pin-controller/uart30_default/group1/};	
/delete-node/ &{/pin-controller/uart30_default/group2/};	
/delete-node/ &{/pin-controller/uart30_sleep/group1/};
/delete-node/ &{/pin-controller/pwm20_default/group1/};
/delete-node/ &{/pin-controller/pwm20_sleep/group1/};


&hfxo {
	load-capacitors = "external";
	load-capacitance-femtofarad = <15000>;
};
/* 
&spi00 {
	status = "disabled";
}; */

&pwm20 {
	status = "disabled";
};
 
 
&pinctrl {
    /omit-if-no-ref/ uart20_default: uart20_default {
		group1 {
			psels = <NRF_PSEL(UART_TX,1, 9)>; //  1, 4
			bias-pull-up;
		};
	};
	/omit-if-no-ref/ uart20_sleep: uart20_sleep {
		group1 {
			psels = <NRF_PSEL(UART_TX, 1, 9)>; //  1, 4
			low-power-enable;
		};
	};
 
   i2c30_default: i2c30_default{
		group1 {
			psels = <NRF_PSEL(TWIM_SDA, 0, 3)>, <NRF_PSEL(TWIM_SCL, 0, 4)>;
			bias-pull-up;
		};
	};

	i2c30_sleep: i2c30_sleep{
		group1 {
			psels = <NRF_PSEL(TWIM_SDA, 0, 3)>, <NRF_PSEL(TWIM_SCL, 0, 4)>;
			low-power-enable;
		};
	};
    
	 
    /omit-if-no-ref/ pwm22_default: pwm22_default {
		group1 {
	  		psels = <NRF_PSEL(PWM_OUT0, 1, 10)>,  					
		  	     	<NRF_PSEL(PWM_OUT3, 1, 2)>,    						
			      	<NRF_PSEL(PWM_OUT1, 1, 3)>,   		
			     	<NRF_PSEL(PWM_OUT2, 1, 8)>;   // P1.10 PWM_Nacht // P1.2  PWM_USB // P1.3  PWM_Nacht_LED1 // P1.8  PWM_NACHT_LED2 				
		};
 	};
 
 	/omit-if-no-ref/ pwm22_sleep: pwm22_sleep {
	  	group1 {
	  		psels = <NRF_PSEL(PWM_OUT0, 1, 10)>,   						
		  		    <NRF_PSEL(PWM_OUT3, 1, 2)>,   						
			     	<NRF_PSEL(PWM_OUT1, 1, 3)>,   		
			      	<NRF_PSEL(PWM_OUT2, 1, 8)>;   // P1.10 PWM_Nacht // P1.2  PWM_USB // P1.3  PWM_Nacht_LED1 // P1.8  PWM_NACHT_LED2 			
	     	 low-power-enable;  
		};
 	}; 
};


&adc {
	#address-cells = <1>;
	#size-cells = <0>;
	status = "okay";
 
 	channel@0 {
		reg = <0>;
		zephyr,gain = "ADC_GAIN_2_3";
		zephyr,reference = "ADC_REF_INTERNAL";
		zephyr,acquisition-time = <ADC_ACQ_TIME_DEFAULT>;
		zephyr,input-positive = <NRF_SAADC_AIN0>;   //<NRF_SAADC_AIN0 NRF_SAADC_VDDHDIV5>; // P1.04 I_USB 
		zephyr,resolution = <12>;
	 };
  
	channel@1 {
		reg = <1>;
		zephyr,gain = "ADC_GAIN_2_5";
		zephyr,reference = "ADC_REF_INTERNAL";
		zephyr,acquisition-time = <ADC_ACQ_TIME_DEFAULT>; //<ADC_ACQ_TIME(ADC_ACQ_TIME_MICROSECONDS,1000)>;
		zephyr,oversampling = <8>;
		zephyr,input-positive = <NRF_SAADC_AIN1>; // P1.05 U_USB 
		zephyr,resolution = <12>; 
	};
 
	channel@2 {
		reg = <2>;
		zephyr,gain = "ADC_GAIN_2_3";
		zephyr,reference = "ADC_REF_INTERNAL";
		zephyr,acquisition-time = <ADC_ACQ_TIME_DEFAULT>;
		zephyr,input-positive = <NRF_SAADC_AIN2>; // P1.06 I_Akku 
		zephyr,resolution = <12>; 
	 };

	 channel@3 {
		reg = <3>;
		zephyr,gain = "ADC_GAIN_2_5";
		zephyr,reference = "ADC_REF_INTERNAL";
		zephyr,acquisition-time = <ADC_ACQ_TIME_DEFAULT>;
		zephyr,input-positive = <NRF_SAADC_AIN3>; // P1.07 U_Akku NRF_SAADC_VDDHDIV5  NRF_SAADC_AIN3
		zephyr,resolution = <12>; 
	 };
 
	 channel@4 {
		reg = <4>;
		zephyr,gain = "ADC_GAIN_2_5";
		zephyr,reference = "ADC_REF_INTERNAL";
		zephyr,acquisition-time = <ADC_ACQ_TIME_DEFAULT>;
		zephyr,input-positive = <NRF_SAADC_AIN4>; // P1.11 D_Minus 
		zephyr,resolution = <12>;
	 }; 
 
	 channel@5 {
		reg = <5>;
		zephyr,gain = "ADC_GAIN_2";
		zephyr,reference = "ADC_REF_INTERNAL";
		zephyr,acquisition-time = <ADC_ACQ_TIME_DEFAULT>;
		zephyr,input-positive = <NRF_SAADC_AIN5>; // P1.12 I_Nacht_LED1 
		zephyr,resolution = <12>;
	 };  
 
 	 channel@6 {							 
		reg = <6>;
		zephyr,gain = "ADC_GAIN_2";
		zephyr,reference = "ADC_REF_INTERNAL";
		zephyr,acquisition-time = <ADC_ACQ_TIME_DEFAULT>;
		zephyr,input-positive = <NRF_SAADC_AIN6>; // P1.13 I_Nacht_LED2 
		zephyr,resolution = <12>;
	};	
 
 	channel@7 {
		reg = <7>;
		zephyr,gain = "ADC_GAIN_2_5";
		zephyr,reference = "ADC_REF_INTERNAL";
		zephyr,acquisition-time = <ADC_ACQ_TIME_DEFAULT>;
		zephyr,input-positive = <NRF_SAADC_AIN7>; // P1.14  D_Plus 
		zephyr,resolution = <12>;
	}; 
 };

 &uart20 {
	current-speed = <115200>;
	pinctrl-0 = <&uart20_default>;
	pinctrl-1 = <&uart20_sleep>;
	pinctrl-names = "default", "sleep";
};

&pwm22 {
	status = "okay";
	pinctrl-0 = <&pwm22_default>;
	pinctrl-1 = <&pwm22_sleep>;
	pinctrl-names = "default", "sleep";
};

&spi22 {										
	status = "disabled";					
};

&uart22 {										
	status = "disabled";					
};

&gpiote20 {
   status = "okay";
};

&gpiote30 {
   status = "okay";
};

&temp {
   status = "disabled";
};

 
&i2c30 {
	status = "okay";
	compatible = "nordic,nrf-twim";
	clock-frequency = <I2C_BITRATE_STANDARD>;
	pinctrl-0 = <&i2c30_default>;
	pinctrl-1 = <&i2c30_sleep>;
	pinctrl-names = "default", "sleep";
	fusb302b: fusb302b@25{
        compatible = "i2c-device";
        status = "okay";
        reg = < 0x25 >;
	};
};

	
&uicr {
    nfct-pins-as-gpios;
};


/{
    chosen {
        zephyr,console = &uart20;
		zephyr,shell-uart = &uart20;
		zephyr,uart-mcumgr = &uart20;
    };

	leds {
		compatible = "gpio-leds";
		status = "okay";

		D_Plus_10k_PIN: D_Plus_10k_PIN {						/* Version 1 */
			gpios = <&gpio0 1 GPIO_ACTIVE_HIGH>;
		};
	 	D_Minus_20k_PIN: D_Minus_20k_PIN {						/* Version 1 */
			gpios = <&gpio2 6 GPIO_ACTIVE_HIGH>;
		};
	 	D_Minus_10k_PIN: D_Minus_10k_PIN {						/* Version 1 */
			gpios = <&gpio1 0 GPIO_ACTIVE_HIGH>;
		}; 
		D_Plus_20k_PIN: D_Plus_20k_PIN {						/* Version 1 */
			gpios = <&gpio1 1 GPIO_ACTIVE_HIGH>;
		};
		D_Minus_47k_PIN: D_Minus_47k_PIN {						/* Version 1 */
			gpios = <&gpio1 11 GPIO_ACTIVE_HIGH>;
		};
		D_Plus_47k_PIN: D_Plus_47k_PIN {						/* Version 1 */
			gpios = <&gpio1 14 GPIO_ACTIVE_HIGH>;
		};
		LED_ROW_1_PIN: LED_ROW_1_PIN {							/* Version 1 */
			gpios = <&gpio2 5 GPIO_ACTIVE_HIGH>;
		};
		LED_ROW_2_PIN: LED_ROW_2_PIN {							/* Version 1 */
			gpios = <&gpio2 8 GPIO_ACTIVE_HIGH>;
		};
		LED_CL_1_PIN: LED_CL_1_PIN {							/* Version 1 */
			gpios = <&gpio2 1 GPIO_ACTIVE_HIGH>;
		};
		LED_CL_2_PIN: LED_CL_2_PIN {							/* Version 1 */
			gpios = <&gpio2 0 GPIO_ACTIVE_HIGH>;
		};
		LED_CL_3_PIN: LED_CL_3_PIN  {							/* Version 1 */
			gpios = <&gpio2 2 GPIO_ACTIVE_HIGH>;
		};
		LED_CL_4_PIN: LED_CL_4_PIN {							/* Version 1 */
			gpios = <&gpio2 3 GPIO_ACTIVE_HIGH>;
		};
		LED_CL_5_PIN: LED_CL_5_PIN {							/* Version 1 */
			gpios = <&gpio2 4 GPIO_ACTIVE_HIGH>;
		};
		USB_EN_PIN: USB_EN_PIN {								/* Version 1 */
			gpios = <&gpio2 9 GPIO_ACTIVE_HIGH>;
			label = "Green LED 0";
		};
		UB_UP_PIN: UB_UP_PIN {									/* Version 1 */
			gpios = <&gpio2 7 GPIO_ACTIVE_HIGH>;
			label = "Green LED 2";
		};
 		OP_ON_PIN: OP_ON_PIN {			 						/* Version 1 */
			gpios = <&gpio2 10 GPIO_ACTIVE_HIGH>;
		};	/* 
		SCL_PIN: SCL_PIN {			 						
			gpios = <&gpio0 4 (GPIO_OPEN_DRAIN | GPIO_PULL_UP | GPIO_ACTIVE_HIGH)>;
		};	
		SDA_PIN: SDA_PIN {			 						
			gpios = <&gpio0 3 (GPIO_OPEN_DRAIN | GPIO_PULL_UP | GPIO_ACTIVE_HIGH)>;
		};	*/				
	};

	pwmleds {
		compatible = "pwm-leds";  
		/*
		 * PWM signal can be exposed on GPIO pin only within same domain.
		 * There is only one domain which contains both PWM and GPIO:
		 * PWM20/21/22 and GPIO Port P1.
		 */  
		pwm_nacht: pwm_nacht {
			pwms = <&pwm22 0 PWM_USEC(20) PWM_POLARITY_NORMAL>;
		};
		pwm_nacht_led1: pwm_nacht_led1 {
			pwms = <&pwm22 1 PWM_USEC(20) PWM_POLARITY_NORMAL>;
		};
		pwm_nacht_led2: pwm_nacht_led2 {
			pwms = <&pwm22 2 PWM_USEC(20) PWM_POLARITY_NORMAL>;
		};
 		pwm_usb: pwm_usb {
			pwms = <&pwm22 3 PWM_USEC(20) PWM_POLARITY_NORMAL>;
		}; 
	}; 

	buttons {
		compatible = "gpio-keys";
		button0: button_0 {
			gpios = <&gpio0 0 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>;  							
			label = "Push button 0";
			zephyr,code = <INPUT_KEY_0>;
		};
  		button1: button_1 {
			gpios = <&gpio0 2 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>;
			label = "INT";
			zephyr,code = <INPUT_KEY_1>; 
		}; 
	};

	aliases {
		/delete-property/ led0;
		/delete-property/ led1;
		/delete-property/ led2;
		/delete-property/ led3;
		/delete-property/ pwm-led0;
		/delete-property/ sw0;
		/delete-property/ sw1;
		/delete-property/ sw2;
		/delete-property/ sw3;
		pwm-nacht = &pwm_nacht;
		pwm-nacht-led1 = &pwm_nacht_led1;
		pwm-nacht-led2 = &pwm_nacht_led2;
		pwm-usb = &pwm_usb; 
		userbutton = &button0;
		fusbinterrupt = &button1;
		watchdog0 = &wdt31;
	};

	zephyr,user {
		io-channels = <&adc 0>, <&adc 1>, <&adc 2>, <&adc 3>, <&adc 4>, <&adc 5 >, <&adc 6> , <&adc 7>;
	};
 };


&ficr {
   status = "disabled";
};

&nfct {
   status = "okay";
};


