github.com/tinygo-org/tinygo@v0.31.3-0.20240404173401-90b0bf646c27/src/machine/machine_nrf52.go (about) 1 //go:build nrf52 2 3 package machine 4 5 import ( 6 "device/nrf" 7 ) 8 9 // Hardware pins 10 const ( 11 P0_00 Pin = 0 12 P0_01 Pin = 1 13 P0_02 Pin = 2 14 P0_03 Pin = 3 15 P0_04 Pin = 4 16 P0_05 Pin = 5 17 P0_06 Pin = 6 18 P0_07 Pin = 7 19 P0_08 Pin = 8 20 P0_09 Pin = 9 21 P0_10 Pin = 10 22 P0_11 Pin = 11 23 P0_12 Pin = 12 24 P0_13 Pin = 13 25 P0_14 Pin = 14 26 P0_15 Pin = 15 27 P0_16 Pin = 16 28 P0_17 Pin = 17 29 P0_18 Pin = 18 30 P0_19 Pin = 19 31 P0_20 Pin = 20 32 P0_21 Pin = 21 33 P0_22 Pin = 22 34 P0_23 Pin = 23 35 P0_24 Pin = 24 36 P0_25 Pin = 25 37 P0_26 Pin = 26 38 P0_27 Pin = 27 39 P0_28 Pin = 28 40 P0_29 Pin = 29 41 P0_30 Pin = 30 42 P0_31 Pin = 31 43 ) 44 45 // Get peripheral and pin number for this GPIO pin. 46 func (p Pin) getPortPin() (*nrf.GPIO_Type, uint32) { 47 return nrf.P0, uint32(p) 48 } 49 50 func (uart *UART) setPins(tx, rx Pin) { 51 nrf.UART0.PSELTXD.Set(uint32(tx)) 52 nrf.UART0.PSELRXD.Set(uint32(rx)) 53 } 54 55 func (i2c *I2C) setPins(scl, sda Pin) { 56 i2c.Bus.PSELSCL.Set(uint32(scl)) 57 i2c.Bus.PSELSDA.Set(uint32(sda)) 58 } 59 60 // PWM 61 var ( 62 PWM0 = &PWM{PWM: nrf.PWM0} 63 PWM1 = &PWM{PWM: nrf.PWM1} 64 PWM2 = &PWM{PWM: nrf.PWM2} 65 ) 66 67 const eraseBlockSizeValue = 4096 68 69 func eraseBlockSize() int64 { 70 return eraseBlockSizeValue 71 }