#!/bin/sh
set -e

ENGLISH=0x409 # US English
CLS_MISCELLANEOUS=0xEF
SUBCLS_COMMON=0x02
PROTO_IAD=0x01
VENDOR_PURISM=0x316d
PRODUCT_LIBREM5=0x4c05

cd /sys/kernel/config/
mkdir -p usb_gadget/g1
cd usb_gadget/g1
echo ${VENDOR_PURISM} > idVendor
echo ${PRODUCT_LIBREM5} > idProduct
echo ${CLS_MISCELLANEOUS} > bDeviceClass
echo ${SUBCLS_COMMON} > bDeviceSubClass
echo ${PROTO_IAD} > bDeviceProtocol
mkdir -p strings/${ENGLISH}
echo "0123456789" > strings/${ENGLISH}/serialnumber
echo "Purism, SPC" > strings/${ENGLISH}/manufacturer
echo "Librem 5" > strings/${ENGLISH}/product
mkdir -p functions/ncm.usb0 #ethernet
mkdir -p functions/acm.GS0 # serial
mkdir -p configs/c.1/strings/${ENGLISH}
echo "CDC ACM+NCM" > configs/c.1/strings/${ENGLISH}/configuration
if [ -n "${HOST_ADDR}" ]; then
    echo "${HOST_ADDR}" > functions/ncm.usb0/host_addr
fi
if [ -n "${DEV_ADDR}" ]; then
    echo "${DEV_ADDR}" > functions/ncm.usb0/dev_addr
fi
ln -sf functions/acm.GS0 configs/c.1
ln -sf functions/ncm.usb0 configs/c.1
echo "38100000.usb" > UDC # Bind to the L5 USB controller
