avr-device 0.8.1

Register access crate for AVR microcontrollers
Documentation
_include:
  - "common/ac.yaml"
  - "common/eeprom.yaml"
  - "common/wdt.yaml"

  - "common/tiny/exint.yaml"
  - "common/tiny/usi.yaml"

  - "timer/attiny84.yaml"

AC:
  _modify:
    DIDR0:
      description: "Digital Input Disable Register 0"
  DIDR0:
    _delete:
      - ADC0D
    _modify:
      ADC1D:
        description: "ADC1 (AIN0) Digital input buffer disable"
    _add:
      ADC2D:
        description: "ADC2 (AIN1) Digital input buffer disable"
        bitOffset: 2
        bitWidth: 1
        access: read-write
ADC:
  ADCSRA:
    ADPS:
      _replace_enum:
        PRESCALER_2: [1, "Prescaler Value 2"]
        PRESCALER_4: [2, "Prescaler Value 4"]
        PRESCALER_8: [3, "Prescaler Value 8"]
        PRESCALER_16: [4, "Prescaler Value 16"]
        PRESCALER_32: [5, "Prescaler Value 32"]
        PRESCALER_64: [6, "Prescaler Value 64"]
        PRESCALER_128: [7, "Prescaler Value 128"]
  ADCSRB:
    ADTS:
      _replace_enum:
        FREE: [0, "Free Running mode"]
        AC: [1, "Analog Comparator"]
        INT0: [2, "External Interrupt Request 0"]
        TC0_CMA: [3, "Timer/Counter0 Compare Match A"]
        TC0_OVF: [4, "Timer/Counter0 Overflow"]
        TC0_CMB: [5, "Timer/Counter0 Compare Match B"]
        PCIR: [6, "Pin Change Interrupt Request"]
  ADMUX:
    _add:
      MUX:
        description: "Analog Channel and Gain Selection Bits"
        bitOffset: 0
        bitWidth: 6
        access: read-write
      REFS:
        description: "Reference Selection Bits"
        bitOffset: 6
        bitWidth: 2
        access: read-write
    MUX:
      ADC0: [0, "Single-ended Input ADC0"]
      ADC1: [1, "Single-ended Input ADC1"]
      ADC2: [2, "Single-ended Input ADC2"]
      ADC3: [3, "Single-ended Input ADC3"]
      ADC4: [4, "Single-ended Input ADC4"]
      ADC5: [5, "Single-ended Input ADC5"]
      ADC6: [6, "Single-ended Input ADC6"]
      ADC7: [7, "Single-ended Input ADC7"]

      ADC_GND: [32, "0V (GND)"]
      ADC_VBG: [33, "Internal Reference (VBG)"]
      TEMPSENS: [34, "Temperature sensor"]

      ADC0_ADC0_20X: [35, "Differential Inputs Positive ADC0 Negative ADC0 20x Gain"]
      ADC0_ADC1_1X: [8, "Differential Inputs Positive ADC0 Negative ADC1 1x Gain"]
      ADC0_ADC1_20X: [9, "Differential Inputs Postive ADC0 Negative ADC1 20x Gain"]
      ADC0_ADC3_1X: [10, "Differential Inputs Positive ADC0 Negative ADC3 1x Gain"]
      ADC0_ADC3_20X: [11, "Differential Inputs Positive ADC0 Negative ADC3 20x Gain"]

      ADC1_ADC0_1X: [40, "Differential Inputs Positive ADC1 Negative ADC0 1x Gain"]
      ADC1_ADC0_20X: [41, "Differential Inputs Positive ADC1 Negative ADC0 20x Gain"]
      ADC1_ADC2_1X: [12, "Differential Inputs Positive ADC1 Negative ADC2 1x Gain"]
      ADC1_ADC2_20X: [13, "Differential Inputs Positive ADC1 Negative ADC2 20x Gain"]
      ADC1_ADC3_1X: [14, "Differential Inputs Positive ADC1 Negative ADC3 1x Gain"]
      ADC1_ADC3_20X: [15, "Differential Inputs Positive ADC1 Negative ADC3 20x Gain"]

      ADC2_ADC1_1X: [44, "Differential Inputs Positive ADC2 Negative ADC2 1x Gain"]
      ADC2_ADC1_20X: [45, "Differential Inputs Positive ADC2 Negative ADC2 20x Gain"]
      ADC2_ADC3_1X: [16, "Differential Inputs Positive ADC2 Negative ADC3 1x Gain"]
      ADC2_ADC3_20X: [17, "Differential Inputs Positive ADC2 Negative ADC3 20x Gain"]

      ADC3_ADC0_1X: [42, "Differential Inputs Positive ADC3 Negative ADC0 1x Gain"]
      ADC3_ADC0_20X: [43, "Differential Inputs Positive ADC3 Negative ADC0 20x Gain"]
      ADC3_ADC1_1X: [46, "Differential Inputs Positive ADC3 Negative ADC1 1x Gain"]
      ADC3_ADC1_20X: [47, "Differential Inputs Positive ADC3 Negative ADC1 20x Gain"]
      ADC3_ADC2_1X: [48, "Differential Inputs Positive ADC3 Negative ADC2 1x Gain"]
      ADC3_ADC2_20X: [49, "Differential Inputs Positive ADC3 Negative ADC2 20x Gain"]
      ADC3_ADC3_1X: [36, "Differential Inputs Positive ADC3 Negative ADC3 1x Gain"]
      ADC3_ADC3_20X: [37, "Differential Inputs Positive ADC3 Negative ADC3 20x Gain"]
      ADC3_ADC4_1X: [18, "Differential Inputs Positive ADC4 Negative ADC0 1x Gain"]
      ADC3_ADC4_20X: [19, "Differential Inputs Positive ADC4 Negative ADC0 20x Gain"]
      ADC3_ADC5_1X: [20, "Differential Inputs Positive ADC5 Negative ADC1 1x Gain"]
      ADC3_ADC5_20X: [21, "Differential Inputs Positive ADC5 Negative ADC1 20x Gain"]
      ADC3_ADC6_1X: [22, "Differential Inputs Positive ADC6 Negative ADC2 1x Gain"]
      ADC3_ADC6_20X: [23, "Differential Inputs Positive ADC6 Negative ADC2 20x Gain"]
      ADC3_ADC7_1X: [24, "Differential Inputs Positive ADC7 Negative ADC3 1x Gain"]
      ADC3_ADC7_20X: [25, "Differential Inputs Positive ADC7 Negative ADC3 20x Gain"]

      ADC4_ADC3_1X: [50, "Differential Inputs Positive ADC4 Negative ADC3 1x Gain"]
      ADC4_ADC3_20X: [51, "Differential Inputs Positive ADC4 Negative ADC3 20x Gain"]
      ADC4_ADC5_1X: [26, "Differential Inputs Positive ADC4 Negative ADC5 1x Gain"]
      ADC4_ADC5_20X: [27, "Differential Inputs Positive ADC4 Negative ADC5 20x Gain"]

      ADC5_ADC3_1X: [52, "Differential Inputs Positive ADC5 Negative ADC3 1x Gain"]
      ADC5_ADC3_20X: [53, "Differential Inputs Positive ADC5 Negative ADC3 20x Gain"]
      ADC5_ADC4_1X: [58, "Differential Inputs Positive ADC5 Negative ADC4 1x Gain"]
      ADC5_ADC4_20X: [59, "Differential Inputs Positive ADC5 Negative ADC4 20x Gain"]
      ADC5_ADC6_1X: [28, "Differential Inputs Positive ADC5 Negative ADC6 1x Gain"]
      ADC5_ADC6_20X: [29, "Differential Inputs Positive ADC5 Negative ADC6 20x Gain"]

      ADC6_ADC3_1X: [54, "Differential Inputs Positive ADC6 Negative ADC3 1x Gain"]
      ADC6_ADC3_20X: [55, "Differential Inputs Positive ADC6 Negative ADC3 20x Gain"]
      ADC6_ADC5_1X: [60, "Differential Inputs Positive ADC6 Negative ADC5 1x Gain"]
      ADC6_ADC5_20X: [61, "Differential Inputs Positive ADC6 Negative ADC5 20x Gain"]
      ADC6_ADC7_1X: [30, "Differential Inputs Positive ADC6 Negative ADC7 1x Gain"]
      ADC6_ADC7_20X: [31, "Differential Inputs Positive ADC6 Negative ADC7 20x Gain"]

      ADC7_ADC3_1X: [56, "Differential Inputs Positive ADC7 Negative ADC3 1x Gain"]
      ADC7_ADC3_20X: [57, "Differential Inputs Positive ADC7 Negative ADC3 20x Gain"]
      ADC7_ADC6_1X: [62, "Differential Inputs Positive ADC7 Negative ADC6 1x Gain"]
      ADC7_ADC6_20X: [63, "Differential Inputs Positive ADC7 Negative ADC6 20x Gain"]
      ADC7_ADC7_1X: [38, "Differential Inputs Positive ADC7 Negative ADC7 1x Gain"]
      ADC7_ADC7_20X: [39, "Differential Inputs Positive ADC7 Negative ADC7 20x Gain"]
    REFS:
      VCC: [0, "Vcc used as Voltage Reference, disconnected from Aref"]
      AREF: [1, "External Voltage Reference at AREF pin, Internal Voltage Reference turned off"]
      INTERNAL: [2, "Internal 1.1V Voltage Reference"]
CPU:
  CLKPR:
    CLKPS:
      _replace_enum:
        PRESCALER_1: [0, "Prescaler Value 1"]
        PRESCALER_2: [1, "Prescaler Value 2"]
        PRESCALER_4: [2, "Prescaler Value 4"]
        PRESCALER_8: [3, "Prescaler Value 8"]
        PRESCALER_16: [4, "Prescaler Value 16"]
        PRESCALER_32: [5, "Prescaler Value 32"]
        PRESCALER_64: [6, "Prescaler Value 64"]
        PRESCALER_128: [7, "Prescaler Value 128"]
        PRESCALER_256: [8, "Prescaler Value 256"]
  MCUCR:
    _add:
      BODS:
        description: "BOD Sleep (available on some devices)"
        bitOffset: 7
        bitWidth: 1
        access: read-write
      BODSE:
        description: "BOD Sleep Enable (available on some devices)"
        bitOffset: 2
        bitWidth: 1
        access: read-write

PORTA:
  DDRA:
    _add:
      PA0:
        description: "Pin A0"
        bitRange: "[0:0]"
        access: read-write
      PA1:
        description: "Pin A1"
        bitRange: "[1:1]"
        access: read-write
      PA2:
        description: "Pin A2"
        bitRange: "[2:2]"
        access: read-write
      PA3:
        description: "Pin A3"
        bitRange: "[3:3]"
        access: read-write
      PA4:
        description: "Pin A4"
        bitRange: "[4:4]"
        access: read-write
      PA5:
        description: "Pin A5"
        bitRange: "[5:5]"
        access: read-write
      PA6:
        description: "Pin A6"
        bitRange: "[6:6]"
        access: read-write
      PA7:
        description: "Pin A7"
        bitRange: "[7:7]"
        access: read-write
  PINA:
    _add:
      PA0:
        description: "Pin A0"
        bitRange: "[0:0]"
        access: read-write
      PA1:
        description: "Pin A1"
        bitRange: "[1:1]"
        access: read-write
      PA2:
        description: "Pin A2"
        bitRange: "[2:2]"
        access: read-write
      PA3:
        description: "Pin A3"
        bitRange: "[3:3]"
        access: read-write
      PA4:
        description: "Pin A4"
        bitRange: "[4:4]"
        access: read-write
      PA5:
        description: "Pin A5"
        bitRange: "[5:5]"
        access: read-write
      PA6:
        description: "Pin A6"
        bitRange: "[6:6]"
        access: read-write
      PA7:
        description: "Pin A7"
        bitRange: "[7:7]"
        access: read-write
  PORTA:
    _add:
      PA0:
        description: "Pin A0"
        bitRange: "[0:0]"
        access: read-write
      PA1:
        description: "Pin A1"
        bitRange: "[1:1]"
        access: read-write
      PA2:
        description: "Pin A2"
        bitRange: "[2:2]"
        access: read-write
      PA3:
        description: "Pin A3"
        bitRange: "[3:3]"
        access: read-write
      PA4:
        description: "Pin A4"
        bitRange: "[4:4]"
        access: read-write
      PA5:
        description: "Pin A5"
        bitRange: "[5:5]"
        access: read-write
      PA6:
        description: "Pin A6"
        bitRange: "[6:6]"
        access: read-write
      PA7:
        description: "Pin A7"
        bitRange: "[7:7]"
        access: read-write

PORTB:
  DDRB:
    _add:
      PB0:
        description: "Pin B0"
        bitRange: "[0:0]"
        access: read-write
      PB1:
        description: "Pin B1"
        bitRange: "[1:1]"
        access: read-write
      PB2:
        description: "Pin B2"
        bitRange: "[2:2]"
        access: read-write
      PB3:
        description: "Pin B3"
        bitRange: "[3:3]"
        access: read-write
  PINB:
    _add:
      PB0:
        description: "Pin B0"
        bitRange: "[0:0]"
        access: read-write
      PB1:
        description: "Pin B1"
        bitRange: "[1:1]"
        access: read-write
      PB2:
        description: "Pin B2"
        bitRange: "[2:2]"
        access: read-write
      PB3:
        description: "Pin B3"
        bitRange: "[3:3]"
        access: read-write
  PORTB:
    _add:
      PB0:
        description: "Pin B0"
        bitRange: "[0:0]"
        access: read-write
      PB1:
        description: "Pin B1"
        bitRange: "[1:1]"
        access: read-write
      PB2:
        description: "Pin B2"
        bitRange: "[2:2]"
        access: read-write
      PB3:
        description: "Pin B3"
        bitRange: "[3:3]"
        access: read-write