Non-RAC single instance with ASM startup query
Check if autostart for Oracle Restart is enabled:

$ cat /etc/oracle/scls_scr/$HOSTNAME/oracle/ohasdstr
enable


If it is not enabled, then enable it:

crsctl enable has


Check if ASM autostart is enabled:

crsctl stat res ora.asm


If ASM is not registered in GI, add it with:

srvctl add asm ...


Check if used diskgroups are registered:

srvctl status diskgroup -g DATA
crsctl stat res ora.DATA.dg


If they are not registered, add them with:

srvctl add diskgroup ...


Check if the database is registered and autostart is enabled:

srvctl config database -d ORCL


If it is not, register and enable:

srvctl add database ...
srvctl enable database ...


Finally make sure you define the used ASM diskgroups as dependencies:

srvctl modify database -d ORCL -diskgroup "DATA,FRA"


You can also check the listener:

srvctl config listener


If it does not exist, you can add with:

srvctl add listener ...


You do not need to start or stop anything manually with sqlplus, lsnrctl. Oracle Restart takes care of that based on the defined start/stop options and dependencies.