code: def create_device(args, display_types=None):
      
      device = None
      if display_types is None:
          display_types = get_display_types()
  
      if args.display in display_types.get('oled'):
          import luma.oled.device
          Device = getattr(luma.oled.device, args.display)
          Serial = getattr(make_serial(args), args.interface)
          device = Device(Serial(), **vars(args))
  
      elif args.display in display_types.get('lcd'):
          import luma.lcd.device
          import luma.lcd.aux
          Device = getattr(luma.lcd.device, args.display)
          spi = make_serial(args).spi()
          device = Device(spi, **vars(args))
          luma.lcd.aux.backlight(gpio=spi._gpio, gpio_LIGHT=args.gpio_backlight, active_low=args.backlight_active == "low").enable(True)
  
      elif args.display in display_types.get('led_matrix'):
          import luma.led_matrix.device
          from luma.core.interface.serial import noop
          Device = getattr(luma.led_matrix.device, args.display)
          spi = make_serial(args, gpio=noop()).spi()
          device = Device(serial_interface=spi, **vars(args))
  
      elif args.display in display_types.get('emulator'):
          import luma.emulator.device
          Device = getattr(luma.emulator.device, args.display)
          device = Device(**vars(args))
  
      return device
docs: Create and return device.
  
      :type args: object
      :type display_types: dict