Each of the two spins, $q\in\{L,R\}$, has a bunch of energy levels $\{|n\rangle_q\}$, each at energy $\omega_{n}^q$. In other words, the basic Hamiltonian of the spins is:
$$
H=\sum_{n=0}^{N}\omega_{n}^L|n\rangle\langle n|_L+\omega_{n}^R|n\rangle\langle n|_R
$$
Written like this, the two spins are not interacting, so we won't get a two-qubit gatewithout doing something extra.
We we're talking about a qubit, we specifically focus on populating just the $|0\rangle$ and $|1\rangle$ levels of each spin. Nothing else is ever populated (hopefully). Under the Hamiltonian $H$, as basis element $|x\rangle$ for $x\in\{0,1\}^2$ acquires a phase
$$
e^{-i(\omega^L_{x_L}+\omega^R_{x_R})t}.
$$
In addition to this basic Hamiltonian of the spins, there is a cavity, containing photons that interact with both spins. This is what will mediate the two-qubit interaction. In effect, by manipulating the interaction parameters, we can change the energy level of the $|1\rangle_L|1\rangle_R$ state independently of the $|10\rangle$ and $|01\rangle$ states. Thus, in principle, one creates a different phase pno all 4 basis states, and these can be combined to give a controlled-phase gate.
In practice, how this works is that most of the time you want to be sat in a region of parameter space where there is no two-qubit interaction going on. At particular moments of a computation, you need to turn this interaction on. This is achieved by adiabatically varying the cavity parameters. By doing this, the populations of the qubits in the different basis states don't change, but you move to a regime where the energy levels are different, and generating the phases you need.
You'll notice I haven't mentioned the $|0,2\rangle$ level yet. In some ways this is irrelevant; everything I've said is (a sufficiently good approximation to) true. The issue is that usually, when you change the parameters, you don't get the independent control of the different energies. The place to go looking, if you want to find such independent control, is in the region of an 'avoided crossing', where the usual linear variation of energy with parameters would suggest that two energy levels should be the same (e.g. the $|11\rangle$ and $|02\rangle$ levels). The avoided crossing means that the energy takes on a quadratic form near the (not) crossing point, and it's that non-linearity that you're making use of. It also defines important constraints on the adiabatic evolution: since you do not want to populate the $|02\rangle$ level, you have to move slowly with respect to the energy gap between $|11\rangle$ and $|02\rangle$, which is comparatively small, and therefore the evolution time is quite slow.