A geometry shader needs to be told what topology to expect and it needs to be told what topology to generate. This information can be supplied to the shader either in the shader program or through the OpenGL API.
The Tessellation Control Shader (TCS) is a Shader program written in GLSL. It sits between the Vertex Shader and the Tessellation Evaluation Shader. The TCS controls how much tessellation a particular patch gets; it also defines the size of a patch, thus allowing it to augment data. It can also filter vertex data taken from the vertex shader.
The Vertex Shader is responsible for computing and passing forward the coordinates of a model, transformed into Clip Space, to the Tessellation, Geometry and Fragment shader. Keep in mind that the Tessellation and Geometry shaders are optional.