package main

func NoEC(ctx Context) {
	ap := Create(ctx, "acpi/platform.asl")
	defer ap.Close()

	ap.WriteString(
		`Method(_WAK,1)
{
	Return(Package(){0,0})
}

Method(_PTS,1)
{
}
`)

	si := Create(ctx, "acpi/superio.asl")
	defer si.Close()

	ec := Create(ctx, "acpi/ec.asl")
	defer ec.Close()
}
