blob: 58ba50941548f011ae2c2fb536c01a042fba58a5 [file]
// Copyright 2021 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
composite aml_cpu;
using fuchsia;
using fuchsia.google.platform;
using fuchsia.amlogic.platform;
using fuchsia.gpio;
using fuchsia.power;
parent "pdev" {
if fuchsia.COMPATIBLE == "amlogic,cpu" {
true;
} else {
if fuchsia.BIND_PLATFORM_DEV_VID == fuchsia.google.platform.BIND_PLATFORM_DEV_VID.GOOGLE {
fuchsia.BIND_PLATFORM_DEV_DID == fuchsia.google.platform.BIND_PLATFORM_DEV_DID.GOOGLE_AMLOGIC_CPU;
fuchsia.BIND_PLATFORM_DEV_PID == fuchsia.google.platform.BIND_PLATFORM_DEV_PID.ASTRO;
} else if fuchsia.BIND_PLATFORM_DEV_VID == fuchsia.amlogic.platform.BIND_PLATFORM_DEV_VID.AMLOGIC {
fuchsia.BIND_PLATFORM_DEV_DID == fuchsia.amlogic.platform.BIND_PLATFORM_DEV_DID.CPU;
accept fuchsia.BIND_PLATFORM_DEV_PID {
fuchsia.amlogic.platform.BIND_PLATFORM_DEV_PID.A311D,
fuchsia.amlogic.platform.BIND_PLATFORM_DEV_PID.A5,
fuchsia.amlogic.platform.BIND_PLATFORM_DEV_PID.A1,
}
} else {
false;
}
}
}
primary parent "power-01" {
fuchsia.Service == "fuchsia.hardware.power.Service";
if fuchsia.NAME == "power-01" {
true;
} else {
fuchsia.power.POWER_DOMAIN == fuchsia.amlogic.platform.POWER_DOMAIN.ARM_CORE_BIG;
}
}
parent "sys-pll-div16" {
fuchsia.Service == "fuchsia.hardware.clock.Service";
fuchsia.NAME == "sys-pll-div16";
}
parent "sys-cpu-div16" {
fuchsia.Service == "fuchsia.hardware.clock.Service";
fuchsia.NAME == "sys-cpu-div16";
}
parent "sys-cpu-big-clk" {
fuchsia.Service == "fuchsia.hardware.clock.Service";
fuchsia.NAME == "sys-cpu-big-clk";
}
optional parent "power-02" {
fuchsia.Service == "fuchsia.hardware.power.Service";
if fuchsia.NAME == "power-02" {
true;
} else {
fuchsia.power.POWER_DOMAIN == fuchsia.amlogic.platform.POWER_DOMAIN.ARM_CORE_LITTLE;
}
}
optional parent "sys-pllb-div16" {
fuchsia.Service == "fuchsia.hardware.clock.Service";
fuchsia.NAME == "sys-pllb-div16";
}
optional parent "sys-cpub-div16" {
fuchsia.Service == "fuchsia.hardware.clock.Service";
fuchsia.NAME == "sys-cpub-div16";
}
optional parent "sys-cpu-little-clk" {
fuchsia.Service == "fuchsia.hardware.clock.Service";
fuchsia.NAME == "sys-cpu-little-clk";
}
optional parent "gpio-init" {
fuchsia.BIND_INIT_STEP == fuchsia.gpio.BIND_INIT_STEP.GPIO;
}
optional parent "pin-states-0" {
fuchsia.Service == "fuchsia.hardware.pin.PinStatesService";
}