Faits :
A.
Par jugement du 2 octobre 2013, le Tribunal de police de la République et canton de Genève a reconnu X._ coupable de dommages à la propriété (<ref-law>) et de séjour illégal (art. 115 al. 1 let. b LEtr), l'a condamné à une courte peine privative de liberté de 45 jours, sous déduction de 2 jours de détention avant jugement, a renoncé à révoquer les sursis octroyés les 4 août 2009, 2 décembre 2009 et 28 juillet 2010, lui a adressé un avertissement et a prolongé d'un an et demi le délai d'épreuve des sursis octroyés les 2 décembre 2009 et 28 juillet 2010, a renoncé à révoquer la libération conditionnelle accordée par le Tribunal d'application des peines et des mesures le 22 décembre 2012 et l'a condamné aux frais de la procédure.
B.
Par arrêt du 31 octobre 2014, la Cour de justice de la République et canton de Genève, Chambre pénale d'appel et de révision, a partiellement admis l'appel formé par X._ sur le type de sanction et a prononcé une peine de 180 heures de travail d'intérêt général, sous déduction de huit heures correspondant à 2 jours de détention avant jugement. Elle a confirmé, pour le reste, la décision de première instance, mettant la moitié des frais d'appel à la charge du recourant.
S'agissant de l'infraction à la LEtr, il est reproché à X._, de nationalité guinéenne, d'avoir séjourné illégalement en Suisse, du 23 janvier 2012, lendemain de sa libération conditionnelle, au 14 novembre 2012, date de son interpellation, alors que sa demande d'asile avait été définitivement rejetée le 19 décembre 2008.
X._ est devenu père d'un enfant de nationalité suisse le 30 mars 2010, enfant qu'il a reconnu. Se prévalant de sa nouvelle situation personnelle, il a déposé une demande d'autorisation de séjour, le 11 octobre 2012.
C.
X._ forme un recours en matière pénale contre l'arrêt cantonal et conclut, avec suite de frais et dépens, à sa réforme en ce sens qu'il est acquitté de l'infraction de séjour illégal et condamné à une peine de 40 heures de travail d'intérêt général, sous déduction de huit heures. Subsidiairement il conclut au prononcé du classement de l'infraction de séjour illégal et à sa condamnation à une peine de 40 heures de travail d'intérêt général, sous déduction de huit heures. Plus subsidiairement il conclut au renvoi de la cause à l'autorité précédente pour nouvelle décision dans le sens des considérants. Il sollicite en outre l'assistance judiciaire.
Invités à se déterminer sur le recours, la cour cantonale et le Ministère public ont conclu à la confirmation de l'arrêt entrepris.

Considérant en droit :
1.
Le recourant reproche à la cour cantonale d'avoir omis d'examiner plusieurs griefs soulevés en appel. Se prévalant de son droit d'être entendu, il fait valoir un déni de justice.
1.1. Selon la jurisprudence, commet un déni de justice formel et viole l'art. 29 al. 1 Cst. l'autorité qui ne statue pas ou n'entre pas en matière sur un recours ou un grief qui lui est soumis dans les formes et délai légaux, alors qu'elle était compétente pour le faire (<ref-ruling> consid. 2.1 p. 9; <ref-ruling> consid. 2.3 p. 232).
1.2. A teneur de son mémoire d'appel, le recourant contestait sa condamnation du chef de séjour illégal en invoquant trois faits justificatifs au sens de l'<ref-law>, liés à ses obligations légales envers sa fille. Il faisait valoir les droits et obligations de rang conventionnel et constitutionnel (art. 8 CEDH, 13 al. 1 et 14 Cst.) et ceux résultant du code civil (cf. art. 273 et 307 ss CC) ainsi que l'<ref-law> (cf. mémoire d'appel motivé ch. C.1.b p. 12-15). Ses griefs se fondaient notamment sur une décision du Tribunal tutélaire du 5 novembre 2012 ordonnant la mise en place d'un droit de visite.
Le recourant a également invoqué, dans son mémoire d'appel, le fait justificatif extralégal de la sauvegarde d'intérêts légitimes, fondé sur la jurisprudence fédérale (cf. <ref-ruling>; cf. mémoire d'appel motivé ch. C.1.c p. 12-17), ainsi que le droit au regroupement familial inversé (cf. mémoire d'appel motivé ch. C.1.d p. 17-20). Il a enfin requis le classement de l'infraction de séjour illégal, en application des <ref-law> et 52 CP.
1.3. La cour cantonale a en substance estimé que le recourant ne pouvait se prévaloir de l'art. 8 CEDH pour la période antérieure au dépôt de sa demande d'autorisation de séjour, soit du 22 janvier au 11 octobre 2012. S'agissant de la période du 11 octobre au 14 novembre 2012, rien ne permettait de préjuger d'une décision d'autorisation de séjour positive - encore que le dossier restait muet sur cette question - de sorte qu'il ne disposait pas d'un droit à attendre la décision à venir des autorités suisses dans le pays (cf. arrêt entrepris, consid. 2.1.3 p. 10).
L'arrêt entrepris ne contient toutefois aucune motivation sur la question de savoir si le recourant pouvait se prévaloir d'un acte licite au sens de l'<ref-law> en lien avec les dispositions civiles régissant les relations personnelles parents-enfants et les mesures protectrices des enfants (art. 273 et 307 ss CC), pas plus que sur la violation du devoir d'assistance ou d'éducation au sens de l'<ref-law>. La cour cantonale ne se prononce pas non plus sur le fait justificatif extralégal de la sauvegarde d'intérêts légitimes invoqué par le recourant en appel, ni sur le droit au regroupement familial inversé. Il n'apparaît d'ailleurs pas que ce dernier point aurait été examiné en lien avec l'art. 8 CEDH. Enfin, la cour cantonale omet d'examiner s'il y a lieu de renoncer à une condamnation au sens des <ref-law> et 52 CP.
En ne traitant d'aucune manière ces griefs, la cour cantonale a violé l'art. 29 al. 1 Cst., de sorte que le recours doit être admis.
2.
L'arrêt entrepris doit être annulé et la cause renvoyée à la cour cantonale pour nouvelle décision. Au vu du sort du recours, il n'y a pas lieu d'examiner les autres griefs soulevés par le recourant qui deviennent sans objet.
Le recourant obtient gain de cause. Il ne sera pas perçu de frais judiciaires (art. 66 al. 1 et 4 LTF). Le recourant peut prétendre à de pleins dépens à charge du canton (<ref-law>). La requête d'assistance judiciaire devient sans objet (<ref-law>).

Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est admis, l'arrêt entrepris est annulé et la cause renvoyée à la cour cantonale pour nouvelle décision.
2.
Il n'est pas perçu de frais judiciaires.
3.
Le canton de Genève versera à l'avocat du recourant une indemnité de 3'000 fr. à titre de dépens pour la procédure devant le Tribunal fédéral.
4.
Le présent arrêt est communiqué aux parties et à la Cour de justice de la République et canton de Genève, Chambre pénale d'appel et de révision.
Lausanne, le 14 décembre 2015
Au nom de la Cour de droit pénal
du Tribunal fédéral suisse
Le Président : Denys
La Greffière : Klinke