give permission of create new revision to specific roles
permissions (minimum):


  node:
  
  View published content
  
  View own unpublished content
  
  View content revisions (optional)
  
  [content type]: create new content
  
  revisioning:
  
  [content type]: view revisions of own content


For content types, in its edit UI:


  Publishing options: Create new revision, New revision in draft,
  pending moderation (requires "Create new revision")


if you want to do it with Drupal core only, then this will suffice:


  node:
  
  View published content
  
  View content revisions (otional)
  
  [content type]: create new content


For content types, in its edit UI:


  Publishing options: Create new revision