How to add a hierarchical taxonomy to a content type
You can take a look on Simple hierarchical select and Client-side hierarchical select module.

Simple hierarchical select


  Simple hierarchical select defines a new form widget for taxonomy
  fields to select a term by "browsing" through the vocabularies
  hierarchy. The widget is available in node forms and as Views exposed
  filter.
  
  This module has been inspired by Hierarchical select but is much
  simpler (hence the name ;) ).


Client-side hierarchical select


  A simple client-side hierarchical select widget for taxonomy terms.
  
  The widget provides three settings:
  
  
    Force selection of deepest level (If checked the user will be forced
    to select terms from the deepest level.)
    
    Parent (Allows to select a parent term to use only a subtree of a
    vocabulary for this field.)
    
    Labels per hierarchy-level